I have more than 500 systems running ubuntu 10.04, ubuntu 10.10 and ubuntu 11.04. It is difficult for us to install new packages to these machines from internet, because of the high bandwidth usage. I am planning to set up an apt-cacher server, such that it should install packages from a local machine, instead of installing packages from the internet. Can anyone give me a neat solution please? Thanks in advance.
Error in server configuration:
root@karthick:~# sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives
Importing: acl_2.2.49-3_i386.deb
Failed to rename acl_2.2.49-3_i386.deb. Try read-only (-r) or symlink (-s) options. at /usr/share/apt-cacher/apt-cacher-import.pl line 154.
Error in client on installing packages
Can anyone sort out pls?
Best Answer
From Apt-Cacher-Server:
sudo apt-get install apt-cacher apache2
. Remove apache is you already have that running.sudo gedit /etc/default/apt-cacher
.Change autostart to 1sudo invoke-rc.d apache2 restart
. You should be able to accesshttp://server:3142
now./etc/apt-cacher/apt-cacher.conf
contains all the settings. Adjust them to your needs.sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives
sudo mount -o loop /home/username_or_other_path/ubuntu-9.10-rc-alternate-i386.iso /media/cdrom0
and import the CD cache:sudo /usr/share/apt-cacher/apt-cacher-import.pl -R -r /media/cdrom0
.deb http://apt-cacher-server:3142/archive.ubuntu.com/ubuntu/
) (change 1 client and if it works copy it over to all other systems)2a. Use as a proxy to APT: Static configuration. In a terminal, type:
sudo nano /etc/apt/apt.conf.d/01proxy
Add:
Acquire::http::Proxy "http://<IP address or hostname of the apt-cacher server>:3142";
2b. Use as a proxy to APT: Roaming configuration: see the link at the top for setup and script.
untested by myself but someone at work used this page to set it up for ourself.
edit: About the error: apparently Perl’s rename function can’t move files across devices, and that’s how the imports and cache laid on the disk.
Options: 1. use the -s parameter (only creates symlinks). 2. Manually move the files onto the same device before importing.