|
发表于 2005-4-25 12:25:59
|
显示全部楼层
晕死啊晕死, 今天才知道了 geekbone.org 镜像有 fedora 的 development 仓库, 然后才体会到了 yum 的难用。我用的是 fedora 的 yum-2.3.2 版本,在教育网内, 需要代理。但是文档里面可没有说代理是怎么设置的...... 好不容易才发现与 apt 一样, 可以使用外部的 http_proxy 和 ftp_proxy 参数。再经过一番周折, 才发现我们的代理不支持 HTTP/1.1
现在的配置步骤
1. 在 /root/.bashrc 设置代理, 是与 wget, apt, lftp 等等程序通用的
export http_proxy=http://cs:cs2004@202.119.32.27:8080
export ftp_proxy=http://cs:cs2004@202.119.32.27:8080
2. 在 /etc/yum.repos.d/ 建立两个文件, 一个是仓库的描述, 一个是仓库的镜像列表。 当然也可以合成一个。仓库描述文件的后缀名必须是 .repo, 内容必须符合 yum.conf(5) 的说明。镜像列表就没什么要求了, 文件名要和描述文件中指定的相一致。
[root@geeks ~]# cat /etc/yum.repos.d/00development.repo
[development]
name=Fedora development $basearch repository (Rawhide)
mirrorlist=file:///etc/yum.repos.d/00development.mirrors
gpgcheck=0
keepalive=0
仓库的镜像列表文件的内容只是每行一个地址, 比起 apt 要简单得多
3. 具体的说明。如果不想使用某个镜像, 只要用 # 放在那一行的开头, 将它注释掉就可以了。如果不想用某个仓库, 只要把后缀名改掉, 去掉 .repo 后缀就可以了。规则都很简单。在我的仓库描述文件中, 定义了 development 仓库, 全名是 name= 指定的那一行, 接下来是 mirrorlist= 指定了镜像列表的位置。 如果这个位置指向一个远程服务器上的文件, 那么就会先获取列表, 然后再更新文件。 读取镜像列表时是随机选择的。这也是 up2date 的做法, 有时这样选择的服务器会非常慢, 那么只要终止 up2date 然后重新运行, 就可能随机随到一个快点的地址。下面的 gpgcheck=0 是处理软件包没有签名的情况, 在很信任这个仓库的时候, 并且临时找不到 RPM-GPG-KEY-* 的话, 就这样设置。再下面的 keep-alive=0 是处理我们的代理服务器。不过不支持 HTTP/1.1 的时候速度会有点慢。
总之到最后也没弄明白怎么在配置文件里指定代理, 而不是使用环境变量中的设置。配置文件中的设置似乎是这样proxy=http://cs:cs2004@202.119.32.27 8080 , 并且优先级要比环境变量要高, 但是总是提示[root@geeks yum.repos.d]# yum -d 3 update
Yum Version: 2.3.2
COMMAND: yum -d 3 update
Installroot: /
Setting up Update Process
Setting up repositories
Baseurl(s) for repo: ['http://mirrors.geekbone.org/fedora/core/development/i386/']
http://mirrors.geekbone.org/fedo ... epodata/repomd.xml: [Errno 4] IOError: HTTP Error 404: Not Found
Trying other mirror.
Cannot open/read repomd.xml file for repository: development
failure: repodata/repomd.xml from development: [Errno 256] No more mirrors to try. 不知道这个 HTTP Error 404 是不是从代理服务器上传过来的? 如果使用proxy=http://202.119.32.27:8080
proxy_username=cs
proxy_password=cs2004 那么输出就是[root@geeks yum.repos.d]# yum -d 3 update
Yum Version: 2.3.2
COMMAND: yum -d 3 update
Installroot: /
Setting up Update Process
Setting up repositories
Baseurl(s) for repo: ['http://mirrors.geekbone.org/fedora/core/development/i386/']
http://mirrors.geekbone.org/fedo ... epodata/repomd.xml: [Errno 7] HTTP Error (InvalidURL): nonnumeric port: '8080?'
Trying other mirror.
Cannot open/read repomd.xml file for repository: development
failure: repodata/repomd.xml from development: [Errno 256] No more mirrors to try.
这点和文档中相差很大。最后的试验是用传统的方式,proxy=http://cs:cs2004@202.119.32.27:8080 才设置好的。文档里没有说, 并且这种设置在以前是不行的, 不知道哪个版本才成了这样 |
|