个人工具

“UbuntuHelp:AptProxy/zh”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
相关链接
 
(未显示3个用户的12个中间版本)
第1行: 第1行:
{{Translation}}<br>{{From|http://wiki.ubuntu.org.cn/UbuntuHelp:AptProxy}}<br>{{Translator|李威}}<br>{{Languages|UbuntuHelp:AptProxy}}&nbsp;
+
{{From|http://wiki.ubuntu.org.cn/UbuntuHelp:AptProxy}}
 
+
{{Translator|李威}}
=== 简述&nbsp; ===
+
{{Languages|UbuntuHelp:AptProxy}}
 +
=== 简述===
  
 
apt-proxy程序将你从网络上下载下来的软件包缓存到本地磁盘。apt-proxy的行为就像一台包含那些你所选择软件包全部拷贝的HTTP服务器。你可以从本地网络上的其他计算机上存取这些软件包。如果软件包还没有被缓存,apt-poxy会自动下载并缓存上。这对那些需要重复安装同样软件包的人来说(如,为多台机子升级),非常有效的节约了下载带宽和安装的时间。
 
apt-proxy程序将你从网络上下载下来的软件包缓存到本地磁盘。apt-proxy的行为就像一台包含那些你所选择软件包全部拷贝的HTTP服务器。你可以从本地网络上的其他计算机上存取这些软件包。如果软件包还没有被缓存,apt-poxy会自动下载并缓存上。这对那些需要重复安装同样软件包的人来说(如,为多台机子升级),非常有效的节约了下载带宽和安装的时间。
  
=== 安装&nbsp; ===
+
=== 安装 ===
  
 
apt-proxy 已经包含在通用档案文件中。要安装,在终端中运行命令:
 
apt-proxy 已经包含在通用档案文件中。要安装,在终端中运行命令:
第108行: 第109行:
 
更改完apt-proxy配置文件后,要重启apt-proxy来更新列表,可以运行如下命令:<br>
 
更改完apt-proxy配置文件后,要重启apt-proxy来更新列表,可以运行如下命令:<br>
 
<pre>$ sudo /etc/init.d/apt-proxy restart
 
<pre>$ sudo /etc/init.d/apt-proxy restart
</pre>
+
</pre>  
 
你的apt-proxy现在就可以用了。
 
你的apt-proxy现在就可以用了。
  
 
=== 导入apt缓存 ===
 
=== 导入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
=== <br>故障解决 ===
+
deb-src http://localhost:9999/ubuntu-security dapper-security main restricted universe multiverse</pre>
 +
=== 故障解决 ===
  
 
==== 获取包的问题 ====
 
==== 获取包的问题 ====
  
 
+
使用Dapper Drake,以及其他Ubuntu的计算机在连接代理时接收软件仓库列表文件头时可能会发生问题。如果你的计算机在连接代理时碰上了这个问题,请编辑&nbsp;''/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的最新版本

简述

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

或者使用其他的方法更新软件仓库(如,在更新管理器中检查或在新立得软件包管理中更新)。现在应该可以正确载入了。

连接被拒绝

由于某些设置,代理不能用于外界的机器。代理可以很好在本地主机工作,但是用于外部的机器就会失败。

相关链接