"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
스크립트에 넣어주시면 됩니다.