저는 로컬 yum 저장소 세트를 사용하고 있으며 이러한 저장소에서 패키지 세트를 설치하려고 합니다. 명령줄에 특정 패키지가 존재하지 않을 때 Yum은 해당 패키지를 찾을 수 없다고 인쇄하고 계속 진행되는 것을 확인했습니다.
이런 일이 발생하면 Yum에게 그만두라고 말할 수 있나요? 내 리포지토리와 패키지를 제공하고 문제가 있는지 알려주는 데 사용할 수 있는 다른 Yum 유틸리티가 있습니까?
yum --disablerepo=* --enablerepo=myrepo --nogpgcheck \
--installroot=/var/some/place/test install \
abasdfasfeafseasfeasef bash coreutils utils-linux
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
No package **abasdfasfeafseasfeasef** available.
No package **utils-linux** available.
<snip>
Complete!
다른 스크립트에서 Yum을 호출하고 있는데 내가 설치한 패키지가 다음과 같은지 알 수 없는 것 같습니다.진짜설치하다.
답변1
yum의 최신 버전(yum-3.4.3-133.el7+,티켓)는 이 사용 사례에 도움이 되는 두 가지 옵션을 제공합니다.
설치 시 누락된 이름 건너뛰기False로 설정하면 제공된 이름(패키지, 그룹, rpm 파일) 중 하나라도 발견되지 않으면 "yum install"이 실패합니다. 부울(1, 0, 참, 거짓, 예, 아니요). 기본값은 True입니다.
업데이트 시 누락된 이름 건너뛰기False로 설정하면 제공된 이름(패키지, 그룹, rpm 파일) 중 하나라도 발견되지 않으면 "yum update"가 실패합니다. 제공된 이름이 사용 가능하지만 설치되지 않은 패키지에 대한 이름인 경우에도 실패합니다. 부울(1, 0, 참, 거짓, 예, 아니요). 기본값은 True입니다.
원천:매뉴얼 페이지
용법:
yum --setopt=skip_missing_names_on_install=False <commands-here>
답변2
yum 대신 dnf를 사용해 보세요. 예전처럼 패키지를 사용할 수 없으면 실패합니다. CentOS에서는 다음을 통해 설치할 수 있습니다.
yum -y install epel-release && \
yum -y install dnf
그런 다음 누락된 패키지에서 오류가 발생합니다.
dnf -y install foobar
Error: no package matched: foobar
답변3
yum에 대해서는 모르지만 rpm -q my_package ...
. 패키지가 누락된 경우 오류 상태로 종료됩니다.
$ rpm -q abasdfasfeafseasfeasef bash coreutils utils-linux
package abasdfasfeafseasfeasef is not installed
bash-4.1.2-9.el6_2.x86_64
coreutils-8.4-19.el6.x86_64
package utils-linux is not installed
$ echo $?
1
$ rpm -q bash
bash-4.1.2-9.el6_2.x86_64
$ echo $?
0