Apt-Get Update / Upgrade-Liste, ohne etwas zu ändern


21

Ich möchte anzeigen, welche Pakete zum Aktualisieren / Upgraden verfügbar sind, ohne tatsächlich Dateien zu ändern, da einige Pakete nicht aktualisiert werden sollen. Wäre es dann möglich, ein Update mit Ausnahmen zu erhalten?


apt muss über verfügbare Updates informiert sein apt-get update, und das wird einige Dinge ändern. Tolle Frage, aber ... Informationen dazu finden Sie hier
bvj

Antworten:


9

Ich benutze apt list --upgradable.
Die nächste Alternative ist apt-get --simulate upgrade. (basierend auf @EightBitTony)
Hier sind Ausgaben aus verschiedenen Optionen (hoffe, es hilft jemandem):

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.

Willkommen an Bord.
bvj

32

Von der Apt-Get-Manpage,

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

Also versichere dich einfach apt-get -s upgrade.

Wenn Sie bestimmte Pakete apt-get install <package name>aktualisieren möchten, wird es nur aktualisiert, wenn es bereits installiert ist. Es müssen jedoch auch alle Abhängigkeiten aktualisiert werden, und je nachdem, um welche es sich handelt, kann dies zu zahlreichen Aktualisierungen führen.

Wenn ich bei Paketaktualisierungen im Rückstand bin, werde ich apt-get installeinige der großen Aktualisierungen durchführen (z. B. PHP, Apache2 usw.), damit ich sie in Schach halten und eventuelle Probleme überprüfen kann, und dann, wenn apt-get upgradeich fertig bin.


8

So listen Sie Pakete auf, die mit ihren Versionen aktualisiert werden sollen:

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

Dann können Sie auswählen, was aktualisiert werden soll:

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

Wenn alte Abhängigkeiten entfernt wurden, können Sie sie ausführen apt-get autoremove. Wie Sie sehen, werden neue Abhängigkeiten zur Installation aufgefordert. Das --only-upgradeFlag ist nicht erforderlich, aber schön, wenn Sie sicherstellen möchten, dass Sie nicht versehentlich ein neues Paket installieren, anstatt ein vorhandenes zu aktualisieren, dh, Sie haben einen dieser Momente und geben versehentlich das falsche Paket ein:

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

1

Hilft es Ihnen herauszufinden, apt-get -s upgradewas nur eine Simulation macht? Und dann können Sie jedes gewünschte Paket mit aktualisieren apt-get install <thepackage>.

Wenn Sie das interaktiv mit einer netten CLI-GUI wollen, dann verwenden Sie aptitude. Wenn es noch nicht installiert ist, installieren Sie es mit apt-get install aptitude.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.