本地网络建立一个Debian/Ubuntu镜像

本教程将为你演示如何使用apt-mirror这个工具为本地网络建立一个Debian/Ubuntu镜像。因为假如你要为本地多台Ubuntu或者Debian机器安装或者升级,先在本地网络上建好一个镜像是非常有必要的,因为这样将大大的节省你的网络带宽。

This tutorial shows how to create a Debian/Ubuntu mirror for your local network with the tool apt-mirror. Having a local Debian/Ubuntu mirror is good if you have to install multiple systems in your local network because then all needed packages can be downloaded over the fast LAN connection, thus saving your internet bandwidth.

I want to say first that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!

 

1 Preliminary Note

You can set up a Debian and Ubuntu mirror on both Debian and Ubuntu systems, i.e., a Debian system can be a Debian and a Ubuntu mirror, as well as a Ubuntu system can be a Ubuntu and a Debian mirror.

Please note that you need a fast internet connection to download all the packages to your mirror as well as a lot of hard disk space. In my tests I mirrored the main, contrib, and non-free sections of Debian Sarge and the main, restricted, and universe sections of Ubuntu Edgy Eft which took about 25GB of hard disk space and about 6 hours of download time on a 16MBit DSL line.

I will not mirror security updates in this tutorial - I think it's a good idea to always download security updates directly from the internet. That way you can be sure you get the latest ones.

I've tested this on a Debian Sarge and a Ubuntu Edgy Eft system. If you use different Debian/Ubuntu versions, the procedure might differ a little bit. You should have already set up a basic Debian Sarge system (e.g. as outlined on pages one and two of http://www.howtoforge.com/perfect_setup_debian_sarge) or a basic Ubuntu Edgy Eft system (e.g. as outlined on pages one to three of http://www.howtoforge.com/perfect_setup_ubuntu_6.10).

In this example my local mirror has the IP address 192.168.0.100.

 

2 Install apt-mirror

2.1 Modify /etc/apt/sources.list (Debian Sarge only)

If you are on Debian Sarge, you must modify /etc/apt/sources.list to install apt-mirror. I don't know if this is necessary on Debian Etch or Sid, please try it yourself. This step is not necessary for Ubuntu Edgy Eft.

vi /etc/apt/sources.list

Please add the following line to the file:

[...]deb http://apt-mirror.sourceforge.net/ apt-mirror/[...]

Then update the packages database:

apt-get update

 

2.2 Install apt-mirror

This step is for all systems (Debian and Ubuntu). To install apt-mirror, please run

apt-get install apt-mirror

 

3 Install Apache

Later on, I want to access my new local Debian/Ubuntu mirror over http, therefore I install the Apache web server now:

apt-get install apache2

The default document root is /var/www, I will create symlinks from that directory to the location of the Debian and Ubuntu repository later on.

 

4 Configure apt-mirror

apt-mirror's configuration file is /etc/apt/mirror.list. There should already be a default configuration in it; on Debian Sarge the file looks like this:

# apt-mirror configuration file#### The default configuration options (uncomment and change to override)#### set base_path           /var/spool/apt-mirror# set mirror_path  $base_path/mirror# set skel_path           $base_path/skel# set var_path     $base_path/var## set defaultarch  
      
      # set nthreads     20##### Example sources### sarge's sectiondeb http://ftp.fi.debian.org/debian sarge main contrib non-freedeb-src http://ftp.fi.debian.org/debian sarge main contrib non-freedeb http://security.debian.org/debian-security sarge/updates main contrib non-freedeb-src http://security.debian.org/debian-security sarge/updates main contrib non-freedeb http://ftp.fi.debian.org/debian sarge main/debian-installer# sarge-proposed-updates's sectiondeb http://ftp.fi.debian.org/debian sarge-proposed-updates main contrib non-freedeb-src http://ftp.fi.debian.org/debian sarge-proposed-updates main contrib non-free# sid's sectiondeb http://ftp.fi.debian.org/debian sid main contrib non-freedeb-src http://ftp.fi.debian.org/debian sid main contrib non-freedeb http://ftp.fi.debian.org/debian sid main/debian-installer# experimental sectiondeb http://ftp.fi.debian.org/debian ../project/experimental main contrib non-freedeb-src http://ftp.fi.debian.org/debian ../project/experimental main contrib non-free#### Cleaner configuration example#### set cleanscript $var_path/clean.sh## Cleaning sectionclean http://security.debian.org/clean http://ftp.fi.debian.org/skip-clean http://ftp.fi.debian.org/doc/skip-clean http://ftp.fi.debian.org/tools/skip-clean http://ftp.fi.debian.org/debian-cd/skip-clean http://ftp.fi.debian.org/debian-minicd/skip-clean http://ftp.fi.debian.org/debian/dists/sarge/main/installer-i386/skip-clean http://ftp.fi.debian.org/debian/dists/sid/main/installer-i386/skip-clean http://ftp.fi.debian.org/debian/doc/skip-clean http://ftp.fi.debian.org/debian/tools/skip-clean http://ftp.fi.debian.org/debian/project/skip-clean http://ftp.fi.debian.org/debian-non-US/project/

On Ubuntu Edgy Eft, the file looks like this:

############# config #################### set base_path    /var/spool/apt-mirror## if you change the base path you must create the directories below with write privlages## set mirror_path  $base_path/mirror# set skel_path    $base_path/skel# set var_path     $base_path/var# set cleanscript $var_path/clean.sh# set defaultarch  
      
      set nthreads     20set tilde 0############## end config ##############deb http://archive.ubuntu.com/ubuntu edgy main restricted universe multiversedeb http://archive.ubuntu.com/ubuntu edgy-updates main restricted universe multiverse#deb http://archive.ubuntu.com/ubuntu edgy-backports main restricted universe multiversedeb http://archive.ubuntu.com/ubuntu edgy-security main restricted universe multiverse#deb http://archive.ubuntu.com/ubuntu edgy-proposed main restricted universe multiversedeb-src http://archive.ubuntu.com/ubuntu edgy main restricted universe multiversedeb-src http://archive.ubuntu.com/ubuntu edgy-updates main restricted universe multiverse#deb-src http://archive.ubuntu.com/ubuntu edgy-backports main restricted universe multiversedeb-src http://archive.ubuntu.com/ubuntu edgy-security main restricted universe multiverse#deb-src http://archive.ubuntu.com/ubuntu edgy-proposed main restricted universe multiverseclean http://archive.ubuntu.com/ubuntu

If you compare the file with /etc/apt/sources.list, you will see that it's very similar. /etc/apt/mirror.list mainly lists the repositories that should be mirrored, plus a few other options.

Now we modify /etc/apt/mirror.list. As I said before, I want to mirror the main, contrib, and non-free sections of Debian Sarge and the main, restricted, and universe sections of Ubuntu Edgy Eft, but I don't want to mirror the security updates as these should be downloaded directly from the internet. Also, I don't want to mirror the source packages because in 95% of all installations you don't need source packages, and they need a lot of space on the hard disk. So my /etc/apt/mirror.list looks like this:

vi /etc/apt/mirror.list

# apt-mirror configuration file#### The default configuration options (uncomment and change to override)#### set base_path    /var/spool/apt-mirror# set mirror_path  $base_path/mirror# set skel_path    $base_path/skel# set var_path     $base_path/var## set defaultarch  
     
     # set nthreads     20##### Example sources### sarge's sectiondeb http://ftp.de.debian.org/debian sarge main contrib non-free# Ubuntu Edgy Eftdeb http://de.archive.ubuntu.com/ubuntu/ edgy main restricted universe#### Cleaner configuration example#### set cleanscript $var_path/clean.sh## Cleaning sectionclean http://ftp.de.debian.org/clean http://de.archive.ubuntu.com/

Please note that I used ftp.de.debian.org instead of ftp.fi.debian.org and de.archive.ubuntu.com instead of archive.ubuntu.com. You should use mirrors that are close to you, so if you are in the U.S., for example, replace de with us, and so on.

The cleaning section at the end tells apt-mirror in which directories on the local hard disk it should check to see if hard disk space can be freed. I want to check the whole local repositories for both Debian and Ubuntu, therefore I specify

clean http://ftp.de.debian.org/
clean http://de.archive.ubuntu.com/

If you want to use other Debian/Ubuntu versions, simply replace sarge with etch or sid and edgy with breezy, dapper, etc.

5 Create The Local Repositories

Now that apt-mirror is configured, it's time to run it for the first time and download all the packages that form the local Debian and Ubuntu repository. All we have to do is type

su - apt-mirror -c apt-mirror

apt-mirror tells you how many GB it must download. This can take a few hours, so be patient. The packages will be stored in subdirectories of the /var/spool/apt-mirror/mirror directory, so make sure the partition that holds that directory has enough disk space left.

The Debian repository will be in /var/spool/apt-mirror/mirror/ftp.de.debian.org/debian, and the Ubuntu repository will be in /var/spool/apt-mirror/mirror/de.archive.ubuntu.com/ubuntu. If you used different mirrors in chapter 4, the paths will be a little bit different for you.

 

6 Clean Up The Local Repositories

After apt-mirror has finished downloading all packages, it will most likely tell you can free up some disk space with the /var/spool/apt-mirror/var/clean.sh script. That's what we do now:

/bin/bash /var/spool/apt-mirror/var/clean.sh

The output will look like this:

server1:~# /bin/bash /var/spool/apt-mirror/var/clean.sh
Removing 157 unnecessary files [13316096 bytes]...
[0%]................done.

Removing 18 unnecessary directories...
[0%]..................done.

As you see, some MB have been freed.

 

7 Update The Local Repositories / Create A Daily Cron Job

Updating the local mirror is easy. Simply run

su - apt-mirror -c apt-mirror

again.

If you don't want to do it manually, you can create a daily cron job for it. Simply edit /etc/cron.d/apt-mirror and uncomment the last line in it so that it looks like this:

vi /etc/cron.d/apt-mirror

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值