Odpowiedzi:
Wycofać się:
sudo dpkg --get-selections > /tmp/dpkglist.txt
Przywrócić:
sudo dpkg --set-selections < /tmp/dpkglist.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade
Zobacz także to pytanie, aby uzyskać dodatkowe opcje i informacje: Ubuntu, jak skonfigurować nową maszynę taką jak istniejąca
Mam powyższe działające w codziennym cronjobu, który sprawdza dpgklist w SVN jako część naszego inwentarza serwerów. To pozwoli ci zachować rozsądną i dokładną inwentaryzację zainstalowanych pakietów na twoich serwerach, a także łatwe szybkie porównanie ze sobą, aby sprawdzić, czy na serwerze brakuje określonego pakietu.
aptitude
spełnia również ten przypadek użycia i zachowuje informacje o „automatycznie instalowanych” pakietach, których inne metody nie robią. Uruchom następujące polecenie na komputerze referencyjnym:
aptitude search -F '%p' '~i!~M' > package_list
Skopiuj package_list
na inny komputer i uruchom
xargs aptitude --schedule-only install < package_list; aptitude install;
aptitude search -F '%p' '~i!~M' > package_list
powinno również działać dobrze.
deborphan
@ bogdan.org.ua/2013/10/18/…
[insert your own linebreaks, since http://serverfault.com/editing-help#linebreaks lies]
Jeśli chodzi o przywracanie pakietu: należy to zrobić jako root, prawda? Jeśli tak, <br/> W xargs
wierszu polecenia restore = xargs aptitude --schedule-only install <lista_pakietów; instalacja aptitude; sprawia, że chcę wiedzieć, <br/> 1. Dlaczego aptitude
potrzebuje tego xargs
? dpkg --set-selections
nie. <br/> 2. Zakładając, aptitude
że potrzebujesz xargs
, gdzie umieścić jedną lub więcej sudo
s w linii poleceń przywracania? Lub w inny sposób uzyskaj root do uruchomienia tej linii, zakładając, że jest to konieczne.
To dobry pomysł i możesz również skonfigurować jeden serwer z apt-proxy, jeśli nabierzesz tego nawyku.
odpowiedź na błędne serwery działała dla mnie dopiero po uruchomieniu innej komendy zgodnie z http://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html
sudo apt-get install dselect
sudo dselect access
sudo dselect update
Przed tym bieganiem
sudo apt-get dselect-upgrade
tylko wrócił
[...]
dpkg: ostrzeżenie: pakietu nie ma w bazie danych w wierszu 302: xfonts-utils
dpkg: ostrzeżenie: znaleziono nieznane pakiety; może to oznaczać, że dostępna baza danych jest nieaktualna i musi zostać zaktualizowana za pomocą metody frontend
pi @ FHEM-new: / tmp $ sudo apt-get dselect-upgrade
Czytanie list pakietów ... Gotowe
Drzewo zależności budynku
Odczytywanie informacji o stanie ... Wykonano
0 uaktualnień, 0 nowo zainstalowanych, 0 do usunięcia i 0 niezaktualizowanych.
Próbowałem zainstalować te same pakiety ze starego Raspberry Pi (z systemem Raspbian GNU / Linux 7 (wheezy)) na moim nowym Raspberry (Raspbian GNU / Linux 8 (jessie)).
dpkg: warning: package not in status nor available database at line ...