Um único comando para atualizar tudo no Ubuntu?

15

Eu sei que existem três comandos para atualizar e atualizar todo o sistema, são eles:

  • sudo apt-get update # Busca a lista de atualizações disponíveis
  • sudo apt-get upgrade # Atualiza estritamente os pacotes atuais
  • sudo apt-get dist-upgrade # Instala atualizações (novas)

Existe um comando de super atualização que combina todos esses comandos para um?

JohnDoea
fonte
1
Não, você pode fazer, no máximosudo apt-get update && sudo apt-get dist-upgrade
heemayl
Ainda é uma linha de comando! ;-)
Fabby
Para aqueles que se depara com esta questão, um dia, aqui está uma relacionada a correr updatee upgradecomo one-liners askubuntu.com/a/1086022/295286
Sergiy Kolodyazhnyy

Respostas:

23

Existem 3 opções decentes:

  1. Você pode criar um script parecido com o seguinte:

    #!/bin/bash
    set -e
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade

    Chame algo assim update.she coloque-o /usr/local/bine, em seguida, torne o script executável executando:

    sudo chmod +x /usr/local/bin/update.sh
  2. Outro método seria criar um alias de bash (in ~/.bashrc) ou onde quer que você normalmente armazene seus aliases:

    alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade'
  3. Um método final seria simplesmente agrupar os 3 comandos na linha de comando:

    sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Algumas escolhas ...

Referência:

andrew.46
fonte
6
Quando você estiver usando dist-upgradenão há nenhum ponto em fazer upgradede antemão ..
heemayl
3
@ heemayl: Em teoria, sim. Na prática, existem casos de canto em que um direto dist-upgradepode falhar, mas upgradeseguido por dist-upgradenão. Isso ocorre principalmente devido a erros de definição de dependência de pacotes ou a mistura de pacotes de diferentes releases / distribuições / PPAs. Se alguém usar apenas pacotes dos repositórios oficiais da Canonical para exatamente uma versão (o padrão), esses erros deverão ser extremamente raros e corrigidos rapidamente.
David Foerster
2
Há também a impressionar-amigos variante do nº 3:for x in update {,dist-}upgrade; do sudo apt $x; done
Eli Barzilay
1
Na etapa 1, o que "set -e" faz?
karjedavpalaa
7

Se você se incomodar com muita digitação, pode definir um "pseudônimo". Isso pode ser feito, por exemplo, adicionando uma linha ao final da $HOME/.profileseguinte maneira:

alias sau='sudo aptitude update && sudo aptitude upgrade'

(é claro que você pode substituir "sau" por outra coisa - para mim é um acrônimo para Sudo Apt-get Update). Depois de salvar o arquivo, abra um novo shell (ou "origem" do .profile novamente em execução . $HOME/.profile. Agora você sempre pode simplesmente digitar "sau" para fazer o trabalho completo. Funciona muito bem para mim com várias máquinas.

Izzy
fonte
Hum. Eu acho que estava apenas pedindo a alguém para me dizer o pseudônimo: P
polandeer
Sim, mas essa é a única maneira de fazer isso com um "comando único". E a sua pergunta não excluiu esta;)
Izzy
Complicado. De qualquer forma, a única razão pela qual perguntei foi porque queria entender melhor o apt, não porque tenho preguiça de escrever. sudo aptitude update && sudo aptitude upgradeA razão pela qual perguntei foi porque você pode fazer isso com pacman ( sudo pacman -Syu --noconfirm).
polandeer
Se você precisar fazer isso com frequência e em várias máquinas, ficará satisfeito por ter pelo menos um apelido. No entanto: apt-get updatepossui um parâmetro -u, de acordo com a página de manual que mostra as atualizações disponíveis. Não tentei pedir para aplicá-las (não há Ubuntu / Debian perto de mim para verificar agora).
Izzy
7

Podemos ter um comando de uma linha (sem necessidade de scripts, apenas copiar e colar)

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
  • update - atualiza a lista de pacotes, mas não instala
  • upgrade - instale novas versões de pacotes, se novas versões estiverem disponíveis
  • full-upgrade - executa a função de atualização, mas remove os pacotes atualmente instalados, se necessário para atualizar o sistema como um todo (corrigindo dependências incorretas)
  • autoremove, autocleane clean- limpe pacotes antigos que não são mais necessários
  • opção -ynão solicita permissão em todas as etapas
João Pimentel Ferreira
fonte
3

Infelizmente, os dois comandos precisam ser executados separadamente.

Cormac O'Brien
fonte
2
sudo apt install unattended-upgrades

Esta é a melhor linha ainda. Todas as outras soluções são necessárias para digitar a linha uma e outra vez todos os dias. Esta é realmente a solução de um comando. Veja a documentação oficial do apt no ubuntu!

Editando os .confarquivos deste pacote, /etcvocê pode definir a frequência de update, install, clean, autoremove...

Ou envie um e-mail com uma notificação de que uma atualização está disponível com a lista de nomes de pacotes

Um bom e pequeno arquivo de log é gerado a cada alteração, e imagino que um pequeno script possa ser escrito como uma extensão da GUI para aparecer também nas notificações da área de trabalho (fora do tópico haha)

não-um-coderp
fonte