liste de mise à jour / mise à niveau apt-get sans rien changer

21

Je voudrais voir quels packages sont disponibles pour la mise à jour / mise à niveau sans vraiment changer de fichier car il y a des packages que je ne voudrais pas mettre à jour. Serait-il alors possible de mettre à jour apt-get avec des exceptions.

John Magnolia
la source
apt a besoin de connaître les mises à jour disponibles via apt-get update, et cela va changer quelques choses. Grande question cependant ... trouvé des informations connexes ici
bvj

Réponses:

9

J'utilise apt list --upgradable.
La prochaine alternative est apt-get --simulate upgrade. (basé sur @EightBitTony)
Voici les sorties de différentes options (j'espère que cela aide quelqu'un):

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
la source
Bienvenue à bord.
bvj
32

Depuis la page de manuel 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).

Alors assurez-vous juste apt-get -s upgrade.

Si vous souhaitez mettre à niveau certains packages, il suffit de apt-get install <package name>le mettre à jour s'il est déjà installé. Cependant, il devra également mettre à jour toutes les dépendances, et en fonction de ce qu'elles sont, cela peut entraîner de nombreuses mises à jour.

Si je suis en retard sur les mises à jour de paquets, je ferai un apt-get installsur certains des plus grands (peut-être php, apache2, etc.) afin que je puisse les garder contenus et vérifier tous les problèmes, puis apt-get upgradeaprès avoir terminé.

EightBitTony
la source
8

Pour répertorier les packages à mettre à niveau avec leurs versions:

$ 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.

Ensuite, vous pouvez choisir quoi mettre à niveau:

$ 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]
...

S'il existe des anciennes dépendances qui sont supprimées, vous pouvez alors exécuter apt-get autoremove, et comme vous pouvez le voir, toutes les nouvelles dépendances seront invitées à être installées. L' --only-upgradeindicateur n'est pas nécessaire, mais agréable si vous voulez vous assurer que vous n'installez pas accidentellement un nouveau package au lieu de mettre à niveau un package existant, c'est-à-dire que vous avez l'un de ces moments et tapez accidentellement le mauvais package:

$ 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
la source
1

Cela vous aide-t-il à émettre apt-get -s upgradequi ne fait qu'une simulation? Et puis, vous pouvez mettre à jour chaque package souhaité avec apt-get install <thepackage>.

Si vous voulez que cela soit interactif avec une belle interface graphique CLI, alors utilisez aptitude. S'il n'est pas encore installé, installez-le avec apt-get install aptitude.

mailq
la source