如何检查“enabled=1”存储库在“/etc/yum.repos.d/”目录中是否有“gpgcheck=1”(以及“gpgkey=”文件是否存在?)?
问:我正在寻找一个解决方案来执行此操作(oneliner?),我的意思是列出所有“enabled=1”存储库和“gpgcheck”状态,以及“gpgkey=XXX”文件是否存在?- 问题是一个 .repo 文件可能包含多个存储库!
ps:据我所知,“gpgkey=XXX” -> XXX 只能是本地文件,而不是通过 http 的 url...但如果我错了,请修复我..
答案1
想不出任何简单的方法来做到这一点。将以下内容组合在一起,尽管不是特别优雅。
sed '/^\[.*\]/s,\[,\n<<[,' /etc/yum.repos.d/*.repo |
awk '
BEGIN {
RS = "\n<<"
}
/\nenabled=1/ && !/\ngpgcheck=1/ {
print $1"~gpgcheck disabled for enabled repo"
}
/\nenabled=1/ && /\ngpgcheck=1/ && !/\ngpgkey=/ {
print $1"~gpgcheck enabled for enabled repo, but missing gpgkey setting"
}
/\nenabled=1/ && /\ngpgcheck=1/ && /\ngpgkey=/ {
print $1"~gpgcheck enabled for enabled repo, see output below for gpgkey file status"
}
' | column -ts~
printf "\nChecking gpg keys for enabled repos\n"
sed '/^\[.*\]/s,\[,\n<<[,' /etc/yum.repos.d/*.repo |
awk '
BEGIN {
RS = "\n<<"
}
/\nenabled=1/ && /\ngpgcheck=1/ && /\ngpgkey=/
' |
awk -F: /^gpgkey=/{print\$2} |
xargs ls -l
将其放入脚本中即可。