寻找一种在CentOS中自动启用yum存储库的方法。默认情况下,配置文件如下所示:
[remi]
name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority
[remi-test]
name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
注意enabled=0
块中的[remi]
。这就是需要翻开的东西。问题是我不能只搜索enable=0
,因为remi-test
块也有,但我不想启用测试仓库。
感谢。
答案 0 :(得分:5)
试试这个:
sed -i '/\[remi\]/,/^ *\[/ s/enabled=0/enabled=1/' your_repo_file
其中:/[remi]/,/^ *[/
告诉sed
仅查找从[remi]
到下一个repo
条目的文本块,该条目以[
开头。
答案 1 :(得分:2)
yum-config-manager [--enable|--disable] rhel-6-server-rpms
在RHEL中有效,你应该可以在CentOS中做同样的事情。从以下地址获取回购邮件名称:
yum repolist [all|enabled|disabled]
该命令将显示启用/未启用的功能,但在系统上的/etc/yum.repos.d/.repo文件中配置。
yum-config-manager是RHEL6上的yum-utils软件包的一部分,可能是EL发行版。
答案 2 :(得分:1)
sed(1)
无法编辑文件,它会将编辑内容发送到其输出。要进行就地编辑,您需要提供-i
(或--in-place
)标记。此外,您正在做的是编辑包含[remi].*enabled
的行,您刚刚找不到。您希望将替换限制为从[remi]
开始的部分,该部分以下一个[
结尾:
sed -i -e '/\[remi\]/,/^\[/s/enabled=0/enabled=1/' /etc/yum.repos.d/remi.repo
答案 3 :(得分:0)
sed -i '0,/enabled=0/s//enabled=1/' /etc/yum.repos.d/remi.repo
答案 4 :(得分:0)
awk 'BEGIN{prev=1;}{if($0~/remi-test/)prev=0;else if($0~/\[remi\]/)prev=1;if(prev &&$0~/enabled/)print "enabled=1";else print}' your_file
测试如下:
> cat temp
[remi]
name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority
[remi-test]
name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
[remi-test]
name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
> awk 'BEGIN{prev=1;}{if($0~/remi-test/)prev=0;else if($0~/\[remi\]/)prev=1;if(prev &&$0~/enabled/)print "enabled=1";else print}' temp
[remi]
name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority
[remi-test]
name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
[remi-test]
name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
>