LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 北南南北

redhat/fedora 适用的 yum 仓库列表及帮助集中帖

[复制链接]
发表于 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
才设置好的。文档里没有说, 并且这种设置在以前是不行的, 不知道哪个版本才成了这样
回复 支持 反对

使用道具 举报

发表于 2005-4-25 12:34:47 | 显示全部楼层
话说回来, yum 这个工具在网络条件好的时候还真好用, 唯一的缺点就是输出太多, 婆婆妈妈的
yum provides xxxx 可以用来查询一个文件包含在什么软件包里面, 比起 apt 的 apt-cache search 要准确一点, 但是需要下载一个 3M 左右的 filelists.xml.gz, 有时候会很不值得, 因为这个文件会更新得很快。不知道他们将来会不会用 rsync 协议来同步这些元数据文件?
回复 支持 反对

使用道具 举报

发表于 2005-4-25 12:46:13 | 显示全部楼层
发现 yum.conf 里面默认 debuglevel=2 也就是说会将每一步在做什么都列出来, 包括进行了几轮 dependency check transactions 之类的
debuglevel=1 的时候, 只会给出一个列表, 显示哪些软件包可以升级到哪个版本, 属于哪个仓库, 大小是多少, 总共要下载多少东西。但是假如能显示出系统中已有的是哪个版本就更好了... 可惜屏幕太小
debuglevel=0 的时候只会提示 Is this ok [y/N]:

总之不喜欢。 apt 的输出虽然有时会很乱, 但是给出的信息更多。也许 yum 的设定适合于有明确的目标的人, 他们先看到有哪些版本可以升级, 然后才去做, 并且相信一定需要这样做... 却不适合于我这样的玩家

debuglevel 最高应该是 6 吧, 虽然帮助中说是 10, 既然它要婆婆妈妈, 那就让它说得更多吧... ^_^
回复 支持 反对

使用道具 举报

发表于 2005-4-25 13:07:55 | 显示全部楼层
感觉fc4的yum有了新的变化,现有版本和将要升级的版本列成了表格的式样,简单清晰。

不过用起来一样,都是 yum -y update
回复 支持 反对

使用道具 举报

发表于 2005-4-25 13:26:38 | 显示全部楼层
下载 openoffice.org-core 的时候断线, 六十多M 的文件下了一半,然后重新运行 yum 时候它的提示是从 0 开始的, 但是看 /var/cache/yum/development/packages 目录, 文件已经三十多 M 了, 这段时间它究竟是在用 rsync 同步呢, 还是简单的断点续传呢?
回复 支持 反对

使用道具 举报

发表于 2005-5-3 18:08:46 | 显示全部楼层

大家Fedora是怎么升级的啊 是用apt yum 还是直接用update啊

大家Fedora是怎么升级的啊  是用apt yum 还是直接用update啊
我一直用的是rhel 就是redhat的企业版 用apt升级的
可是我发现 rhel更新好慢啊 Fedora更新比较快
等Fedora4 出了我要重装一下系统 装 Fedora4
我发现Fedora有好多景象站点可用
例如这个
http://mirror.linux.duke.edu/pub ... ore/updates/3/i386/

我该怎么用这个软件仓库啊
要是写到
apt 的source.list 改怎么写啊
或者要用yum  up2date 该怎么做啊
回复 支持 反对

使用道具 举报

发表于 2005-5-3 18:16:16 | 显示全部楼层
yum 简单一点,不过要最新的 yum-2.3.2 才好用
回复 支持 反对

使用道具 举报

发表于 2005-5-3 19:02:16 | 显示全部楼层
http://mirror.linux.duke.edu/pub/fe...updates/3/i386/
像这个软件仓库我该怎么学yum的配置文件呢
回复 支持 反对

使用道具 举报

发表于 2005-5-3 19:32:54 | 显示全部楼层
首先,建立一个仓库的描述。这个仓库提供的是 fc3 的自带的软件的升级包,那么可以用 fc3-updates 作为仓库的名称。可以把这个描述文件保存为 /etc/yum.repos.d/01fc3-updates.repo 或者类似的名字,只要放在 /etc/yum.repos.d/ 目录,后缀名是 .repo 就可以了。文件内容是
[fc3-updates]
name=fedora core 3 updates repository
mirrorlist=file:///etc/yum.repos.d/fc3-updates-mirrorlist

其中的第一行很重要, 它是 yum 区分各个仓库的依据。第二行就可以随意设定了。第三行定义的是一个镜像列表文件。镜像列表文件的唯一要求就是不能使用 .repo 后缀名。

接下来,由于在上面的描述文件中,我们指定了镜像站的列表文件是 /etc/yum.repos.d/fc3-updates-mirrorlist 那么就得把已知的这个仓库的镜像地址放在这个文件里。就像你的例子,文件内容就是这样单独的一行
http://mirror.linux.duke.edu/pub/fedora/linux/core/updates/3/i386/

暂时不用的镜像仓库,可以在那一行的最前面加上一个 sharp `#' 来把这个仓库注释掉。

因为 http://mirror.linux.duke.edu/pub ... ore/updates/3/i386/ 这个地址有一个 repodata 子目录,还有一个 headers 子目录,看到这两个子目录,就可以知道能用 yum 了,就可以写上面那样的两个配置文件。如果遇到其他地址,也是一样的,首先看看它是什么仓库,是不是系统中已经定义了这个仓库,如果是的话,只要将地址加到镜像列表文件里面,如果没有定义,那么就像上面一样做。
回复 支持 反对

使用道具 举报

发表于 2005-5-5 21:18:15 | 显示全部楼层
[root@localhost etc]# yum upgrade
Existing lock /var/run/yum.pid. Aborting.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表