누락된 명령을 실행하려고 시도한 후 패키지에 대한 제안: 어떻게 작동합니까?

누락된 명령을 실행하려고 시도한 후 패키지에 대한 제안: 어떻게 작동합니까?

일부 Linux 배포판(...일반적으로 Ubuntu와 같이 초보자에게 친숙한 배포판)에서 특정 패키지에 속하는 명령을 실행하려고 하면,실제 설치는 하지 않음시스템에서 다음과 같은 유용한 메시지를 받게 됩니다.

"unknown command; it is found though in [package] or [other-package]." 

(...정확한 표현이 기억나지 않습니다. 문자 그대로 현재 해당 시스템에 액세스할 수 없습니다.) 나는 그것이 일종의 Bash + APT 마술이라고 생각합니다 (적어도 우분투의 경우).

내 질문은... 어떤 소프트웨어가 이를 달성할 수 있으며 기본적으로 제공되지 않는 시스템에서 이를 실현하기 위한 추가 문서를 어디에서 찾을 수 있습니까? (...또는 적어도 "패키지 이름에 대한 바이너리 이름" 데이터베이스를 어디서 찾을 수 있나요?)

답변1

예, 쉘 + APT "마법"의 조합입니다(참조:사양은 여기).

Bash는 명령을 찾을 수 없는 처리기를 지원합니다. 명령을 찾을 수 없고 이름이 지정된 셸 함수가 있으면 command_not_found_handle해당 명령을 호출합니다. 일반적으로 command-not-found(Debian 파생물에서) 또는PackageKit-command-not-found이 핸들러의 구현이 제공됩니다(Fedora 및 관련 배포판, Debian에서도 사용 가능).

데이터베이스는 다양합니다. 데비안은 apt-file기본적으로 데이터베이스와 함께 제공됩니다.읽어보기.데비안더 알아보기. PackageKit 구현은 PackageKit에 관련 정보를 요청합니다.

관련 정보