Comando não encontrado, sugestão de instalação do programa no terminal do Arch Linux e derivados

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 no Arch Linux, Manjaro e derivados.

 

 

 

command-not-found


No Debian, Ubuntu e toda a tralha de remasterizações que se aproveitam dos repositórios do Debian, o pacote responsável por esse recurso é o command-not-found.

No 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 exemplos:




Mas 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 -u
Habilite 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 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 !!

Você precisa ver isso

Todos os arquivos do blog

Mostrar mais