Difference between revisions of "Local Mirror"

From ArchWiki
Jump to: navigation, search
m (Building Rsync Command)
(Server Configuration: Updated information to reflect all packages going into pool)
Line 30: Line 30:
 
* Use the rsync arguments from [http://wiki.archlinux.org/index.php/DeveloperWiki:NewMirrors DeveloperWiki:NewMirrors]
 
* Use the rsync arguments from [http://wiki.archlinux.org/index.php/DeveloperWiki:NewMirrors DeveloperWiki:NewMirrors]
 
* Select a server from the above article
 
* Select a server from the above article
* Exclude files you don't want by including --exclude-from="/path/to/exclude.txt"  in the rsync arguments
+
* Exclude folder/files you don't want by including --exclude-from="/path/to/exclude.txt"  in the rsync arguments
 
/path/to/exclude.txt
 
/path/to/exclude.txt
<pre>community-staging
+
<pre>
 
iso
 
iso
gnome-untsable
+
 
kde-unstable
+
#Exclude i686 Packages
staging
+
*/os/i686
 +
pool/*/*-i686.pkg.tar.xz
 +
pool/*/*-i686.pkg.tar.gz
 +
 
 +
#Exclude x86_64 Packages
 +
*/os/x86_64
 +
pool/*/*-x86_64.pkg.tar.xz
 +
pool/*/*-x86_64.pkg.tar.gz
 
</pre>
 
</pre>
* Take look at the top level directory of the mirror that you choose and '''make sure''' to exclude anything you do no not need
+
* All packages reside in the pool directory. Symlinks are then created from pool to core/extra/testing/etc..
*Insure to add community-testing, testing, and multilib, if you don't use those repositories, to exclude.txt
+
**As of 9/21/2010 this migration is not yet complete.
**TIP: If you only need i686 packages exclude x86_64 by including core/os/x86_64 in exclude.txt
+
***There may be actual packages, instead of symlinks, in ${repo}/os/${arch}
***Do the oposite if you need x86_64 packages only
+
*Exclude any top-level directories that you do not need
***Insure you do this for core, extra, and testing
+
**Example: iso - no one should download all the ISO's
  
 
Example: rsync ''$rsync_arguments'' --exclude="/path/to/exclude.txt" ''rsync://example.com/'' /path/to/destination
 
Example: rsync ''$rsync_arguments'' --exclude="/path/to/exclude.txt" ''rsync://example.com/'' /path/to/destination

Revision as of 12:56, 21 September 2010

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Note: If you want to create an official mirror see this page.

STOP

It is generally frowned upon to create a local mirror due the bandwidth that is required. One of the alternatives will likely fulfill your needs. Please look at the alternatives below.


Alternatives:


Local Mirror

Things to keep in mind:

  • Bandwidth is not free for the mirrors. They must pay for all the data they serve you
    • This still applies although you pay your ISP
  • There are many packages that will be downloaded that you will likely never use
  • Mirror operators will much prefer you to download only the packages you need
  • Really please look at the alternatives above

If you are absolutely certain that a local mirror is the only sensible solution, then follow the pointers below.

Server Configuration

Building Rsync Command

  • Use the rsync arguments from DeveloperWiki:NewMirrors
  • Select a server from the above article
  • Exclude folder/files you don't want by including --exclude-from="/path/to/exclude.txt" in the rsync arguments

/path/to/exclude.txt

iso

#Exclude i686 Packages
*/os/i686
pool/*/*-i686.pkg.tar.xz
pool/*/*-i686.pkg.tar.gz

#Exclude x86_64 Packages
*/os/x86_64
pool/*/*-x86_64.pkg.tar.xz
pool/*/*-x86_64.pkg.tar.gz
  • All packages reside in the pool directory. Symlinks are then created from pool to core/extra/testing/etc..
    • As of 9/21/2010 this migration is not yet complete.
      • There may be actual packages, instead of symlinks, in ${repo}/os/${arch}
  • Exclude any top-level directories that you do not need
    • Example: iso - no one should download all the ISO's

Example: rsync $rsync_arguments --exclude="/path/to/exclude.txt" rsync://example.com/ /path/to/destination

Serving

Client Configuration

  • Add the proper Server= variable in /etc/pacman.d/mirrorlist
  • For physical media (such as flash drive) the following can be used: Server = file:///mnt/media/repo