lista aktualizacji / aktualizacji apt-get bez zmiany czegokolwiek


21

Chciałbym zobaczyć, jakie pakiety są dostępne do aktualizacji / aktualizacji bez faktycznej zmiany plików, ponieważ istnieją pewne pakiety, których nie chciałbym aktualizować. Czy w takim razie możliwe byłoby apt-get update z wyjątkami.


apt musi wiedzieć o dostępnych aktualizacjach za pośrednictwem apt-get update, a to zmieni kilka rzeczy. Świetne pytanie ... znaleziono powiązane informacje tutaj
bvj

Odpowiedzi:


9

Używam apt list --upgradable.
Kolejną alternatywą jest apt-get --simulate upgrade. (w oparciu o @EightBitTony)
Oto wyniki z różnych opcji (mam nadzieję, że to komuś pomoże):

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.

Witamy na pokładzie.
bvj

32

Na stronie podręcznika 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).

Więc upewnij się, że ty apt-get -s upgrade.

Jeśli chcesz zaktualizować niektóre pakiety, po prostu apt-get install <package name>zaktualizuje je, jeśli jest już zainstalowane. Będzie jednak musiał również zaktualizować wszystkie zależności, i w zależności od tego, jakie są, które mogą kaskadować do wielu aktualizacji.

Jeśli mam zaległości w aktualizacjach pakietów, zrobię to apt-get installna niektórych z nich (na przykład php, apache2 itp.), Więc mogę je zatrzymać i sprawdzić wszelkie problemy, a potem apt-get upgradepo skończeniu.


8

Aby wyświetlić listę pakietów do uaktualnienia wraz z ich wersjami:

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

Następnie możesz wybrać elementy do uaktualnienia:

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

Jeśli zostaną usunięte jakieś stare zależności, możesz je uruchomić apt-get autoremovei, jak widać, pojawi się monit o zainstalowanie wszystkich nowych zależności. --only-upgradeFlaga nie jest konieczne, ale miłe, jeśli chcesz, aby upewnić się, że nie przypadkowo zainstalować nowy pakiet zamiast modernizacji istniejącego, czyli masz jeden z tych momentów i przypadkowo wpisać zły pakiet:

$ 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

Czy pomaga ci to w wydaniu, apt-get -s upgradektóre jest tylko symulacją? Następnie możesz zaktualizować każdy pożądany pakiet apt-get install <thepackage>.

Jeśli chcesz to interaktywne z ładnym GUI CLI, użyj aptitude. Jeśli nie jest jeszcze zainstalowany, zainstaluj go przy pomocy apt-get install aptitude.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.