Mam zamiar przenieść serwer z jednego systemu Ubuntu na inny. Nie klonuję starego pudełka na nowe; Tworzę nowy system i będę przenosić dane w razie potrzeby. Chcę zainstalować całe oprogramowanie, które mam na starym pudełku na nowym.
Czy istnieje prosty sposób na znalezienie historii wszystkich poleceń „sudo apt-get install”, które wydałem w miarę upływu czasu? Oznacza to, że dpkg -l pokazuje mi wszystkie zainstalowane pakiety, ale nie pokazuje, który pakiet najwyższego poziomu je zainstalował. Jeśli istnieje sposób, aby dpkg dał mi pakiet instalacyjny, mogę tam znaleźć te unikalne; w przeciwnym razie chcę powiedzieć coś innego: „zainstalowałeś te 24 pakiety”.
Odpowiedzi:
apt
Historia jest/var/log/apt/history.log
jak powiedział w komentarzu powyżej. To powiedziawszy, nie będzie zawierało listy pakietów, które zostały zainstalowane ręcznie, za pomocądpkg
lub GUI, takich jakgdebi
. Aby zobaczyć wszystkie paczki, które przeszłydpkg
, możesz spojrzeć na/var/log/dpkg.log
.źródło
http://www.debianadmin.com/clone-your-ubuntu-installation.html
i /var/adm/apt/history.log
źródło
/var/log/apt/history.log
(Twoja lokalizacja jest błędna), po kilku miesiącach zmieni się.Możesz wyświetlić listę pakietów, których instalacja została wyraźnie zażądana
apt-mark
.Jeśli używasz starożytnej wersji Debiana, oto instrukcja.
Poniższe polecenie podaje listę pakietów, których instalacji zażądano, ręcznie lub automatycznie. Jeśli nie jesteś w trakcie (de) instalowania pakietów, jest to lista zainstalowanych pakietów.
Następujące polecenie daje nadzbiór automatycznie instalowanych pakietów:
Podsumowując, następujące polecenie wyświetla ręcznie zainstalowane pakiety:
źródło
comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
apt-mark showmanual
odpowiednik ostatniego polecenia.Pokazuje wszystkie zainstalowane pakiety za pomocą:
sudo apt-get install xxxxx
źródło
Zamiast kombinacji tac / head lepiej jest użyć tail (dla ostatnich 25 linii):
źródło
Inne odpowiedzi pomogły, ale dały mi za dużo wyników. Aby ograniczyć dane wyjściowe, zacząłem od
apt-mark showmanual
jak w tej odpowiedzi , a następnie odfiltrowałem pakiety pierwotnie zainstalowane (zobacz tę odpowiedź, aby uzyskać listę oryginalnie zainstalowanych pakietów; używam Ubuntu 18.04.2 stąd link poniżej) .Skrypt odfiltrowuje pakiety, które były w oryginalnym manifeście, przeprowadzając porównanie niezależne od wersji, dzięki czemu uaktualnione pakiety nie pojawiają się na liście. Skończyło się na liście około 60 pakietów.
Innym sposobem podoba mi się ta odpowiedź, która przeszukuje wszystkie dzienniki apt .
źródło
Aby uzyskać listę najnowszych zainstalowanych pakietów w kolejności malejącej, lubię używać (np. 25 linii):
źródło
tail -25 /var/log/apt/history.log | tac