데비안에서 패키지 설치 제안을 구현하는 방법은 무엇입니까?

데비안에서 패키지 설치 제안을 구현하는 방법은 무엇입니까?

Ubuntu에서 다음을 입력하면 다음과 같은 사실을 발견했습니다.

mc

아직 설치되지 않았는데 다음 메시지가 나타납니다.

The program 'mc' is currently not installed. You can install it by typing: sudo apt-get install mc

그러나 데비안에서는 이것이 가능하지 않습니다. "-bash:/usr/bin/mc: 해당 파일이나 디렉터리가 없습니다"라는 메시지만 표시됩니다. Debian의 bash 명령줄에서 동일한 기능을 어떻게 얻을 수 있나요? 예, 제가 원하는 것이 패키지 제안뿐이라면 간단히 정규식 검색을 사용하면 됩니다.적절한 캐시 검색. 하지만 프로그램 이름을 입력할 때 즉시 더 간단한 제안을 받을 수 있었으면 좋겠습니다.

토론에 따르면 이 기능은 패키지에서 제공됩니다.명령어를 찾을수 없음. 그러나 bash-completion 패키지가 설치되어 있어도 데비안 bash 셸에서는 여전히 사용할 수 없습니다.

답변1

설치가 제거된 패키지에 대한 제안 제공을 시작하지 않은 이유는 command-not-found설치 중에 dpkg의 작은 알림을 놓쳤기 때문입니다.

update-command-not-found이 명령은 직후에 실행되어야 합니다 apt-get install command-not-found. 실제로 dpkg는 이 명령을 실행하라는 메시지를 표시합니다.

답변2

데비안 패키지가 불완전한 것 같습니다. Readme /etc/bash_command_not_found에는 이 작업을 .bashrc.

데비안command-not-found기반으로우분투 패키지. 이와 관련하여 우분투 패키지가 더 완벽한 것 같습니다.

우분투 버전의 내용bash_command_not_found:

command_not_found_handle() {
  if  [ -x /usr/lib/command-not-found ]; then
     /usr/lib/command-not-found -- "$1" 
     return $?
  else
     return 127
  fi        
}

~/.bashrc(또는 /etc/bash.bashrc) 에 다음 줄을 추가하면 command-not-found기능이 작동합니다.

답변3

저는 이 문제를 다음과 같은 방법으로 해결했습니다.

먼저 설치 명령을 찾을 수 없습니다

sudo apt update
sudo apt install command-not-found

이후

sudo update-command-not-found
sudo apt update

답변4

데비안에서는 command-not-found를 설치한 후 다음 명령을 실행해야 합니다:

apt-get update

또는

apt-file update

이 명령은 update-command-not-found효과가 없습니다. 또한 /etc/profile에서 새 명령을 찾을 수 없는 쉘 스크립트가 실행되도록 로그아웃했다가 다시 로그인해야 합니다. 또는 수동으로 실행/가져올 수 있습니다.

관련 정보