Richiedi la linea di installazione di pacman quando il comando non è stato trovato


6

In Ubuntu, se scrivo un comando per un'applicazione che non è installata, ma che sa da un db, mi dà un messaggio come questo:

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

C'è un modo per ottenere un messaggio simile in Arch Linux?

Risposte:


1

Stavo cercando esattamente la stessa soluzione trovata brillante qui: https://bbs.archlinux.org/viewtopic.php?pid=874678#p874678

Durante l'installazione di pkgtools, vengono visualizzate altre informazioni:

(2/2) installing pkgtools
- Make sure to run pkgfile --update before use
- pkgfile includes a "command not found" hook for both zsh and bash.

  This will automatically run pkgfile whenever you run
  a command which the shell cannot find. If you want
  this functionality, set CMD_SEARCH_ENABLED to 1 in
  /etc/pkgtools/pkgfile.conf (or per-user by copying
  that file to ${XDG_CONFIG_HOME}/pkgtools/pkgfile.conf), then
  in your current shell run:
  source /etc/profile

- An entry has been placed in /etc/cron.daily to run pkgfile --update
  If you do not want this functionality, set UPDATE_CRON=0 in /etc/pkgtools/pkgfile.conf

2

Quindi questo sembra essere parte di Python, in Ubuntu è in:
/usr/lib64/python2.7/dist-packages/CommandNotFound/CommandNotFound.py
nella seguente funzione:

def advise(self, command, ignore_installed=False):
    " give advice where to find the given command to stderr "

Ho trovato il progetto launchpad che implementa questo: https://launchpad.net/command-not-found

Spero che questo ti aiuti


Il codice si basa su un database. Suppongo che questo sia generato esaminando tutti i pacchetti binari per i file binari installati nelle directory di percorso predefinite. Esiste già un database di questo tipo per arch? La generazione di un tale database richiederebbe il download di tutti i pacchetti, una risorsa che non ho.
Gary van der Merwe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.