Eu fiz algumas pesquisas nas páginas man, em particular em man apt.conf e man apt-get , e encontrei o seguinte. Por favor, comente se você acha que eu esqueci alguma coisa.
- use a opção
--only-upgradeou defina o item de configuração aptAPT::Get::Only-Upgradecomo true - apt item de configuração
APT::Get::force-yesdefinido como falso - use a opção
--no-removeou defina o item de configuração aptAPT::Get::Removecomo falso
Não tenho certeza de que --trivial-only / APT::Get::Trivial-Only ajude aqui. É necessário investigar melhor.
Com aptitude , as partes relevantes parecem ser:
- usando o comando
safe-upgradecom a opção--no-new-installs - defina
Aptitude::Delete-Unusedcomo false, para que os pacotes não utilizados não sejam removidos automaticamente (posso discordar do aptitude em relação ao que não é usado ...) - adicionar
-R/--without-recommendspode ajudar, precisa de mais investigação
Atualizar Eu fiz alguns testes em um sistema antigo:
# grep ^Ubuntu /etc/motd
Ubuntu 10.04.4 LTS
apt-get parece mais cauteloso, e o resultado não difere entre os apt-get upgrade e apt-get -o APT::Get::Only-Upgrade=true --no-remove -o APT::Get::force-yes=false upgrade normais.
aptitude parece mais agressivo e as "opções seguras" parecem fazer o seu trabalho. Atualização padrão (na verdade, é executado safe-upgrade )
# aptitude -s -y upgrade
W: The "upgrade" command is deprecated; use "safe-upgrade" instead.
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze
Lettura informazioni sullo stato... Fatto
Reading extended state information
Initializing package states... Fatto
Resolving dependencies...
The following NEW packages will be installed:
linux-image-2.6.32-55-generic-pae{a}
The following packages will be upgraded:
linux-generic-pae linux-image-generic-pae linux-image-server linux-libc-dev linux-server
5 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/32.8MB of archives. After unpacking 98.2MB will be used.
Would download/install/remove packages.
Agora com opções "seguras":
# aptitude -s -y --no-new-installs -R -o Aptitude::Delete-Unused=false safe-upgrade
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze
Lettura informazioni sullo stato... Fatto
Reading extended state information
Initializing package states... Fatto
Resolving dependencies...
The following packages have been kept back:
linux-generic-pae linux-image-generic-pae
The following packages will be upgraded:
linux-image-server linux-libc-dev linux-server
3 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Need to get 0B/878kB of archives. After unpacking 0B will be used.
Would download/install/remove packages.
Muito mais parecido com o que eu queria.
Infelizmente, nenhum dos dois conjuntos parece impedir que novos pacotes sejam instalados ou que outros pacotes sejam atualizados quando usados com o comando install em vez de upgrade / safe-upgrade , então estou de volta à estaca zero Não consigo fazer com que apt-get / aptitude pare quando faria uma operação potencialmente insanamente paranóica. De certa forma, tenho uma rede de segurança melhor, mas não sou impedido de cair.