apt-get update / upgrade list sin cambiar nada

21

Me gustaría ver qué paquetes están disponibles para actualizar / actualizar sin cambiar realmente ningún archivo porque hay algunos paquetes que no me gustaría actualizar. ¿Sería posible obtener actualizaciones de apt-get con excepciones?

John Magnolia
fuente
apt necesita saber acerca de las actualizaciones disponibles a través de apt-get update, y eso cambiará algunas cosas. Gran pregunta, aunque ... encontré información relacionada aquí
bvj

Respuestas:

9

Yo uso apt list --upgradable.
La siguiente alternativa es apt-get --simulate upgrade. (basado en @EightBitTony)
Aquí hay resultados de diferentes opciones (espero que ayude a alguien):

me@machine:~$ apt list --upgradable
    Listing... Done
    kubernetes-cni/kubernetes-xenial 0.7.5-00 amd64 [upgradable from: 0.6.0-00]
    N: There are 3 additional versions. Please use the '-a' switch to see them.
me@machine:~$ apt-get --simulate upgrade
    NOTE: This is only a simulation!
          apt-get needs root privileges for real execution.
          Keep also in mind that locking is deactivated,
          so don't depend on the relevance to the real current situation!
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Calculating upgrade... Done
    The following packages will be upgraded:
      kubernetes-cni
    1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    Inst kubernetes-cni [0.6.0-00] (0.7.5-00 kubernetes-xenial:kubernetes-xenial [amd64])
    Conf kubernetes-cni (0.7.5-00 kubernetes-xenial:kubernetes-xenial [amd64])
me@machine:~$ apt-get -u upgrade --assume-no
    E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
    E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
me@machine:~$ sudo apt-get -u upgrade --assume-no
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Calculating upgrade... Done
    The following packages will be upgraded:
      kubernetes-cni
    1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    Need to get 6,473 kB of archives.
    After this operation, 4,278 kB of additional disk space will be used.
    Do you want to continue? [Y/n] N
    Abort.
me@machine:~$ sudo apt-get -u -V upgrade
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Calculating upgrade... Done
    The following packages will be upgraded:
       kubernetes-cni (0.6.0-00 => 0.7.5-00)
    1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    Need to get 6,473 kB of archives.
    After this operation, 4,278 kB of additional disk space will be used.
    Do you want to continue? [Y/n] n
    Abort.
Emeka-NMC
fuente
Bienvenido a bordo.
bvj
32

Desde la página de manual de apt-get,

   -s, --simulate, --just-print, --dry-run, --recon, --no-act
       No action; perform a simulation of events that would occur
       but do not actually change the system. Configuration Item:
       APT::Get::Simulate.

       Simulation run as user will deactivate locking (Debug::NoLocking)
       automatic. Also a notice will be displayed indicating that this
       is only a simulation, if the option APT::Get::Show-User-Simulation-Note
       is set (Default: true). Neither NoLocking nor the notice will be
       triggered if run as root (root should know what he is doing without
       further warnings by apt-get).

       Simulate prints out a series of lines each one representing a
       dpkg operation, Configure (Conf), Remove (Remv), Unpack (Inst).
       Square brackets indicate broken packages and empty set of square
       brackets meaning breaks that are of no consequence (rare).

Así que solo asegúrate de ti apt-get -s upgrade.

Si desea actualizar ciertos paquetes, solo apt-get install <package name>y lo actualizará si ya está instalado. Sin embargo, también tendrá que actualizar todas las dependencias, y dependiendo de lo que sean, eso puede generar muchas actualizaciones.

Si estoy atrasado en las actualizaciones de paquetes, haré una apt-get installen algunos de los grandes (tal vez php, apache2, etc.) para poder mantenerlos contenidos y verificar cualquier problema, y ​​luego, una apt-get upgradevez que haya terminado.

OchoBitTony
fuente
8

Para enumerar los paquetes que se actualizarán con sus versiones:

$ sudo apt-get -u -V upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages have been kept back:
   mysql-client-5.5 (5.5.29-0ubuntu0.12.04.2 => 5.5.32-0ubuntu0.12.04.1)
   mysql-server-5.5 (5.5.29-0ubuntu0.12.04.2 => 5.5.32-0ubuntu0.12.04.1)
   mysql-server-core-5.5 (5.5.29-0ubuntu0.12.04.2 => 5.5.32-0ubuntu0.12.04.1)
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

Luego, puede elegir qué actualizar:

$ sudo apt-get --only-upgrade install mysql-client-5.5
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
firefox-globalmenu
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
libterm-readkey-perl
The following NEW packages will be installed:
libterm-readkey-perl
The following packages will be upgraded:
mysql-client-5.5
1 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 8,123 kB of archives.
After this operation, 139 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main libterm-readkey-perl i386 2.30-4build3 [28.4 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main mysql-client-5.5 i386 5.5.32-0ubuntu0.12.04.1 [8,094 kB]
...

Si hay algunas dependencias antiguas que se eliminan, puede ejecutarlas apt-get autoremovey, como puede ver, se solicitará que se instalen nuevas dependencias. El --only-upgradeindicador no es necesario, pero es bueno si desea asegurarse de que no instala accidentalmente un nuevo paquete en lugar de actualizar uno existente, es decir, tiene uno de esos momentos y escribe accidentalmente el paquete incorrecto:

$ sudo apt-get --only-upgrade install mysql-proxy
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Skipping mysql-proxy, it is not installed and only upgrades are requested.
The following package was automatically installed and is no longer required:
firefox-globalmenu
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
josephdpurcell
fuente
1

¿Te ayuda a emitir apt-get -s upgradeque solo hace una simulación? Y luego puede actualizar cada paquete deseado con apt-get install <thepackage>.

Si quieres que sea interactivo con una buena interfaz gráfica de usuario de CLI, úsalo aptitude. Si aún no está instalado, instálelo con apt-get install aptitude.

mailq
fuente