Làm cách nào để triển khai đề xuất cài đặt gói trên Debian?


21

Tôi đã nhận thấy rằng trong khi trên Ubuntu, nếu tôi gõ như sau:

mc

và nó không được cài đặt, tôi nhận được thông báo dưới đây:

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

Tuy nhiên, trong Debian, điều đó không có sẵn. Nó chỉ đưa ra một thông báo "-bash: / usr / bin / mc: Không có tệp hoặc thư mục như vậy". Làm cách nào để triển khai chức năng tương tự trong dòng lệnh bash trên Debian? Vâng, tôi biết rằng nếu đó là gợi ý gói mà tôi muốn, tôi chỉ có thể thực hiện tìm kiếm regex bằng cách sử dụng tìm kiếm apt-cache . Tuy nhiên tôi đã hy vọng cho gợi ý đơn giản hơn ngay lập tức về việc gõ tên của chương trình.

Theo các cuộc thảo luận, chức năng được cung cấp bởi lệnh không tìm thấy gói . Tuy nhiên, ngay cả sau khi cài đặt nó và cũng cài đặt gói hoàn thành bash, điều này không có sẵn trên shell bash Debian.

Câu trả lời:


22

Lý do cài đặt command-not-foundkhông bắt đầu cung cấp đề xuất cho các gói chưa cài đặt là tôi đã bỏ lỡ một thông báo nhỏ từ dpkg như một phần của cài đặt.

Một người được cho là chạy lệnh update-command-not-foundngay sau khi chạy apt-get install command-not-found. Trong thực tế, dpkg nhắc nhở để chạy lệnh này.


1
Tôi cũng phải chạy apt-get updatetrước khi chạy, update-command-not-foundsau đó mở một phiên bash mới hoặc source /etc/bash.bash.rc.
jordanbtucker

Tôi đã làm một cái apt updatetrước apt install command-not-foundđó update-command-not-foundvà sau đó bắt đầu một lớp vỏ mới, nhưng thấy tôi cần một cái khác apt updatevà có thể update-command-not-foundtrước khi nó bắt đầu hoạt động.
Dave X

9

Gói debian dường như không đầy đủ. README nói rằng bạn nên tìm nguồn /etc/bash_command_not_foundcủa bạn .bashrc. Kỳ lạ là tập tin đó không được bao gồm trong gói.

command-not-foundGói debian dựa trên gói ubfox . Gói ubfox dường như hoàn thiện hơn về vấn đề đó.

Nội dung của phiên bản Ubuntu của 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        
}

Thêm các dòng đó vào ~/.bashrc(hoặc /etc/bash.bashrc) và command-not-foundtính năng sẽ hoạt động.


1
README không chính xác, Debian không sử dụng tệp đó. Trình xử lý được bao gồm trong /etc/bash.bashrc (ít nhất là trong Debian 9) được chạy tự động bởi các vỏ tương tác Bash khi chúng khởi động.
hackerb9

Cài đặt command-not-foundgói (phiên bản 0.2,38-4 từ debian.org) cho MX Linux (cơ sở Stretch của Debian 9) không sửa đổi /etc/bash.bashrc và sau đó không hoạt động cho đến khi thêm các dòng trong câu trả lời này.
Xen2050
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.