quarta-feira, 26 de julho de 2023

Como usar o nala digitando apt no Debian e derivados

Se você consultar soluções na internet de como usar o nala digitando apt, poderá encontrar soluções "meia boca", como adicionar alias no arquivo .bashrc  
alias sudo="sudo "
alias apt="nala"  
Bem, o problema é que dessa forma você não poderá executar sudo apt com comandos que o nala não suporta, como "full-upgrade" e "dist-upgrade", então é necessário adicionar exceções para retornar ao comando apt ao invés de nala como é mostrado no código abaixo. Com o código abaixo não será necessário o uso de linhas de alias.
Primeiramente instalamos o front-end desenhado para apt:

sudo apt install nala

cd /home/$USER

Abrimos e alteramos o arquivo .bashrc

nano .bashrc

Adicione o seguinte conteúdo ao final do arquivo .bashrc que está em cor azul:

# Usar nala como apt caso instalado
sudo() {
  if [ "$1" = "apt" ] && [ "$2" = "autoclean" ]; then
    shift 2
    command sudo apt autoclean "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "autoremove" ]; then
    shift 2
    command sudo apt autoremove "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "dist-upgrade" ]; then
    shift 2
    command sudo apt dist-upgrade "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "edit-sources" ]; then
    shift 2
    command sudo apt edit-sources "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "--fix-broken" ]; then
    shift 2
    command sudo apt --fix-broken "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "full-upgrade" ]; then
    shift 2
    command sudo apt full-upgrade "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "-h" ]; then
    shift 2
    command sudo apt -h "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "--help" ]; then
    shift 2
    command sudo apt --help "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "policy" ]; then
    shift 2
    command sudo apt policy "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "--purge" ]; then
    shift 2
    command sudo apt --purge "$@"
  elif [ "$1" = "apt" ] && [[ "$@" == *"--purge"* ]]; then
    shift 
    command sudo apt "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "reinstall" ]; then
    shift 2
    command sudo apt reinstall "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "satisfy" ]; then
    shift 2
    command sudo apt satisfy "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "install" ] && [ "$3" = "-t" ]; then
    shift 3
    command sudo apt install -t "$@"
  elif [ "$1" = "apt" ] && [ "$2" = "--version" ]; then
    shift 2
    command sudo apt --version "$@"
  elif [ "$1" = "apt" ] && [[ "$@" == *"--yes"* ]]; then
    shift 
    command sudo apt "$@"    
  elif [ "$1" = "apt" ] && [[ "$@" == *"*"* ]]; then
    shift
    command sudo apt "$@"
  elif [ "$1" = "apt" ]; then
    if command -v nala &> /dev/null; then
      shift
      command sudo nala "$@"
    else
      shift
      command sudo apt "$@"
    fi
  else
    command sudo "$@"
  fi
}

Para salvar no nano, pressione Ctrl + O e depois Enter. E para sair, pressione Ctrl + X. Fechamos o terminal.

Nesta função, "apt" será executado quando "nala" não estiver disponível, se o pacote "nala" estiver instalado, a função executará "sudo nala". Se o pacote "nala" não estiver disponível, a função executará "sudo apt" com os argumentos fornecidos.

Agora temos um visual mais elegante ao executar comandos com sudo apt:

Exemplo:

sudo apt update && sudo apt upgrade











Referência:

Nenhum comentário:

Postar um comentário