AptProxyHowTo:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Oneleaf留言 | 贡献
新页面: == apt-proxy 安装指南 == 原文出处:https://wiki.ubuntu.com/AptProxyHowTo 原文作者: 授权许可: * [http://creativecommons.org/licenses/by-sa/2.0/ 创作共用协议A...
 
Dbzhang800留言 | 贡献
正在重定向到 UbuntuHelp:AptProxy/zh
 
第1行: 第1行:
 
#REDIRECT[[UbuntuHelp:AptProxy/zh]]
== apt-proxy 安装指南 ==
 
原文出处:https://wiki.ubuntu.com/AptProxyHowTo
 
原文作者:
 
授权许可:
* [http://creativecommons.org/licenses/by-sa/2.0/ 创作共用协议Attribution-ShareAlike 2.0]
* [http://www.gnu.org/copyleft/fdl.html GNU自由文档许可证]
 
翻译人员:leal
 
校正人员:
 
贡献人员:
 
适用版本:所有
文章状态:[[等待校正]]
----
 
 
 
apt-proxy是一个用于apt的代理,它可以在你的硬盘上创建一个远程仓库的完整副本。
 
=== 导言 ===
 
apt-proxy是一个用于apt的代理,它可以在你的硬盘上创建一个远程仓库的完整副本。由于apt-proxy行为类似一个带有仓库的HTTP服务器,因此你可以在内部网的其它机器上访问这些包。如果cache中缺少某个包,apt-proxy会自动下载该包并把它放到cache中。如果你得一遍又一遍的安装 包(也即upgrade或dist-upgrade你的所有机器),apt-proxy可以很大程度上减少下载带宽和安装时间。
 
apt-proxy的当前不稳定版本可以从 hoary universe 仓库获得 (参见: 如何-访问 "universe" 仓库) 你可以通过如下命令快捷安装apt-proxy:
<pre><nowiki>
apt-get install apt-proxy/hoary
</nowiki></pre>
 
=== 配置 ===
 
若要使用apt-proxy,你必须更改apt的sources.list和apt-proxy的配置文件。
 
apt-proxy-v2.conf
 
/etc/apt-proxy/apt-proxy-v2.conf 的第一段包含了这个代理(apt-proxy)和其cache的缺省设置。
 
最应该做的更改是把地址(address)参数设置成适合你的值,也即你的代理服务器在内部网络的IP地址。端口(port)参数指定了apt-proxy要在哪个端口侦听请求,缺省值是9999,如果和系统其它设置不相冲突,那就最好别做改变。
 
也许你想把仓库的cache目录设置成 /var/cache/apt-proxy 之外的目录,改变cache_dir参数可达此目的。
 
如果你正在使用一个普通代理(general proxy),设置http_proxy == proxy_server:port你可以令apt-proxy知道其存在。如果你处于防火墙后,那么试图连接到FTP后端时,使用主动(active) FTP连接可能会遇到问题。设置passive_ftp == on应该能解决这个问题。
 
其它一些值控制包留存在cache中的时间、至少多久之后才让apt-proxy检查某个包的更新版本,或者在cache中检查旧包的频率(??need improve)。这些设置一般使用缺省值即可。
 
apt-proxy必须知道远端仓库的位置,即后端(backend)。可以在 /etc/apt-proxy/apt-proxy-v2.conf 的backend段中进行设置。ubuntu所用的backend项示例如下:
<pre><nowiki>
[ubuntu]
;; Ubuntu archive
backends =
http://archive.ubuntu.com/ubuntu
http://de.archive.ubuntu.com/ubuntu
</nowiki></pre>
如你所见,可以指定不止一个服务器,由空格分隔。如果第一个服务器失效,apt-proxy会试着从第二个服务器获取数据,依此类推。你也可以根据default段的值集进行设置。比如,如果你知道某个服务器需很长时间应答请求,就可以增大timeout值:
<pre><nowiki>
[ubuntu-slow]
timout = 60 ;wait 1 Minute
backends = prot://some.very.slow.server.net/ubuntu-slow
</nowiki></pre>
完整的 apt-proxy-v2.conf 文件(这个是我的)和如下类似:
<pre><nowiki>
[DEFAULT]
;; All times are in seconds, but you can add a suffix
;; for minutes(m), hours(h) or days(d)
 
address = 127.0.0.1
port = 9999
cache_dir = /var/cache/apt-proxy
 
;; Control files (Packages/Sources/Contents) refresh rate
min_refresh_delay = 1s
complete_clientless_downloads = 1
 
;; Debugging settings.
debug = all:4 db:0
 
timeout = 30
passive_ftp = on
 
;;--------------------------------------------------------------
;; Cache housekeeping
 
cleanup_freq = 1d
max_age = 120d
max_versions = 3
 
;;---------------------------------------------------------------
;; Backend servers
;;
;; Place each server in its own [section]
 
[ubuntu]
; Ubuntu archive
backends =
http://archive.ubuntu.com/ubuntu
http://de.archive.ubuntu.com/ubuntu
 
[ubuntu-security]
; Ubuntu security updates
backends = http://security.ubuntu.com/ubuntu
 
[marillat]
backends = ftp://ftp.nerim.net/debian-marillat
 
[debian]
; Backend servers, in order of preference
backends =
http://ftp.us.debian.org/debian
http://ftp.de.debian.org/debian
http://ftp2.de.debian.org/debian
ftp://ftp.uk.debian.org/debian
 
[debian-non-US]
; Debian debian-non-US archive
backends =
http://ftp.uk.debian.org/debian-non-US
http://ftp.de.debian.org/debian-non-US
ftp://ftp.uk.debian.org/debian
 
[security]
; Debian security archive
backends =
http://security.debian.org/debian-security
http://ftp2.de.debian.org/debian-security
 
[openoffice]
; OpenOffice.org packages
backends =
http://ftp.freenet.de/pub/debian-openoffice
http://ftp.sh.cvut.cz/MIRRORS/OpenOffice.deb
http://borft.student.utwente.nl/debian
 
[apt-proxy]
; Apt-proxy new versions
backends = http://apt-proxy.sourceforge.net/apt-proxy
</nowiki></pre>
=== sources.list ===
 
现在,apt 必须知道系统上存在 apt-proxy 这玩意,并且可以从它那儿获取安装包,而非直接下载这些包。最好的办法是把 sources.list 里的所有直接服务器(注:即外部服务器,非内网)都注释掉,以确保apt-get决不会试图从这些服务器上直接获取包。然后添加 apt-proxy 设置,它们看上去和普通 apt 仓库相似,只不过你总是必须在其后添加 backend 段名(即 apt-proxy-v2.conf 中方括号内的所有项)以组成路径:
<pre><nowiki>
deb http://apt-proxy:port/backend dist component
</nowiki></pre>
如果你的 apt-proxy 和我的一样侦听 localhost 的 9999 端口,你可以指定一个 ubuntu 段,还有源(代码)行和如下类似:
<pre><nowiki>
deb http://localhost:9999/ubuntu hoary main restricted universe multiverse
deb-src http://localhost:9999/ubuntu hoary main restricted universe multiverse
<sup>^^^^</sup>
这是 backend 段(即[ubuntu])
</nowiki></pre>
在你更改apt-proxy配置文件后,你必须通过sudo操作重启这个代理:
<pre><nowiki>
/etc/init.d/apt-proxy restart
</nowiki></pre>
和上述 apt-proxy-v2.conf 对应的完整的 sources.list 如下:
<pre><nowiki>
# apt-proxy entries for standard modules
deb http://localhost:9999/ubuntu hoary main restricted universe multiverse
deb-src http://localhost:9999/ubuntu hoary main restricted universe multiverse
 
# apt-proxy entries for security patches
deb http://localhost:9999/ubuntu-security hoary-security main restricted universe multiverse
deb-src http://localhost:9999/ubuntu-security hoary-security main restricted universe multiverse
 
# additional repositories
deb http://localhost:9999/marillat unstable main
 
# debian packages
deb http://localhost:9999/debian unstable main contrib non-free
deb http://localhost:9999/debian-non-US unstable/non-us main contrib non-free
deb http://localhost:9999/security sid main contrib non-free
</nowiki></pre>
=== 初始化apt-proxy ===
 
现在运行apt-get update来初始化apt-proxy的cache并把新的列表存入cache中。于是你便可以按老样子使用apt-*,好像根本没apt-proxy这玩意。
导入apt的cache
 
如果你之前已经用 apt-get 下载过包,这些包会缓存在 /var/cache/apt/archives 目录里。根据当前的包列表,你可以用 apt- proxy-import 把这些包导入到 apt-proxy cache 中。因此你应该首先运行 apt-get update 得到最新列表,然后只需简单运行如下命令:
<pre><nowiki>
apt-proxy-import -r -i /var/cache/apt/archives
</nowiki></pre>
这样apt-proxy就会把apt cache里的所有包导入到它自己的cache中。
=== 链接 ===
* [http://i18n.linux.net.cn/others/APT_and_Dpkg.php apt 和 dpkg 快速参考]
* http://apt-proxy.sourceforge.net

2008年4月27日 (日) 09:54的最新版本

重定向到: