To share all your downloaded packages in your lan
Pros save bandwith, diskspace and time.
"pacman -Sy" will sync against our local repository
"pacman -S pkgname" try to download and install pkg from localserver if pkg not exist it download
from the next server in the list /etc/pacman.conf and save pkg on localserver.
"alsync" will update localserver db against ftp.archlinux.org
ex. for my network
serverip=192.168.14.3
network=192.168.14.0/255.255.255.0
adjust to yours
1. serverside
on your server create an nfs share readwrite for all pc on your lan
if you run archlinux on the server you can
pacman -S portmap
pacman -S nfs-utils
edit /etc/exports
add line
/var/cache/pacman/pkg 192.168.14.0/255.255.255.0(rw,no''root''squash,sync)
add portmap, nfslock and nfsd to DAEMONS in /etc/rc.conf
run /etc/rc.d/portmap start
run /etc/rc.d/nfslock start
run /etc/rc.d/nfsd start
to check the nfsshare run "exportfs" on server.
1.1 Check hosts.allow and hosts.deny
to work (very simple):
hosts.deny
ALL: ALL: DENY
hosts.allow
ALL: 192.168.14.
Explanation:
hosts.deny deny all connection that doesnt exist on hosts.allow.
hosts.allow allow connection from local network 192.168.14.0/255.255.255.0
2. on all clients
rename /var/cache/pacman/pkg to /var/cache/pacman/pkgorg
create a new /var/cache/pacman/pkg and mount the nfs share there
run "mount -o rw,nolock 192.168.14.3:/var/cache/pacman/pkg /var/cache/pacman/pkg"
or if you want it automount on client reboot
add this line in /etc/fstab
192.168.14.3:/var/cache/pacman/pkg /var/cache/pacman/pkg nfs rw,nolock
run "mount -a"
run "df" to check mount
move all your already fetched pkg from your clients
/var/cache/pacman/pkgorg to /var/cache/pacman/pkg
edit /etc/pacman.conf and add this lines directly after the line
{current}
Server = file:///var/cache/pacman/pkg
'''''' and after ''''''
{extra}
Server = file:///var/cache/pacman/pkg
3. to sync your local repository v.s. archlinux
"alsync" connects, login, and update your packages database on the local nfsserver
pacman -S openssl
pacman -S wget
create a file called /bin/alsync and put in this lines
''''''''''''''' 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
copy this file to your clients
to try run as root on first client
alsync
pacman -Sy
pacman -S new-pkgname
move to next client and run
pacman -Sy
pacman -S new-pkgname