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?


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:


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.


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


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)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.