“UbuntuHelp:AptProxy/zh”的版本间的差异
来自Ubuntu中文
(→相关链接) |
|||
(未显示3个用户的26个中间版本) | |||
第1行: | 第1行: | ||
− | + | {{From|http://wiki.ubuntu.org.cn/UbuntuHelp:AptProxy}} | |
+ | {{Translator|李威}} | ||
+ | {{Languages|UbuntuHelp:AptProxy}} | ||
+ | === 简述=== | ||
− | + | apt-proxy程序将你从网络上下载下来的软件包缓存到本地磁盘。apt-proxy的行为就像一台包含那些你所选择软件包全部拷贝的HTTP服务器。你可以从本地网络上的其他计算机上存取这些软件包。如果软件包还没有被缓存,apt-poxy会自动下载并缓存上。这对那些需要重复安装同样软件包的人来说(如,为多台机子升级),非常有效的节约了下载带宽和安装的时间。 | |
− | + | === 安装 === | |
− | + | ||
− | + | ||
− | + | ||
− | === 安装 | + | |
apt-proxy 已经包含在通用档案文件中。要安装,在终端中运行命令: | apt-proxy 已经包含在通用档案文件中。要安装,在终端中运行命令: | ||
− | <pre>sudo apt-get install apt-proxy</pre> | + | <pre>sudo apt-get install apt-proxy</pre> |
− | + | ||
=== 配置apt-proxy服务器 === | === 配置apt-proxy服务器 === | ||
==== 默认设置 ==== | ==== 默认设置 ==== | ||
− | + | 在apt-proxy配置文件 ''/etc/apt-proxy/apt-proxy-v2.conf'' 的第一节中,包含了apt-proxy及其缓存的默认设置。第一步就是设置 address 参数,将其设置为内网中作为apt-proxy服务器的IP。 如果该项被注释掉,apt-proxy会监听服务器的所有的IP地址。port 参数指定了apt-proxy要监听的请求端口,其默认设置为9999,通常情况下用这个值就很合适了。 如果你想改变apt-proxy缓存软件包的目录,更改 cache_dir 参数即可。缓存目录默认设为 ''/var/cache/apt-proxy''。如果你使用了网页代理服务器(如,Squid),你可以配置apt-proxy使用代理,设置方法为 http_proxy = proxy_server:port 。如果你在防火墙之後,那么你用主动FTP连接去连接到一个FTP後端时可能会出问题。而 passive_ftp = on 应该能解决这个问题。另外的一个值控制软件包在缓存中保存多长时间。也就是说,在apt-proxy检查更新版本前软件包应至少存在了多长时间,或者说缓存中的软件包每隔多长时间查找一次更新版本。在到达这个默认值时,它们就被安全地抛弃了。 | |
− | ==== | + | ==== 後端 ==== |
− | apt- | + | apt-proxy知道从哪个远程软件仓库中查找软件包,这是由于其引入了一个後端设置。通过 ''/etc/apt-proxy/apt-proxy-v2.conf'' 中的 backend 节来完成後端设置。一个後端 Ubuntu条目看起来类似于这样: |
<pre>[ubuntu] | <pre>[ubuntu] | ||
;; Ubuntu archive | ;; Ubuntu archive | ||
backends = | backends = | ||
http://archive.ubuntu.com/ubuntu | http://archive.ubuntu.com/ubuntu | ||
− | http://de.archive.ubuntu.com/ubuntu</pre> | + | http://de.archive.ubuntu.com/ubuntu</pre> |
− | + | 正如你看到的那样,可以指定多个服务器,使用空白来分隔开。如果第一个服务器挂了,apt-proxy会试着从第二个服务器获取数据,如此类推。''注意: 如果第一个服务器正常工作,但是没有需要的文件,apt-proxy并不会向後使用第二个服务器''。你可以在[default]节复盖该设置志。如下实例,如果你知道某个服务器对请求的应答时间很长,那么你可以增加 timeout 的值: | |
<pre>[ubuntu-slow] | <pre>[ubuntu-slow] | ||
timeout = 60 ;wait 1 Minute | timeout = 60 ;wait 1 Minute | ||
− | backends = prot://some.very.slow.server.net/ubuntu-slow</pre> | + | backends = prot://some.very.slow.server.net/ubuntu-slow</pre> |
− | + | 一个完整的 '''apt-proxy-v2.conf'''示例如下: | |
<pre>[DEFAULT] | <pre>[DEFAULT] | ||
;; All times are in seconds, but you can add a suffix | ;; All times are in seconds, but you can add a suffix | ||
第104行: | 第102行: | ||
[apt-proxy] | [apt-proxy] | ||
; Apt-proxy new versions | ; Apt-proxy new versions | ||
− | backends = http://apt-proxy.sourceforge.net/apt-proxy</pre> | + | backends = http://apt-proxy.sourceforge.net/apt-proxy</pre> |
− | + | 备注 你不要指定这些文件的发布版本;Ubuntu,自己能够获取所有的版本信息(Hoary, Breezy, Dapper 等等)。哪些文件会被下载取决于每个客户端 sources.list 的配置。 <br> | |
+ | |||
+ | === 初始化apt-proxy<br> === | ||
+ | |||
+ | 更改完apt-proxy配置文件后,要重启apt-proxy来更新列表,可以运行如下命令:<br> | ||
+ | <pre>$ sudo /etc/init.d/apt-proxy restart | ||
+ | </pre> | ||
+ | 你的apt-proxy现在就可以用了。 | ||
+ | |||
+ | === 导入apt缓存 === | ||
+ | |||
+ | 注意:在软件仓库中当前版本(1.933ubuntu1)的apt-proxy,本操作可能不能正确工作。这是一个[https://launchpad.net/ubuntu/+source/apt-proxy/+bug/4844 已知bug]。如果无意中尝试进行了本操作,那么也不会对系统产生副作用。已经用apt-get下载下来的软件包,已经被缓存在 ''/var/cache/apt/archives''中。这些包可以用 '''apt-proxy-import''' 从当前包列表中导入到apt-proxy缓存中。应该在 '''apt-proxy-import''' 前先运行 '''aptitude update''' 来取得更新列表,如下:<br> | ||
+ | <pre>$ sudo aptitude update | ||
+ | $ sudo apt-proxy-import -r /var/cache/apt/archives | ||
+ | </pre> | ||
+ | === 使用apt代理服务器更新客户端 === | ||
+ | |||
+ | apt客户端需要将 ''/etc/apt/sources.list'' 文件重新配置成指向apt-proxy服务器来代替原来的外部地址。配置 sources.list 文件与配置通常的apt仓库很相似,只要将 backend 节添加到路径中:<br> | ||
+ | <pre>deb http://apt-proxy:port/backend dist component | ||
+ | </pre> | ||
+ | 将其中软件仓库的URL替换为你的服务器的引用及其后端,如下:<br> | ||
+ | <pre>deb http://archive.ubuntu.com/ubuntu dapper main restricted | ||
+ | deb http://security.ubuntu.com/ubuntu dapper-security main restricted universe | ||
+ | </pre> | ||
+ | 将变为<br> | ||
+ | <pre>deb http://server:9999/ubuntu dapper main restricted | ||
+ | deb http://server:9999/ubuntu-security dapper-security main restricted universe</pre> | ||
+ | 与上面的 apt-proxy-v2.conf 相配合的 sources.list 如下:<br> | ||
+ | <pre># apt-proxy entries for standard modules | ||
+ | deb http://localhost:9999/ubuntu dapper main restricted universe multiverse | ||
+ | deb-src http://localhost:9999/ubuntu dapper main restricted universe multiverse | ||
+ | |||
+ | # apt-proxy entries for security patches | ||
+ | deb http://localhost:9999/ubuntu-security dapper-security main restricted universe multiverse | ||
+ | deb-src http://localhost:9999/ubuntu-security dapper-security main restricted universe multiverse</pre> | ||
+ | === 故障解决 === | ||
+ | |||
+ | ==== 获取包的问题 ==== | ||
+ | |||
+ | 使用Dapper Drake,以及其他Ubuntu的计算机在连接代理时接收软件仓库列表文件头时可能会发生问题。如果你的计算机在连接代理时碰上了这个问题,请编辑 ''/etc/apt/apt.conf'',运行: | ||
+ | <pre>sudo nano /etc/apt/apt.conf | ||
+ | </pre> | ||
+ | 你也可以选择别的文本编辑器。找到 | ||
+ | <pre>Acquire::http::Proxy "false"; | ||
+ | </pre> | ||
+ | 更改为 | ||
+ | <pre>Acquire::Proxy "false"; | ||
+ | </pre> | ||
+ | 然后保存,退出。再次更新软件仓库文件列表,运行 | ||
+ | <pre>sudo apt-get update | ||
+ | </pre> | ||
+ | 或者使用其他的方法更新软件仓库(如,在更新管理器中检查或在新立得软件包管理中更新)。现在应该可以正确载入了。 | ||
+ | |||
+ | ==== 连接被拒绝 ==== | ||
+ | |||
+ | 由于某些设置,代理不能用于外界的机器。代理可以很好在本地主机工作,但是用于外部的机器就会失败。 | ||
+ | |||
+ | === 相关链接 === | ||
+ | |||
+ | * [[UbuntuHelp:AptGetHowto|AptGetHowto]] | ||
+ | * [http://apt-proxy.sourceforge.net apt-proxy webpage] | ||
+ | |||
+ | [[Category:UbuntuHelp]] | ||
+ | [[Category:包管理]] | ||
+ | [[Category:代理]] | ||
+ | [[Category:服务器]] |
2010年4月5日 (一) 20:20的最新版本
点击翻译: |
English • 中文 |
目录
简述
apt-proxy程序将你从网络上下载下来的软件包缓存到本地磁盘。apt-proxy的行为就像一台包含那些你所选择软件包全部拷贝的HTTP服务器。你可以从本地网络上的其他计算机上存取这些软件包。如果软件包还没有被缓存,apt-poxy会自动下载并缓存上。这对那些需要重复安装同样软件包的人来说(如,为多台机子升级),非常有效的节约了下载带宽和安装的时间。
安装
apt-proxy 已经包含在通用档案文件中。要安装,在终端中运行命令:
sudo apt-get install apt-proxy
配置apt-proxy服务器
默认设置
在apt-proxy配置文件 /etc/apt-proxy/apt-proxy-v2.conf 的第一节中,包含了apt-proxy及其缓存的默认设置。第一步就是设置 address 参数,将其设置为内网中作为apt-proxy服务器的IP。 如果该项被注释掉,apt-proxy会监听服务器的所有的IP地址。port 参数指定了apt-proxy要监听的请求端口,其默认设置为9999,通常情况下用这个值就很合适了。 如果你想改变apt-proxy缓存软件包的目录,更改 cache_dir 参数即可。缓存目录默认设为 /var/cache/apt-proxy。如果你使用了网页代理服务器(如,Squid),你可以配置apt-proxy使用代理,设置方法为 http_proxy = proxy_server:port 。如果你在防火墙之後,那么你用主动FTP连接去连接到一个FTP後端时可能会出问题。而 passive_ftp = on 应该能解决这个问题。另外的一个值控制软件包在缓存中保存多长时间。也就是说,在apt-proxy检查更新版本前软件包应至少存在了多长时间,或者说缓存中的软件包每隔多长时间查找一次更新版本。在到达这个默认值时,它们就被安全地抛弃了。
後端
apt-proxy知道从哪个远程软件仓库中查找软件包,这是由于其引入了一个後端设置。通过 /etc/apt-proxy/apt-proxy-v2.conf 中的 backend 节来完成後端设置。一个後端 Ubuntu条目看起来类似于这样:
[ubuntu] ;; Ubuntu archive backends = http://archive.ubuntu.com/ubuntu http://de.archive.ubuntu.com/ubuntu
正如你看到的那样,可以指定多个服务器,使用空白来分隔开。如果第一个服务器挂了,apt-proxy会试着从第二个服务器获取数据,如此类推。注意: 如果第一个服务器正常工作,但是没有需要的文件,apt-proxy并不会向後使用第二个服务器。你可以在[default]节复盖该设置志。如下实例,如果你知道某个服务器对请求的应答时间很长,那么你可以增加 timeout 的值:
[ubuntu-slow] timeout = 60 ;wait 1 Minute backends = prot://some.very.slow.server.net/ubuntu-slow
一个完整的 apt-proxy-v2.conf示例如下:
[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 = http://mirrors.ecology.uni-kiel.de/debian/debian-multimedia [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
备注 你不要指定这些文件的发布版本;Ubuntu,自己能够获取所有的版本信息(Hoary, Breezy, Dapper 等等)。哪些文件会被下载取决于每个客户端 sources.list 的配置。
初始化apt-proxy
更改完apt-proxy配置文件后,要重启apt-proxy来更新列表,可以运行如下命令:
$ sudo /etc/init.d/apt-proxy restart
你的apt-proxy现在就可以用了。
导入apt缓存
注意:在软件仓库中当前版本(1.933ubuntu1)的apt-proxy,本操作可能不能正确工作。这是一个已知bug。如果无意中尝试进行了本操作,那么也不会对系统产生副作用。已经用apt-get下载下来的软件包,已经被缓存在 /var/cache/apt/archives中。这些包可以用 apt-proxy-import 从当前包列表中导入到apt-proxy缓存中。应该在 apt-proxy-import 前先运行 aptitude update 来取得更新列表,如下:
$ sudo aptitude update $ sudo apt-proxy-import -r /var/cache/apt/archives
使用apt代理服务器更新客户端
apt客户端需要将 /etc/apt/sources.list 文件重新配置成指向apt-proxy服务器来代替原来的外部地址。配置 sources.list 文件与配置通常的apt仓库很相似,只要将 backend 节添加到路径中:
deb http://apt-proxy:port/backend dist component
将其中软件仓库的URL替换为你的服务器的引用及其后端,如下:
deb http://archive.ubuntu.com/ubuntu dapper main restricted deb http://security.ubuntu.com/ubuntu dapper-security main restricted universe
将变为
deb http://server:9999/ubuntu dapper main restricted deb http://server:9999/ubuntu-security dapper-security main restricted universe
与上面的 apt-proxy-v2.conf 相配合的 sources.list 如下:
# apt-proxy entries for standard modules deb http://localhost:9999/ubuntu dapper main restricted universe multiverse deb-src http://localhost:9999/ubuntu dapper main restricted universe multiverse # apt-proxy entries for security patches deb http://localhost:9999/ubuntu-security dapper-security main restricted universe multiverse deb-src http://localhost:9999/ubuntu-security dapper-security main restricted universe multiverse
故障解决
获取包的问题
使用Dapper Drake,以及其他Ubuntu的计算机在连接代理时接收软件仓库列表文件头时可能会发生问题。如果你的计算机在连接代理时碰上了这个问题,请编辑 /etc/apt/apt.conf,运行:
sudo nano /etc/apt/apt.conf
你也可以选择别的文本编辑器。找到
Acquire::http::Proxy "false";
更改为
Acquire::Proxy "false";
然后保存,退出。再次更新软件仓库文件列表,运行
sudo apt-get update
或者使用其他的方法更新软件仓库(如,在更新管理器中检查或在新立得软件包管理中更新)。现在应该可以正确载入了。
连接被拒绝
由于某些设置,代理不能用于外界的机器。代理可以很好在本地主机工作,但是用于外部的机器就会失败。