다음 rpms를 설치하려고 합니다(실제로는 이미 설치되어 있음).
rpm -qa | grep sshpass
sshpass-1.06-2.el7.x86_64
yum install sshpass-1.06-1.el7.x86_64.rpm
Loaded plugins: langpacks
Examining sshpass-1.06-1.el7.x86_64.rpm: sshpass-1.06-1.el7.x86_64
sshpass-1.06-1.el7.x86_64.rpm: does not update installed package.
Error: Nothing to do
echo $?
1
하지만 그것은 돌아온다exit code 1
yum이 설치된 rpm을 무시하고 오류를 반환하지 않는 이유는 무엇입니까?
다른 예
rpm -qa | grep figlet
figlet-2.2.5-9.el7.x86_64
yum install figlet-2.2.5-9.el7.x86_64.rpm
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
configuration
Examining figlet-2.2.5-9.el7.x86_64.rpm: figlet-2.2.5-9.el7.x86_64
figlet-2.2.5-9.el7.x86_64.rpm: does not update installed package.
Error: Nothing to do
echo $?
1
참고 - 우리도 시도합니다 yum clean all
.
그리고 삭제됨/var/cache/yum/*
하지만 도움이 되지 않았어
답변1
내 인상은 당신이 yum의 기본 동작에 대해 불평하고 있다는 것입니다.
yum은 패키지 설치/제거 또는 업그레이드를 위한 패키지 관리자 역할을 합니다.
존재하는 경우 Error: Nothing to do
패키지 설치/제거 또는 업그레이드 작업이 실제로 실패하므로 반환 코드 == 1입니다.
패키지가 설치되어 있는지 확인하려면 다음을 시도하십시오.
rpm -qa | grep wget || yum -y install wget
이것은 당신에게 $? == 0 표준 시나리오에서.
답변2
시스템에 이미 설치된 것과 이전 버전이거나 동일한 버전의 패키지를 설치하려고 합니다. yum
이는 실행하기 전에 확인되므로 이러한 패키지와 함께 사용하려고 하면 메시지가 표시됩니다. 그렇지 않으면 yum
업데이트 중에 어떻게 되나요? 업데이트가 나오고 리포지토리 중 하나에서 사용할 수 있는 경우 두 업데이트를 모두 최신 버전으로 업그레이드하고 시스템에 두 개의 동일한 패키지를 갖게 됩니까?
이전 버전의 소프트웨어가 필요한 yum
경우 rpm
.
답변3
패키지를 설치하는 중에 비슷한 문제가 발생했습니다. 문제는 동일한 버전의 패키지가 이미 존재한다는 것입니다.
나에게 도움이 된 솔루션: 패키지 이름이 package-abc라고 가정해 보겠습니다.
sudo yum remove package-abc -y
sudo yum install package-abc -y
이것이 당신에게도 도움이 되기를 바랍니다! 건배!