Difference between revisions of "Local repository"

From ArchWiki
Jump to: navigation, search
(simplification of wikilinks (testing https://github.com/lahwaacz/wiki-scripts/blob/master/link-checker.py))
(All information is in the page it now redirects to. Article was outdated and a discussion of removal was posted over two years ago.)
Line 1: Line 1:
[[Category:Package management]]
+
#REDIRECT [[Pacman_tips#Custom_local_repository]]
[[es:Local repository]]
 
[[ru:Local repository HOW-TO]]
 
{{Merge|pacman tips#Custom local repository|This article is older than the linked section, [[Custom local repository with ABS and gensync]] (former prerequisite to this page) redirects to it.}}
 
{{Expansion}}
 
{{Out of date}}
 
 
 
This document outlines one way to share Arch Linux packages across a LAN. A better way to do this would be to create a [[Custom local repository with ABS and gensync]] and make the repository available across the LAN using NFS or FTP. This document should be edited to describe this process in detail. For the time being, the original HOWTO is left intact below:
 
 
 
== Introduction ==
 
Sharing all of your downloaded packages to your LAN can save bandwidth, diskspace, and time.
 
pacman -Syu
 
Will sync against our local repository;
 
pacman -S pkgname
 
Will try to download and install a package from localserver. If the package does not exist it will download it from the next server in the list /etc/pacman.conf and save the package on localserver;
 
alsync
 
Will update localserver database against ftp.archlinux.org.
 
 
 
In example: for my network
 
serverip=192.168.14.3
 
network=192.168.14.0/255.255.255.0
 
Adjust to your needs.
 
 
 
== On the Server Side ==
 
Create an NFS share on the server hosting the packages.
 
 
 
For detailed help on setting up an NFS server please see [[NFS ]]
 
 
 
* Add this line to /etc/exports:
 
/var/cache/pacman/pkg 192.168.14.0/24(rw,no_subtree_check,nohide)
 
 
 
* If you modify /etc/exports while the server is running, you must re-export them for changes to take effect:
 
# exportfs -ra
 
 
 
== 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
 
*If the mount from command line does not work add this option:
 
nfsvers=3
 
*Or, if you want it automount after the reboot, add this line in /etc/fstab:
 
  192.168.14.3:/var/cache/pacman/pkg /var/cache/pacman/pkg    nfs    rw,nolock
 
*Again, if the mount does not work, try to add mount option nfsvers=3 to the fstab entry.
 
*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
 
 
 
I have skipped the step 3 because for me it works as i want already. I sync from each PC and all share the pacman cache.
 
 
 
== To sync your local repository against archlinux.org==
 
*"alsync" connects, logs in, and updates your packages database on the local nfs server
 
  pacman -S openssl
 
  pacman -S wget
 
 
 
 
 
*create a file called /bin/alsync and add these lines
 
  cd /var/cache/pacman/pkg
 
  wget -N <nowiki>ftp://ftp.archlinux.org/current/</nowiki>'''.db.'''
 
  wget -N <nowiki>ftp://ftp.archlinux.org/extra/</nowiki>'''.db.'''
 
 
 
*chmod 755 /bin/alsync
 
 
 
copy this file to your clients
 
 
 
*Attempt to run as root on the first client
 
  alsync
 
  pacman -Syu
 
  pacman -S new-pkgname
 
 
 
*Then move to the next client and run
 
  pacman -Syu
 
  pacman -S new-pkgname
 

Revision as of 17:36, 25 June 2015