저는 Oracle Linux/RHEL을 실행 중이며 이름/스키마가 활성 저장소에 없는 설치된 패키지 목록을 가져오려고 합니다. 이 패키지들은 실행 yum list installed
되면 빨간색으로 표시되는데 , 이 패키지들만 나열하는 yum 명령이 있나요?
답변1
이것은엄격하게OL7의 경우:
sudo yum list installed | egrep -v "@ol7|@anaconda"
다음을 통해 모든 저장소를 볼 수 있습니다.
sudo yum list installed | grep -v "Loaded plugins" | awk '{print $3}' | sort -u
답변2
나는 당신의 "질문"에 쉽게 대답할 수 있을지 모르겠습니다.긍정적인저장소"를 사용하지만 다음을 통해 저장소를 통해 설치되지 않은 모든 패키지를 찾을 수 있습니다.
awk 'NR <=3 { next; } { while (NF < 3)
{ getline more; $0=$0 more; } }
$3 !~ /^@/ { print }' \
<( yum list installed )
현재 포함되지 않은 패키지에 관심이 있으시면활성화됨저장소가 활성화되어 있거나 시스템에서 더 이상 인식되지 않는 저장소에 의해 설치되었을 수 있는 경우 다음을 수행할 수 있습니다.
awk 'FNR==NR && FNR > 1 { sub(/^!/,"",$1); repos["@" $1]=1; next; }
FNR <=3 { next; } { while (NF < 3) { getline more; $0=$0 more; } }
!($3 in repos) { print }' \
<( yum repolist enabled ; echo anaconda ) \
<( yum list installed )
awk를 처음 접하는 사람들을 위해 이것은 FNR==NR
첫 번째 입력 파일/스트림을 나머지 입력에서 분리하는 관용구입니다. 이 부분에서는 다음과 같은 주의 사항에 따라 저장소 이름을 해시로 로드합니다.
!
로 시작하는 저장소 이름을 포함하고!
로 시작하는 저장소 이름을 제외합니다.- 설치된 목록의 최종 필드와 비교할 때
@
더 빠른 조회를 위해 이름 앞에 추가됩니다 .
이제 복잡해 보이는 중간 프로그램은 yum이 자동으로 분할되는 줄을 다시 조립합니다. 입력 행에 열/필드가 3개 미만이면 다음 행이 추가됩니다.
마지막 프로그램은 세 번째 필드가 @로 시작하는지 테스트하거나 해당 필드가 저장소 목록에 있는지 테스트합니다.
참고: yum repolist enabled ; echo anaconda
os-install 중에 설치된 패키지도 제외되도록 repolist에 "anaconda"를 추가하십시오.