pacman, por definición, solo puede conocer los paquetes que están en su base de datos; por lo tanto, los instalados por pacman o un asistente de AUR que envuelve pacman/makepkg.
Cualquier cosa que hayas instalado sin pacman, por ejemplo, usando algo como pip o gem, es tu responsabilidad .
Entonces, incluso su ejemplo(sudo pacman -Rsn
)no funcionará ya que estos paquetes no están en la base de datos . Hay un proceso descrito en la wiki para ayudar a identificar posibles candidatos, pero aun así deben eliminarse manualmente (es decir, conrm
)y con precaución .
La única otra categoría de paquete que podría estar cubierta por este escenario es un paquete AUR que posteriormente se eliminó, y luego sería necesario usar pacman para eliminarlo; esto podría hacerse con # pacman -Rns $(pacman -Qtdq)
.
Да, командаcommand-not-found
:
$ command-not-found firefox
The program 'firefox' is currently not installed. To run 'firefox' please ask your administrator to
install the package 'firefox-esr'
firefox: command not found
Это имеет в точности ту же функциональность, потому что это то, что ловушки оболочки запускают для автоматического создания этого вывода.
Вы также можете использовать apt-file search firefox
для поиска любых соответствующих файлов в пакете.
Вы можете использовать сам command-not-found
:
command-not-found --ignore-installed ls
сообщит вам, какой пакет содержит команду ls
.(--ignore-installed
не учитывает установленные пакеты и, в частности, гарантирует, что команда не запустится сразу, если она уже установлена.)
В качестве альтернативы вы можете использоватьapt-file
:
apt-file search bin/ls
выведет список всех пакетов, содержащих файл, путь которого содержит «bin/ls». Вы можете отфильтровать это, чтобы соответствовать толькоls
:
apt-file search bin/ls | grep bin/ls$