Quem usa Ubuntu e derivados está acostumado com a sugestão para instalar um programa que não está instalado, confira como adicionar o recurso nas demais distros Linux.
Comando não encontrado, sugestão de instalação do programa no terminal da sua Distro Linux
No Debian, Ubuntu e derivados o pacote responsável por esse recurso é o command-not-found no Fedora e derivados é o PackageKit-command-not-foundNo Arch Linux e derivados o pacote que tem esse mesmo recurso é o pkgfile.
O recurso é super útil ao iniciante e ao veterano por indicar o programa que contem o comando no seu repositório e o repositório que ele se encontra.
Veja nos exemplo.
Instalação
Use o método para a sua distribuição ou remasterização ( Distro ) que ela suga os repositórios.
Comando não encontrado para Debian
sudo apt install command-not-foundAtualize a lista de pacotes do apt com os comandos na sequencia para gerar o cache para o "command-not-found".
OBS: Isso vai demorar um pouco, ainda mais se a sua internet for fraca.
sudo apt update
sudo apt-file updateAtualize o cache do "command-not-found".
sudo update-command-not-foundFeche o terminal e abra novamente e teste com programas que vc não tenha instalados.
Comando não encontrado para Fedora
Atualize o cache do dnf.
sudo dnf makecacheInstale
sudo dnf install PackageKit-command-not-found
Comando não encontrado para Arch Linux e Manjaro
Achei o pkgfile padrão muito pobre e dei uma modificada no seu script para obter o resultado abaixo.
Instalação
Para instalar o pkgfile execute o comando abaixo no terminal.
sudo pacman -S pkgfile
Crie o banco de dados do pkgfile com o comando.
sudo pkgfile -uHabilite o script padrão.
echo "source /usr/share/doc/pkgfile/command-not-found.bash" >> ~/.bashrc
Com ele você ira ter o resultado abaixo.
Se preferir você pode usar o meu script modificado como foi mostrado acima.
Crie o script.
nano ~/.comandnotfound
Cole as linhas abaixo em vermelho no editor de texto nano.
command_not_found_handle () {
local pkgs cmd=$1
local FUNCNEST=10
set +o verbose
mapfile -t pkgs < <(pkgfile -bv -- "$cmd" 2>/dev/null)
if (( ${#pkgs[*]} )); then
local pkg=${pkgs[0]%% *}
printf '\n'
printf 'O programa "%s" não está instalado mas é encontrado no pacote:\n\n' "$cmd"
printf ' %s\n' "${pkgs[@]}"
printf '\n'
printf 'O programa pode ser instalado com o comando.\n'
printf '\n'
printf ' %s\n' "sudo pacman -S ${pkgs[0]%% *}"
printf '\n'
read -r -p "Se preferir posso instalar o programa $pkg agora mesmo!? [Y/n] " response
[[ -z $response || $response = [Yy] ]] || return 0
printf '\n'
sudo pacman -S -- "$pkg"
else
printf "bash: %s: command not found\n" "$cmd"
fi >&2
return 127
}
Ficando assim.
Salve teclando CTRL + x tecle s e tecle Enter para fechar.
Altere o script no ~/.bashrc
nano ~/.bashrc
Localize a linha adicionada anteriormente.
"source /usr/share/doc/pkgfile/command-not-found.bash"
Altere para.
source ~/.comandnotfound
Ficando assim.
Salve teclando CTRL + x tecle s e tecle Enter para fechar.
Feche o terminal e abra novamente para testar.
Comentários
Postar um comentário
olá, seja bem vindo ao Linux Dicas e suporte !!