데비안에서 사용 가능한 (즉, 제거 된) 패키지 목록을 어떻게 얻습니까?


19

본질적으로 내가 찾고있는 것은 데비안에 해당합니다.

yum list available

사용 가능한 패키지를 보여줍니다 (현재 설치되어 있지는 않지만). 원격 서버에 있기 때문에 콘솔에서 실행할 수있는 것을 선호합니다. 감사.

답변:


7

grep-dctrl그리고 그 파생어는 적절한 캐시 파일을 쿼리하는 좋은 방법을 제공합니다. (sudo apt-get install dctrl-tools 사용하여이 도구를 우분투에 설치할 수 있습니다)

사용 가능한 (그러나 반드시 설치 될 필요는없는) 패키지의 경우을 사용할 수 있습니다 grep-available. 예를 들어, 사용 가능한 모든 패키지를 나열하려면 다음을 수행하십시오.

grep-available  -s Package .

편집하다:

aptitude 설치되지 않은 패키지 목록을 시작하여 표시 할 수 있습니다.

다음 aptitude을 사용하여 설치되지 않은 패키지 목록을 얻을 수도 있습니다 .

aptitude -F "%p" search "?not(?installed)"

새로운 다중 아키텍처 패키지를 사용하면이 결과에 나열된 다른 아키텍처에 대한 패키지가 제공됩니다. 예를 들어, 나는 얻는다 :

aptitude -F "%p" search "?not(?installed)"  | grep "^bash:"
bash:i386

나는이 bash패키지가 설치,하지만 내 OS가 정확한 우분투의 AMD64 버전 설치 이후는 AMD64 버전입니다. 다른 아키텍처에서 이러한 패키지를 보지 않으려면 다음을 포함하는 행을 제외 할 수 있습니다 :.

aptitude -F "%p" search "?not(?installed)"  | grep -v ':'

고맙지 만이 문제는 선택한 리포지토리의 전체 패키지 목록을 탐색해야한다는 것입니다. 아마도 문제를 시각화하는 더 좋은 방법은 아마도 X가 서버가 가리키는 데비안 패키지 저장소의 모든 패키지의 보편적 세트이고 Y가 상기 서버에 설치된 패키지 세트라고 상상해보십시오. 본질적으로, 내가 찾는 것은 X-Y입니다. 이제는 프로그래밍 방식 으로이 작업을 수행 할 수 있다는 것을 알고 있지만 데비안 시스템에서 동일한 결과를 얻는 비교적 간단한 명령이 있기를 바랍니다.
freakwincy

수정 된 답변을 보았습니다. 정확히 내가 찾던 것입니다! 감사.
freakwincy

추신 : 나는 당신의 대답을 상향 투표했지만 아직 충분한 평판 포인트를 축적하지 못했습니다.
freakwincy

문제 없어요.
그건

16

apt-cache 패키지 캐시를 쿼리하는 데 사용됩니다.

apt-cache pkgnames | 종류
쉽다 - 캐시 검색 
apt-cache search-이름 만있는 

고맙지 만 작동하지 않을까 걱정됩니다. code"dpkg --get-selections | grep '[[: space :]] install $'| awk '{print $ 1}' 첫 번째 명령으로 생성 된 목록과 이전에 생성 된 설치된 패키지 목록을 비교했습니다. > installed.txt "에서 중복 된 것을 발견했습니다. 나는 특정 패키지가 아니라 검색 아니에요 때문에 당신이 제공하는 다른 두 명령이 작동하지 않습니다 어떤 현재 설치되지 않은 패키지.
freakwincy

2

apt-cache이 용도로 사용하십시오 .

apt-cache search package

이후 apt-cache에만 시스템에 패키지 캐시를 사용,이 캐시가 최신 버전인지 확인하십시오

apt-get update

apt-file검색하려는 파일 이름을 알고 있으면 유틸리티를 사용할 수도 있습니다 . 그러나 이것은 시스템에 추가되어야합니다. 예를 들면 다음과 같습니다.

apt-file search somefilename

나는 apt-cache다음 방법 중 하나 를 사용하는 경향이 있습니다 .

apt-cache search package | sort | grep item

(이것은 실제로 요약이나 이름으로 된 항목을 보여줍니다 .)

apt-cache search thing | sort | less

(이것은 물건을 찾은 다음으로 즐겁게 볼 수 있도록 정렬합니다 less.)


2

내 관점은 기본적으로 설치된 명령으로 작업하고 특별한 이유가 없으면 추가 패키지를 피하는 것입니다.

GNU bash를 사용하는 데비안에서 이러한 간단한 명령

apt list
apt list --all-versions

설치 및 설치되지 않은 항목의 목록을 제공합니다. 그런 다음 grep "installed"또는 grep -v "installed"로 결과를 제한 할 수 있습니다. 또한 하나 이상의 패키지 이름과 결합 할 수도 있습니다 (와일드 마크 허용).

스위치 "-all-versions"는 각 패키지 버전 (안정, 테스트, 불안정, 실험)에 대해 별도의 출력을 출력으로 제공합니다.

간단한 "apt list"는 오직 하나 (가장 높은 우선 순위) 버전을 제공합니다.


0

질문을 엄격히 받아들이고 (설치되지 않은 패키지 목록을 표시하려는 경우)

(아래 의견에 따라 편집)

# apt-get update
# dpkg -l '*' | egrep --invert-match '^i'

그래도 정확한 구문을 확신하지 못합니다 .Windows 상자에 이것을 작성하고 확인할 방법이 없기 때문입니다. 어쩌면 당신이 grep을 변경하려고


이 목록 설치 패키지는 없습니다 제거 .
ℝaphink

@Raphink : 죄송합니다,이 문제를 해결하기 위해 게시물을 편집했습니다
PPC

문제는 없지만 아직 설치되지 않은 패키지는 나열하지 않습니다. 'II'패키지를 제외하면 (정말 표현이 무엇을 실제로하지 않은, 당신이 사용해야 '^ii'보다는 '[ii]')가 설치되어 있지만 (예를 들어 같은 구성되지 않은 패키지에이 누락 iF또는 iH예를 들어).
ℝaphink

@PPC : 아아, 이것은 dpkg -l이 설치된 패키지 만 나열하므로 작동하지 않습니다. 즉, 모든 패키지 앞에 "ii"가 붙어 있으므로 --invert-match 또는 -v 플래그를 사용하여 grep으로 결과를 파이프하면 a 목록 헤더 구분자 인 일련의 대시. 어쨌든 고마워
freakwincy

@ freakwincy : 맞아! 보내기 전에 테스트하지 않아서 죄송합니다 (Windows에서 작업). 맨 페이지에 따르면 "dpkg -l '*'"를 사용하여 모든 패키지를 나열해야합니다.
PPC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.