Εγκατάσταση command-not-found σε Debian server

dimitris | Τρί, 04/02/2019 - 15:30 | 2' | 2

Σε Debian Stretch server εγκατάσταση, όταν δίνεις μια εντολή που δεν υπάρχει στο σύστημα, το Debian απλά σου λέει ότι δεν υπάρχει (π.χ. bash: patch: command not found), χωρίς να σου δίνει ένα ωραίο hint που θα το βρεις -- όπως έχουμε συνηθίσει στα desktops μας. Αυτό γίνεται γιατί δεν υπάρχει το πακέτο command-not-found.

Η εγκατάσταση του command-not-found είναι κλασικά απλή:

apt install command-not-found

Απλά χρειάζεται μετά να κάνεις update τη βάση δεδομένων του:

update-command-not-found

Και να κάνεις logout/login ξανά ή να κάνεις source το /etc/bash.bashrc ή απλά να βάλεις στο ~/.bashrc τα παρακάτω:

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

Και να το κάνεις source.

Φόρουμ
Δώσε αστέρια!

MO: 2.5 (ψήφοι: 2)

Σχόλια

για όσους χρησιμοποιούμε πλέον zsh τι πρέπει να γίνει ;; 
βασικά το έχω βάλει το framework του oh-my-zsh 

Που' σαι βρε Κλέαρχε; :)

Χμ... δεν έχω ιδέα για την ερώτησή σου. Από όσο ξέρω το zsh δεν υπακούει στις ρυθμίσεις που υπάρχουν στο αρχείο .bashrc. Οπότε μια λύση ίσως είναι να βάλεις τη συνάρτηση command_not_found_handle() στο .profile και να κάνεις source το τελευταίο:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

Ακόμα και τότε όμως ΔΕΝ είμαι σίγουρος ότι θα παίξει, μια και το command_not_found_handle() δεν ξέρω κατά πόσο είναι συμβατό με το zsh. 

Γιατί όμως zsh ;