我在这里的第一篇文章,但我搜索了一下,找不到一个简单的方法来做到这一点。
我有一个程序可以在新的CentOS Linux服务器联机时自动配置它们。作为该过程的一部分,它安装了最新版本的epel-release rpm。
我使用的命令如下所示:
$ rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm && \
yum clean all
这很有效......直到他们将rpm文件更改为epel-release-6-8.noarch,然后是epel-release-6-9.noarch,依此类推。他们似乎每3-4个月更新一次版本。这是一个问题,因为如果存储库更新了epel-release版本号,我的脚本将会失败,因为它不知道该版本应该是什么。
我找不到可能重定向到最新的epel rpm文件的链接,所以我别无选择,只能将版本硬编码到我的安装脚本中,并在失败时更改它。
任何人都知道在不知道版本号的情况下下载最新的epel rpm的简单(非硬编码)方式?我希望有一种方式不会涉及到repo文件列表中的卷曲和grep'ing url,但好奇有人可能会建议什么?
答案 0 :(得分:21)
以下脚本可以解决这个问题:
cat <<EOM >/etc/yum.repos.d/epel-bootstrap.repo
[epel]
name=Bootstrap EPEL
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-\$releasever&arch=\$basearch
failovermethod=priority
enabled=0
gpgcheck=0
EOM
yum --enablerepo=epel -y install epel-release
rm -f /etc/yum.repos.d/epel-bootstrap.repo
它应该适用于RHEL / CentOS 5和6.我没有测试版本4.
答案 1 :(得分:4)
EPEL project最近已实施&#34;最新&#34; epel-release软件包的符号链接。
https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm
https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
答案 2 :(得分:0)
从shell中做到:
$ EPEL_BASEURL=http://dl.fedoraproject.org/pub/epel/$(awk '/rhel/ {print $2}' /etc/rpm/macros.dist)/$(uname -p)/
$ rpm -ivh $EPEL_BASEURL$(curl -s $EPEL_BASEURL | grep epel-release | awk -F'<|>' '{print $5}')
Retrieving http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
warning: /var/tmp/rpm-tmp.zRXE1U: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]
我已在CentOS 6.4,6.5和6.6以及RHEL 6.5和6.6上对此进行了测试,但/etc/rpm/macros.dist的内容和来自http://dl.fedoraproject.org的HTML代码应该在所有内容上保持一致平台,所以这应该适用于所有平台。
为了后人的缘故,这里有更详细的内容:
$ EPEL_BASEURL=http://dl.fedoraproject.org/pub/epel/$(awk '/rhel/ {print $2}' /etc/rpm/macros.dist)/$(uname -p)/
# http://dl.fedoraproject.org/pub/epel/6/x86_64/
$ EPEL_RELEASE_RPM=$(curl -s $EPEL_BASEURL | grep epel-release | awk -F'<|>' '{print $5}')
# epel-release-6-8.noarch.rpm
$ EPEL_RELEASE_RPMURL=$EPEL_BASEURL$EPEL_RELEASE_RPM
# http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ rpm -ivh $EPEL_RELEASE_RPMURL
Retrieving http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
warning: /var/tmp/rpm-tmp.ep6xy3: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing... ########################################### [100%]
1:epel-release ########################################### [100%]