apt-get 패키지에 어떤 프로그램이 포함되어 있는지 어떻게 알 수 있습니까?


17

예를 들어 설치할 때 특정 패키지 가 무엇을 설치 하는지 알고 싶습니다 . 키가 확장 ncurses되는 것을 발견했습니다 TAB.

sudo apt-get install ncurses-

보여주기 위해 :

ncurses-base      ncurses-doc       ncurses-hexedit
ncurses-bin       ncurses-examples  ncurses-term

ncurses-term설치 내용을 어떻게 알 수 있습니까? 나는 주로 프로그램에 관심이 있지만 라이브러리 및 다른 파일 형식도 유용 할 수 있습니다.

가능하면 명령 줄 방법이 선호됩니다 ( 다른 방법도 허용됨).


"프로그램"이라고 말할 때 바이너리에 대해 이야기하고 있습니까?
Braiam

바이너리와 스크립트는 가능하면 @Braiam에게 감사드립니다.
Sopalajo de Arrierez

답변:


20

다음은 몇 가지 옵션이며 패키지로 설치된 모든 파일 을 나열 합니다.

A. 패키지에 포함 된 모든 파일 나열

  1. 설치된 패키지

    dpkg -L ncurses-term
    
  2. 설치 여부에 관계없이 모든 패키지

    apt-file -F list ncurses-term
    

    -F패턴 매칭의 회전이 때문에 그의 유일한 패키지 의 정확한 이름 일치가 반환됩니다. 당신은 설치해야 할 수 있습니다 apt-file으로 sudo apt-get install apt-file다음으로 데이터베이스를 업데이트합니다 sudo apt-file update.

B. 패키지에 포함 된 실행 파일 만 나열

  1. 설치된 패키지

    설치 dlocate( sudo apt-get dlocate)하고 다음을 실행하십시오.

    dlocate -lsbin ncurses-term 
    

    에 설명 된대로 man dlocate:

    -lsbin 패키지에 실행 파일 (있는 경우)의 전체 경로 / 파일 이름을 나열합니다.

    추가 패키지를 설치하지 않으려면 수동으로 수행하십시오. 파일 목록을 수집하고 실행 비트가 설정된 파일을 찾으십시오.

    apt-file -F list ncurses-term | cut -d ' ' -f 2 | 
        while read file; do [[ -x $file && -f $file ]] && echo "$file"; done
    

    위의 작은 스크립틀릿은 경로 만 인쇄하고 ( cut -d ' ' -f 2) while파일이 실행 -x $file가능한지 ( ) 확인하고 일반 파일 인 경우 디렉토리 나 심볼릭 링크가 없는지 ( ) 확인 하는 루프를 통해 경로 를 전달하고 -f $file두 테스트를 모두 통과 한 경우에만 이름을 인쇄합니다 .

  2. 설치 여부에 관계없이 모든 패키지

    제거 된 패키지에 포함 된 실행 파일 만 나열하는 방법은 없습니다. 그러나 대부분의 실행 파일은 bin디렉토리 에 설치 되므로 출력을 구문 분석하여 대부분의 실행 파일 을 얻을 수 있습니다.

     apt-file -F list ncurses-term | grep -Ew "bin|sbin"
    

    -w옵션은 전체 단어와 일치하므로 예를 들어 trashbin어떤 것도 설치되지 않습니다 .


참고 : 위 명령 중 어느 것도 출력하지 ncurses-term않지만이 패키지는 실행 파일을 설치하지 않기 때문입니다. 그럼에도 불구하고 명령은 다른 패키지로 시도하십시오.


안녕하세요, 설치되지 않은 응용 프로그램에서 명령이 작동해야합니까? 내가 시도하면 단순히 설치를 제공합니다. .install 파일이 응용 프로그램과 함께 (아마도) 다운로드 되었기 때문에 이상하지 않은 것은 무엇입니까?
Jacob Vlijm

@ Jacob 예, 방금 설치되지 않은 패키지로 시도 apt-file하고 패키지 내용을 나열했습니다. 데비안 테스트와 우분투 13.10에서 작동합니다.
terdon

Aha, 고마워, 의존성이 설치되지 않은 응용 프로그램에 표시되기 때문에 방금 생각한 것 같습니다.
Jacob Vlijm

4

apt 파일을 사용할 수 있습니다 :

sudo apt-file update        
apt-file list package_name

3
경우 apt-file설치되어 있지 않은 경우에 설치할 수 있습니다 sudo apt-get install apt-file.
edwin

3

브라우저를 사용할 가능성이 있으므로 APT 시스템에 액세스 할 필요가 없습니다. 예를 들어 "ncurses-term"패키지의 파일 내용을 나열하려면 다음을 입력하십시오.

https://packages.debian.org/wheezy/all/ncurses-term/filelist

데비안의 브라우저 주소 표시 줄에 (필요에 따라 "wheezy"를 대체하십시오) 또는

http://packages.ubuntu.com/saucy/all/ncurses-term/filelist

우분투 (필요에 따라 "saucy"를 대체하십시오).


흥미로운 방법입니다. 이 목록은 데비안 패키지를위한 것이므로 우분투 나 칼리와 같은 다른 배포판에서도 동일해야합니까?
Sopalajo de Arrierez

1
@ Sopalajo de Arrierez : 정확하게 읽으십시오 : 나는 또한 우분투에 대해 동일한 패키지 (이 예제에서는 ncurses-term)에 대한 링크를 게시했습니다. 특정 우분투 버전이 데비안 세트 중 하나와 패키지 버전이 동일한 경우 파일 목록 동일 수 있지만 반드시 그런 것은 아닙니다. Ubuntu, Kali, Aptosid, CrunchBang 및 기타 모든 데비안 기반 배포판은 패키지를 원하는대로 수정할 수 있습니다 (특히 "README"와 같은 파일 또는 init 시스템의 구성 파일).
Michael Kremser

이해합니다, @MichaelKremser. 내가 볼 수 있듯이 웹에서 패키지의 내용을 검색하는 것이 유용하지만 특정 배포판의 공식 패키지 목록을 검색하는 것이 좋습니다.
Sopalajo de Arrierez

1
@ Sopalajo de Arrierez : 그렇습니다. Debian Wheezy를 사용하는 경우 Debian Wheezy의 패키지 목록을 사용하십시오. Debian 테스트를 수행중인 경우 해당 패키지를 사용하십시오. Ubuntu Precise를 사용중인 경우 해당 패키지를 사용하십시오. 예를 들어 우분투는 데비안에서 많은 패키지를 수정하지 않았지만 항상 차이가있을 수 있습니다. 그러나 이것은 언제든지 변경 될 수 있습니다.
Michael Kremser
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.