本文概述了如何通过LAN共享Arch Linux的软件包。更好的办法是使用ABS和gensync建立本地软件包库(http://wiki.archlinux.org/index.php/Custom%20local%20repository%20with%20ABS%20and%20gensync,此文已译),在LAN通过NFS或FTP访问。本文将详细介绍这一过程。原来的HOWO(译注:疑为HOWTO)将暂存在下面。
在局域网内共享你下载的软件包,以节约带宽、磁盘空间和时间。
"pacman -Sy"将同步本地软件库
"pacman -S pkgname"将试图在本地服务器上下载软件包,并安装软件。如果软件包不存在,它将从/etc/pacman.conf文件的服务器列表中选择下一个服务器,下载软件包并存储在本地服务器上。
"alsync"将根据ftp.archlinux.org升级本地服务器的数据。
例子:我的网络
serverip=192.168.14.3
network=192.168.14.0/255.255.255.0
根据你的情况调整一下。
1. 服务端
在服务器上建立NFS共享,并给予所有LAN上的用户以读写权限。
如果服务器上运行的是archlinux,你可以这样做:
pacman -S portmap
pacman -S nfs-utils
编辑/etc/exports
加入
/var/cache/pacman/pkg 192.168.14.0/255.255.255.0(rw,no_root_squash,sync)
并在/etc/rc.conf文件的DAEMONS中加入portmap,nfslock和nfsd
/etc/rc.d/portmap start
/etc/rc.d/nfslock start
/etc/rc.d/nfsd start
运行"exportfs"检查NFS。
2. 所有的客户端
将/var/cache/pacman/pkg改名为/var/cache/pacman/pkgorg
建立新的/var/cache/pacman/pkg,并将NFS共享挂到这儿。
mount -o rw,nolock 192.168.14.3:/var/cache/pacman/pkg /var/cache/pacman/pkg
如果你希望在客户端重启时自动挂载,请将下行加入/etc/fstab
192.168.14.3:/var/cache/pacman/pkg /var/cache/pacman/pkg nfs rw,nolock
运行"mount -a",运行"df"检查挂载情况。
删除客户端上已下载的所有软件包,并将/var/cache/pacman/pkgorg改名为/var/cache/pacman/pkg(又改回来)
编辑/etc/pacman.conf,如下:
{current}
Server = file:///var/cache/pacman/pkg
** and after **
{extra}
Server = file:///var/cache/pacman/pkg
3. 将本地软件包库与官方同步
"alsync"将连接、登录并更新本地的NFS软件包数据库
pacman -S openssl
pacman -S wget
建立/bin/alsync并加入以下几行:
***** content of alsync *********************
cd /var/cache/pacman/pkg
wget -N ftp://ftp.archlinux.org/current/*.db.*
wget -N ftp://ftp.archlinux.org/extra/*.db.*
********* end ******************************
然后,改变权限
chmod 777 /bin/alsync
并将此文件拷贝到所有客户端
在第一个客户端上以root身份登录,并运行:
alsync
pacman -Sy
pacman -S new-pkgname
在第二个客户端上运行:
pacman -Sy
pacman -S new-pkgname