查看“AptProxyHowTo”的源代码
来自Ubuntu中文
←
AptProxyHowTo
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== 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
返回
AptProxyHowTo
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息