我有 500 多个系统运行 ubuntu 10.04、ubuntu 10.10 和 ubuntu 11.04。由于带宽占用率高,我们很难从互联网上将新软件包安装到这些机器上。我计划设置一个 apt-cacher 服务器,这样它就可以从本地机器安装软件包,而不是从互联网上安装软件包。有人能给我一个简洁的解决方案吗?提前谢谢。
服务器配置错误:
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.
客户端安装软件包时出错
有人可以解决吗?
答案1
服务器端配置。
- 在您想要托管的系统上安装 apt-cacher 和 apache2 webserver:。
sudo apt-get install apt-cacher apache2
如果您已经在运行 apache,请删除它。 - 启用 apt-cacher:
sudo gedit /etc/default/apt-cacher
将自动启动改为 1 - 如果在安装 apt-cacher 之前已经安装了 apache:。您现在
sudo invoke-rc.d apache2 restart
应该可以访问。http://server:3142
/etc/apt-cacher/apt-cacher.conf
包含所有设置。请根据需要进行调整。- 导入本地缓存:
sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives
- 挂载安装程序 CD:
sudo mount -o loop /home/username_or_other_path/ubuntu-9.10-rc-alternate-i386.iso /media/cdrom0
并导入 CD 缓存:sudo /usr/share/apt-cacher/apt-cacher-import.pl -R -r /media/cdrom0
。
客户端配置:
- Sources.list:将所有 URL 更改为指向您的服务器 URL。(即)(更改 1 个客户端,如果可行,则将其复制到所有其他系统)
deb http://apt-cacher-server:3142/archive.ubuntu.com/ubuntu/
2a. 用作 APT 的代理:静态配置。在终端中输入:
sudo nano /etc/apt/apt.conf.d/01proxy
添加:
Acquire::http::Proxy "http://<IP address or hostname of the apt-cacher server>:3142";
2b. 用作 APT 代理:漫游配置:请参阅顶部的链接以了解设置和脚本。
我自己没有测试过,但是工作中有人使用此页面为我们自己进行了设置。
编辑:关于错误:显然 Perl 的重命名功能无法跨设备移动文件,这就是导入和缓存在磁盘上的布局方式。
选项:1. 使用 -s 参数(仅创建符号链接)。2. 导入前手动将文件移动到同一设备上。
答案2
我从来没有让任何 apt-cacher 正常工作,因此我问 Michael Vogt 我们是否可以为此提供一个易于使用的 squid 配置,于是 squid-deb-proxy 诞生了。
设置起来非常简单,除了安装客户端包外,不需要在客户端部分进行任何配置。
使用说明如下:
答案3
我认为透明代理乌贼就能轻松完成工作。