이 문제주어진 데비안 패키지가 이미 설치되어 있지만 apt-get
.
예를 들어, 시도하면 apt-get install libncurses-dev
apt-get은 다음과 같이 응답합니다.
Note, selecting 'libncurses5-dev' instead of 'libncurses-dev'
그런 다음 패키지( libncurses5-dev
)를 설치하는데 이는 나에게 적합합니다.
하지만 패키지가 이미 설치되어 있는지 감지하는 스크립트를 작성하려면 어떻게 해야 할까요?
dpkg -s libncurses-dev
응답은 패키지가 설치되지 않았다고 말하는데, 이는 실제로 libncurses5-dev
설치되어 있기 때문에 정확합니다. 하지만 내 스크립트가 이를 감지하기를 원하며, 이 경우 더 이상 설치할 필요가 없습니다 libncurses-dev
.
apt-get
특정 패키지가 존재하는지 확인하는 옵션을 찾을 수 없습니다.또는 그 제공자 중 하나libncurses-dev
이미 설치되었으므로 내 스크립트 도 체크인됩니다 libncurses5-dev
.
답변1
libncurses-dev
패키지나 별칭이 설치되어 있는지 확인하는 스크립트를 작성하려면 다음 프로그램 흐름을 고려하세요.
- 이 경우
dpkg
해당 패키지가 정확한 이름으로 설치되었는지 확인하세요.libncurses-dev
위의 내용이 true로 평가되지 않으면
apt
별칭이 아닌 이름을 사용하여 찾고 있는 패키지를 검색하세요.$ apt-cache search libncurses-dev libncurses5-dev - developer's libraries for ncurses
apt-cache search
패키지에 "별칭"이 있으면 "별칭"을 반환하는 것 같습니다.
- #1이 false로 평가되고 #2가 별칭을 반환하는 경우 패키지의 별칭을 가져오고 #1을 다시 시도하세요.
패키지의 별칭을 다시 확인하십시오 . dpkg
이 경우 별칭으로 패키지를 찾을 수 없으면(실제로 대체된 패키지) 설치하면 안 됩니다.libncurses5-dev
dpkg
답변2
이건 직업인 것 같아자격검색.
$ aptitude -F %p search '~Plibncurses-dev'
libncurses5-dev
libncurses5-dev:i386
$ aptitude -F %p search '~Plibncurses-dev ~rnative'
libncurses5-dev
$ aptitude -F %p search '~Plibncurses-dev ~rnative ~i'
libncurses5-dev
libncurses5-dev
설치되지 않은 경우 마지막 항목은 아무 것도 인쇄하지 않습니다.