zainstaluj te same pakiety Debian w innym systemie

13

Jak wyeksportować listę zainstalowanych pakietów Debiana w systemie, a następnie zainstalować te same pakiety w nowym systemie?

jes5199
źródło

Odpowiedzi:

17

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.

wadliwy serwer
źródło
1
Otrzymuję ten komunikat o błędzie dla każdej linii wejściowej: dpkg: warning: package not in status nor available database at line ...
danorton
ten sposób nie działa, ponieważ kilka wersji ubuntu
QkiZ
10

aptitudespeł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_listna inny komputer i uruchom

xargs aptitude --schedule-only install < package_list; aptitude install; 
Vihang D.
źródło
Drobna uwaga. Zgodnie z podręcznikiem aptitude, pole „pakiet” domyślnie jest „rozszerzalne”, więc aptitude search -F '%p' '~i!~M' > package_listpowinno również działać dobrze.
chronos
Jeśli chodzi o tworzenie kopii zapasowych pakietów: patrz wtyczka dla deborphan@ bogdan.org.ua/2013/10/18/…
TomRoche,
[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 xargswierszu polecenia restore = xargs aptitude --schedule-only install <lista_pakietów; instalacja aptitude; sprawia, że ​​chcę wiedzieć, <br/> 1. Dlaczego aptitudepotrzebuje tego xargs? dpkg --set-selectionsnie. <br/> 2. Zakładając, aptitude że potrzebujesz xargs, gdzie umieścić jedną lub więcej sudos w linii poleceń przywracania? Lub w inny sposób uzyskaj root do uruchomienia tej linii, zakładając, że jest to konieczne.
TomRoche,
0

To dobry pomysł i możesz również skonfigurować jeden serwer z apt-proxy, jeśli nabierzesz tego nawyku.


źródło
Po zabawie z kilkoma serwerami proxy dla apt, zdecydowałem się na apt-cacher-ng. apt-cacher-ng jest bardzo prosty w konfiguracji i z kilku kont wydaje się być bardziej niezawodny niż oryginalny apt-proxy. Każda osoba ma jednak swoje ulubione. unix-ag.uni-kl.de/~bloch/acng
uszkodzony serwer
Mój głos jest na około, to jedyny, który nie jest jakimś szalonym.
womble
Ciekawe ... Właściwie nie próbowałem żadnej z alternatyw.
0

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

adiuva
źródło