Jak wyświetlić listę wszystkich zainstalowanych pakietów

1884

Chciałbym wypisać listę wszystkich zainstalowanych pakietów do pliku tekstowego, aby móc je przejrzeć i zainstalować masowo w innym systemie. Jak mam to zrobić?

Ivan
źródło
7
To zostało już tutaj odebrane .
Simon Quigley,
2
Wow, przeglądając odpowiedzi, wydaje się, że istnieje wiele sposobów na osiągnięcie tego: /
Madivad
2
Jak wykonać instalację zbiorczą w nowym systemie z takiego pliku tekstowego?
Elysium
2
@Madivad menedżerowie tych pakietów mieli kiedyś ułatwić życie ...
René Nyffenegger,

Odpowiedzi:

2135

Ubuntu 14.04 i nowsze wersje

aptNarzędzie na Ubuntu 14.04 i powyżej sprawia, że to bardzo łatwe.

apt list --installed

Starsza wersja

Aby uzyskać listę pakietów zainstalowanych lokalnie, zrób to w swoim terminalu:

dpkg --get-selections | grep -v deinstall

( -vTag „odwraca” grep, aby zwrócić niepasujące linie)

Aby uzyskać listę zainstalowanego konkretnego pakietu:

dpkg --get-selections | grep postgres

Aby zapisać tę listę do pliku tekstowego wywoływanego packagesna pulpicie, zrób to w swoim terminalu:

dpkg --get-selections | grep -v deinstall > ~/Desktop/packages

Alternatywnie, po prostu użyj

dpkg -l

(nie musisz uruchamiać żadnego z tych poleceń jako superużytkownik, więc nie musisz sudotutaj ani żadnych innych wariantów)

Sabacon
źródło
37
Następnie, instalując na nowym komputerze, wykonaj cat ~/Desktop/packages > sudo dpkg --set-selections && sudo apt-get dselect upgrade source
koanhead
13
Składnia dpkg mogła się nieco zmienić od 2006 roku, ponieważ to polecenie nie działało dla mnie, @koanhead. sudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgradeZrób sztuczkę.
James
219
Pamiętaj, że nie będzie to śledzić, które pakiety zostały jawnie zainstalowane przez użytkownika, a które zostały zainstalowane jako zależności. Oznacza to, że jeśli użyjesz tej metody do odtworzenia konfiguracji na innym komputerze, apt nie będzie w stanie usunąć niepotrzebnych zależności po usunięciu danego pakietu.
intuicyjnie
73
To smutne i niesamowite, że komentarz @intuited nie jest lepiej zrozumiany przez społeczność. Czy bardziej „wysoko oceniani” autorzy przestaliby się zastanawiać, zanim doradziliby, że po prostu ponowne ładowanie starych pakietów do nowej wersji ubuntu nie jest dobrym pomysłem (?). Ze wszystkimi opcjami dpkg nadal nie widzę takiej, która wyciąga zainstalowane przez użytkownika „ekspresowo” zainstalowane pakiety, aby ta lista mogła zostać ponownie załadowana i pozwolić na zainstalowanie jej zależności; Chciałbym to wiedzieć - podziel się tą informacją. W międzyczasie zrób listę pakietów, których naprawdę potrzebujesz podczas ponownej instalacji i uruchom ją
Ricalsin
62
Wszyscy wiemy, że linux dyskryminuje ludzi bez pamięci fotograficznej, ale poważnie, z czym byłoby nie tak apt list installed. Pewnego dnia powinniśmy przestać systematycznie łamać zasadę „łatwych rzeczy prostych”.
414

Aby uzyskać tylko pakiety, które zostały wyraźnie zainstalowane (nie tylko zainstalowane jako zależności), możesz uruchomić

aptitude search '~i!~M'

Będzie to również zawierać krótki opis, który możesz chcieć. Jeśli nie, dodaj także opcję -F '%p', jak wspomniano w karthick87.


Jeszcze inną opcją wydaje się być skopiowanie pliku /var/lib/apt/extended_states, który jest bazą danych pliku tekstowego w tym formacie:

Package: grub-common
Architecture: amd64
Auto-Installed: 0

Package: linux-headers-2.6.35-22-generic
Architecture: amd64
Auto-Installed: 1

Auto-Installed: 0 wskazuje, że pakiet został wyraźnie zainstalowany i nie jest tylko zależnością.

intuicyjny
źródło
52
To powinna być poprawna odpowiedź. Dlaczego warto wyświetlać zależności?
Stavros Korokithakis,
13
To powinna być odpowiedź, ale korzystanie z aptitude jest nieco niewiarygodne ze względu na obecnie Multiarch (poprawki w drodze), niestety. Nadal +1 za wskazanie tylko listy jawnie zainstalowanych pakietów i sposób na zrobienie tego (mimo że obecnie nie działa na 11.10+).
gertvdijk
4
@intuited „Fix Released” for Precise (jakiś czas temu). :)
gertvdijk,
11
Zawiera listę wszystkich pakietów, a nie tylko ręcznie instalowanych pakietów w systemie Ubuntu 13.10.
Eamon Nerbonne
5
Czy istnieje sposób na osiągnięcie tego samego rezultatu apt-get?
Javier Arias,
203

Aby wyświetlić listę wszystkich pakietów celowo zainstalowanych (nie jako zależności) za pomocą komend apt, uruchom następujące polecenie:

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
  egrep '^(Start-Date:|Commandline:)' |
  grep -v aptdaemon |
  egrep '^Commandline:'

Zapewnia to widok oparty na czasie do tyłu, z wcześniejszymi listami starszych poleceń:

Commandline: apt-get install k3b
Commandline: apt-get install jhead
...

Dane instalacyjne pokazują również użycie synaptyczne, ale bez szczegółów (to samo z datą instalacji):

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
  egrep '^(Start-Date:|Commandline:)' |
  grep -v aptdaemon |
  egrep -B1 '^Commandline:'

zapewniając:

Start-Date: 2012-09-23  14:02:14
Commandline: apt-get install gparted
Start-Date: 2012-09-23  15:02:51
Commandline: apt-get install sysstat
...
bcl
źródło
3
Lub (z zgrep i usuwaniem aktualizacji):zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:'
belacqua
3
Czy w tym podejściu brakuje pakietów zainstalowanych z dpkg??
drevicko
5
Chociaż powyższe proste odpowiedzi są dobre dla ogólnego użytkownika. Ta metoda jest jak dotąd najlepsza do śledzenia wszystkich dostosowań wykonanych na maszynie, ponieważ pokazuje również, co zostało usunięte lub dodane z obrazu podstawowego, ponieważ wyświetla je w kolejności, w jakiej zostało wykonane, i pomaga zapamiętać, która jest poprawna kolejność dodawania ich z powrotem w innym systemie.
AllGamer
3
@drevicko masz rację, nie zawiera list pakietów zainstalowanych z dpkg
Steve Buzonas 14.04.15
3
Jest to bardzo przydatne do organizowania się - mój mózg woli z tego powodu z jakiegokolwiek powodu ..
JeremyFelix
191

Utwórz kopię zapasową aktualnie zainstalowanych pakietów:

dpkg --get-selections > list.txt

Następnie (w innym systemie) przywróć instalacje z tej listy:

dpkg --clear-selections
sudo dpkg --set-selections < list.txt

Aby pozbyć się starych pakietów:

sudo apt-get autoremove

Aby zainstalować jak podczas tworzenia kopii zapasowej (tj. Zainstalować pakiety ustawione przez dpkg --set-selections):

sudo apt-get dselect-upgrade
gogaman
źródło
5
Świetna wskazówka na temat przywracania na innym komputerze. +1.
Drew Noakes,
15
migracja między 2 różnymi maszynami Ubuntu 12.04 spowodowała uszkodzenie mojego systemu. minęło trochę czasu, zanim zdałem sobie sprawę, że w jakiś sposób ubuntu-desktopzostał odinstalowany - prawdopodobnie z powodu jednego z poleceń dpkg. bądź ostrożny, naprawienie uszkodzeń zajęło mi wiele godzin!
Karl Frisk,
1
Czasami system aktualizuje aplikację, której system ma nigdy nie dotykać, uruchamiaj to na końcu poleceń sudo apt-mark hold name-your-package . Zapobiegnie to aktualizacji apt-get do bieżącej wersji, która jest domyślna dla procesu aktualizacji.
Faron
77
apt-mark showmanual

Stan stron podręcznika:

wydrukuje listę ręcznie zainstalowanych pakietów

Powinien więc po prostu podać listę jawnie zainstalowanych pakietów (choć obejmuje to pakiety, które były częścią domyślnej instalacji początkowej) bez uwzględnienia wszystkich zależności związanych z instalowaniem tych pakietów.

Aby wyprowadzić wynik do pliku tekstowego:

apt-mark showmanual > list-manually-installed.txt
Tim Tisdall
źródło
W Debianie „apt-mark showmanual” nie działał przy „squeeze”, ale działał przy „wheezy”
Wadih M.
11
Tak jak w przypadku większości innych odpowiedzi, apt-mark showmanualtak naprawdę nie. Zawiera także mnóstwo automatycznie zainstalowanych pakietów, prawdopodobnie część instalacji podstawowej.
mivk
8
Pytanie dotyczyło zainstalowanych pakietów, co daje wszystkie zainstalowane pakiety minus automatycznie zainstalowane zależności. Obejmuje początkowe pakiety jako część początkowej instalacji. Myślę, że możesz uruchomić to przy nowej instalacji, aby uzyskać listę domyślnych instalacji, a następnie odjąć to od tego, aby zobaczyć różnicę.
Tim Tisdall
5
Nikt nie wspomina o tym alternatywa do listy zainstalowanych ręcznie pakiety: apt list --manual-installed.
Pablo A
41

dpkg-query(zamiast dpkg --get-selections, który zawiera listę niektórych pakietów, które nie są zainstalowane) w następujący sposób:

dpkg-query -W -f='${PackageSpec} ${Status}\n' | grep installed |  sort -u | cut -f1 -d \ > installed-pkgs

Lub:

dpkg -l | grep ^ii | sed 's_  _\t_g' | cut -f 2 > installed-pkgs
kyleN
źródło
Pisząc # for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; donew drugim systemie, zrobiłem to, aby zainstalować pakiety.
user9869932,
1
@julianromera: apt-get install -y $(< installed-pkgs)sprawi, że apt-get uruchomi się tylko raz i zajmie się wszystkimi zależnościami jednocześnie.
jamadagni,
@julianromera ... popraw mnie, jeśli się mylę, ale zwykle trzeba zbudować aplikację z zależnościami przed instalacją sudo apt-get build-dep name-package; sudo apt-get install name-package; ?
Faron
39

Aby wyświetlić listę wszystkich zainstalowanych pakietów,

dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt

lub

aptitude search -F '%p' '~i' > 1.txt

lub

dpkg --get-selections > 1.txt

Uwaga:
Otrzymasz plik wynikowy 1.txt w folderze domowym lub możesz określić własną ścieżkę.

karthick87
źródło
35

Możesz użyć Synaptic, aby zapisać bieżący stan zainstalowanych pakietów. W Synaptic wybierz „oznaczenie pliku / zapisz”, wprowadź nazwę pliku, w którym chcesz zapisać stan, i zaznacz pole „Zapisz pełny stan, nie tylko zmiany”.

Zapisany plik można załadować do nowego komputera za pomocą „oznaczeń plików / odczytów” w Synaptic.

Nerdfest
źródło
34

Polecam użycie planu . Mimo że jest przeznaczony dla serwerów, może być również używany z komputerów stacjonarnych. Stworzy skrypt powłoki / szefa kuchni / lalkę, którego możesz użyć do ponownej instalacji wszystkich swoich pakietów.

Pogromca
źródło
Nie próbuję pełnego dublowania, ale tylko fakt uwzględnienia plików konfiguracyjnych jest niesamowity. Przez jakiś czas szukałem takiego narzędzia, dziękuję bardzo!
tbolender
33

Chcesz ponownie zainstalować pakiety 12.04, prawda?

Jeśli tak, to bardzo łatwo. Potrzebne będzie „konto Ubuntu z pojedynczym logowaniem”. (Utwórz go przed ponowną instalacją, aby system był zsynchronizowany).

  1. Przejdź do Centrum oprogramowania i poszukaj opcji „Synchronizuj między komputerami ...” w menu Plik.

  2. Po kliknięciu zobaczysz zarejestrowany komputer i listę wszystkich aplikacji na komputerze.

  3. Po zainstalowaniu nowego komputer ten zostanie uznany za nowy.

  4. Musisz tylko zalogować się na swoje konto Ubuntu, aby wyświetlić poprzedni komputer.

  5. Kliknij na to; otrzymasz listę wszystkich aplikacji. Wybierz „zainstaluj” w aplikacji, którą chcesz zainstalować.

Nirmik
źródło
Ustawiłem tę samą nazwę dla mojego komputera na nowej instalacji, aby za każdym razem nie pobierać dużych plików z serwera Ubuntu One. Myślisz, że to dla mnie działa?
Alen,
32

Istnieje również narzędzie o nazwie Aptik (zarówno wiersz poleceń, jak i GUI), które może pomóc Ci wyświetlić listę wszystkich zainstalowanych pakietów, z opcją zaznaczenia / odznaczenia niektórych z nich, utworzenia listy kopii zapasowych, a następnie przywrócenia tego samego zestawu pakietów w inny system.

Żeby zainstalować:

sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install aptik

Więcej informacji: https://teejeetech.in/aptik/

wprowadź opis zdjęcia tutaj

Jak widać na zrzucie ekranu, Aptik umożliwia także tworzenie kopii zapasowych i przywracanie plików PPA , co z pewnością będzie konieczne do zainstalowania niektórych zainstalowanych pakietów.

Sadi
źródło
Jeśli chcesz GUI, trzeba zainstalować apt-get install aptik-gtk, jak również
Maduka Jayalath
30

Klon APT . Tego pakietu można użyć do klonowania / przywracania pakietów w systemie opartym na apt.

  • Będzie zapisywać / przywracać pakiety, sources.list, keyring i automatycznie instalowane stany.
  • Może także zapisywać / przywracać pakiety, których nie można już pobrać, używając programu dpkg-repack.

źródło: man apt-clone

APT-Clone jest używany przez ubiquity(instalator Ubuntu) do procesu aktualizacji. Jest znacznie lepszy niż dpkg --get-selectionsrozwiązanie, ponieważ:

  1. Zachowuje wszystkie informacje o repozytoriach.
  2. Śledzi, które pakiety zostały automatycznie zainstalowane.
  3. Pozwala przepakować lokalnie zainstalowane pliki DEB.

Jak używać

  1. zainstalować

    sudo apt-get install apt-clone
    
  2. Zrobić kopię zapasową

    sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
    
  3. Przywracania kopii zapasowej

    sudo apt-clone restore path-to/apt-clone-state-ubuntu.tar.gz
    

    Przywróć do nowszej wersji:

    sudo apt-clone restore-new-distro path-to/apt-clone-state-ubuntu.tar.gz $(lsb_release -sc)
    

Tworzy prosty skompresowany plik tar, który można łatwo edytować i przeglądać przed przywróceniem na innych komputerach. Oto przykład jego struktury:

/
├── etc
│   └── apt
│       ├── preferences.d
│       ├── sources.list
│       ├── sources.list.d
│       │   ├── anton_-ubuntu-dnscrypt-vivid.list
│       │   ├── maarten-baert-ubuntu-simplescreenrecorder-vivid.list
│       │   └── megasync.list
│       ├── trusted.gpg
│       └── trusted.gpg.d
│           ├── anton__ubuntu_dnscrypt.gpg
│           ├── anton__ubuntu_dnscrypt.gpg~
│           ├── maarten-baert_ubuntu_simplescreenrecorder.gpg
│           └── maarten-baert_ubuntu_simplescreenrecorder.gpg~
└── var
    └── lib
        └── apt-clone
            ├── extended_states
            ├── installed.pkgs
            └── uname
user.dz
źródło
26

Istnieje świetne wyjaśnienie na temat Unix StackExchange, które opisuje, jak używać aptitude do wyświetlania pakietów niezainstalowanych jako zależności oraz jak porównać tę listę z listą domyślnych pakietów dla twojej wersji Ubuntu.

Aby uzyskać plik manifestu dla wersji 12.04 na komputery stacjonarne i nowsze, odwiedź tę stronę , wybierz wydanie i przewiń w dół poniżej obrazów płyt CD do sekcji plików. Znajdziesz coś w rodzaju „ubuntu-12.04.4-desktop-amd64 + mac.manifest”, który pasuje do Twojej architektury.

W przypadku wersji serwerowych musisz uzyskać plik manifestu z ISO, który został użyty do zainstalowania oryginalnego systemu. W przypadku serwera VPS lub serwera w chmurze dostawca może udostępnić obrazy lub może być konieczne skontaktowanie się z nimi.

Oto przykład użycia kodu z odnośnika, wraz z modyfikacjami do zainstalowania na nowym serwerze.

Stary serwer (kod z innego postu, dane wyjściowe zapisane w pliku):

aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currently-installed.list
wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest \
  | cut -f1 | sort -u > default-installed.list
comm -23 currently-installed.list default-installed.list > user-installed.list

Na nowym serwerze skopiuj plik za pomocą scp, a następnie użyj sed, aby dołączyć „zainstaluj” do każdej linii (-i wykonuje zamianę inline). Następnie możesz użyć listy jako danych wejściowych do „dpkg --set-selections” i zainstalować pakiety za pomocą apt-get:

scp user@oldserver:user-installed.list .
sed -i 's/$/\tinstall/' user-installed.list
sudo dpkg --set-selections < user-installed.list
sudo apt-get dselect-upgrade

Przed rozpoczęciem tego zadania zalecam przeczytanie i zrozumienie wszystkich części posta wspomnianych na początku, a następnie zajrzyj do poradnika umiejętności, aby uzyskać szczegółowe informacje na temat wzorców wyszukiwania.

myślący
źródło
25

Możesz spojrzeć na aptdziennik pod /var/log/apt/i dpkgdziennik pod/var/log/

i możesz uzyskać listę zainstalowanych pakietów za pomocą jednego polecenia:

dpkg -l | grep '^ii '
Maythux
źródło
23

Dziwi mnie, że apt-cachepolecenie zaprojektowane specjalnie do tego celu nie zostało wspomniane powyżej ...

apt-cache pkgnames

Aby uzyskać więcej informacji, uruchom apt-cache --help:

** apt-cache to narzędzie niskiego poziomu używane do wyszukiwania informacji
z binarnych plików pamięci podręcznej APT

Polecenia:
   gencaches - Zbuduj pamięć podręczną pakietu i źródła
   showpkg - Pokazuje ogólne informacje o pojedynczej paczce
   showsrc - Pokaż rekordy źródłowe
   statystyki - Pokaż podstawowe statystyki
   zrzut - Pokaż cały plik w zwięzłej formie
   dumpavail - Wydrukuj dostępny plik na standardowe wyjście
   unmet - Pokaż niespełnione zależności
   szukaj - Wyszukaj w liście pakietów wzorzec wyrażenia regularnego
   show - Pokaż czytelny rekord dla pakietu
   depends - Pokaż surowe informacje o zależnościach dla pakietu
   rdepends - Pokazuje informacje o odwrotnej zależności dla pakietu
   pkgnames - Wymień nazwy wszystkich pakietów w systemie
   dotty - Generuj wykresy pakietów dla GraphViz
   xvcg - Generuj wykresy pakietów dla xvcg
   polityka - Pokaż ustawienia polityki

Opcje:
  -h Ten tekst pomocy.
  -p =? Pamięć podręczna pakietów.
  -s =? Pamięć podręczna źródła.
  -q Wyłącz wskaźnik postępu.
  -i Pokaż tylko ważne deps dla polecenia unmet.
  -c =? Przeczytaj ten plik konfiguracyjny
  -o =? Ustaw dowolną opcję konfiguracji, np. -O dir :: cache = / tmp
Aby uzyskać więcej informacji, zobacz strony podręcznika apt-cache (8) i apt.conf (5).
**
ostrokach
źródło
5
TLDR; W końcu odkryłem, że apt --installed listdaje najlepszy wynik (jak sugeruje powyższa odpowiedź powyżej. Chociaż apt-cache pkgnameswydaje się, że robi to na pierwszy rzut oka, zawiera listę „wszystkich pakietów w systemie” (zgodnie z powyższym tekstem pomocy), który obejmuje również pakiety, o których apt wie o tym ale w rzeczywistości nie są zainstalowane. Istnieje --installedopcja, ale wydaje się, że nie działa pkgnames.
sxc731
2
apt-cache pkgnames | wc -ldaje 55909pakiety (system wie o tym), natomiast aptitude search '~i!~M' | wc -ldaje 2160(pakiety jawnie zainstalowane, bez zależności).
kn
18

Poniższe polecenie wyświetli również listę wszystkich zainstalowanych pakietów,

grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
Avinash Raj
źródło
.1 oznacza, że ​​dziennik został obrócony, jeśli tak jest, to może lepiej grep, /var/log/dpkg.log*aby uzyskać wszystkie obrócone dzienniki.
Steve Buzonas
17

Pomóż tej wiki społeczności - Dodaj aktualne rozwiązania.


dpkg, xargs i apt-get

To polecenie powinno zakończyć tworzenie pliku tekstowego zawierającego zainstalowane pakiety:

dpkg -l | awk  '{print $2}' > package_list.txt

Aby przeprowadzić masową instalację wymienionych pakietów, musisz edytować plik „pakiet_list.txt”. Usuń dziwne linie u góry pliku za pomocą edytora tekstu. Następnie możesz użyć tego polecenia, aby zainstalować pakiety z utworzonego pliku, używając:

xargs < package_list.txt apt-get install -y

apt-cache, xargs i apt-get

Używaj tej metody tylko wtedy, gdy chcesz, aby wszystkie bieżące pakiety były instalowane przy użyciu listy (w tym automatycznie instalowanej itp.).

Wyślij odpowiedź „apt-cache pkgnames” do pliku, który nazwiemy po prostu „pakiet_list.txt”. Możesz to zrobić za pomocą:

apt-cache pkgnames > package_list.txt

Następnie, jeśli chcesz zainstalować pakiety z „package_list.txt”, użyj tej komendy:

xargs < package_list.txt apt-get install -y

apt-mark, xargs i apt-get

Możemy użyć tego polecenia, apt-mark showmanualaby podać listę pakietów, które zostały ręcznie lub wstępnie zainstalowane z Ubuntu. Będziemy chcieli wysłać to do pliku, który nazwiemy „pakiet-list.txt”. Użyj tego polecenia, aby to zrobić:

apt-mark showmanual > package-list.txt

Polecenie, którego użylibyśmy do zainstalowania pakietów z pliku „lista_pakietów.txt”, znajduje się poniżej.

xargs < package_list.txt apt-get install -y

Aptik Migration Utility

Narzędzie do uproszczenia ponownej instalacji pakietów oprogramowania po aktualizacji / ponownej instalacji dystrybucji opartych na Ubuntu.
[ Launchpad | Aptik ]

Aby uzyskać informacje na temat Aptik, odwiedź jego oficjalną stronę , a zrzut ekranu kliknij tutaj lub zobacz koniec tej sekcji.

Instalacja Aptik jest prosta. Wykonaj następujące kroki:

  1. Dodaj PPA z:
    sudo add-apt-repository -y ppa:teejee2008/ppa

  2. Zaktualizuj apt za pomocą poniższego polecenia.
    sudo apt-get update

  3. Zainstaluj Aptik za pomocą:
    sudo apt-get install aptik

Aptik Migration Utility v16.5.2


David twój przyjaciel
źródło
1
Dane wyjściowe apt-mark showmanualobejmują między innymi Bash, Unity i Xorg. Czy oni powinni tam być?
wjandrea,
@wjandrea wyjście „apt-mark showmanual” zawiera również Bash & Unity na mojej wygenerowanej liście. Powinno to być normalne, ponieważ listy poleceń są instalowane ręcznie i początkowo instalowane w / Ubuntu.
David twój przyjaciel
16

Aby zapisać listę zainstalowanych pakietów w pliku o nazwie installed_packages.txt, po prostu uruchom:

dpkg-query --list >> installed_packages.txt
wb9688
źródło
3

Wydaje mi się, że warto zauważyć apt list --installedlub dpkg-query --listużyć pliku wywoływanego /var/lib/dpkg/statusza, gdzie wszystkie informacje o paczkach są brodą.

Więc jeśli chcesz poradzić sobie z super rozszerzoną listą pakietów cat /var/lib/dpkg/status.

Uwaga: Nie zmieniaj /var/lib/dpkg/statuspliku.

prosti
źródło
3

Oprócz pakietów APT wiele pakietów GUI jest obecnie dystrybuowanych jako przystawki .

Jeśli nie można znaleźć Twojego pakietu apt list --installed, spróbuj snap list:

$ snap list

Name                  Version                     Rev   Tracking  Publisher       Notes
gimp                  2.10.10                     165   stable    snapcrafters    -
gnome-calculator      3.32.1                      406   stable/…  canonical✓      -
keepassxc             2.4.1                       267   stable    keepassxreboot  -
...

Dobrym pomysłem jest również dodanie /snap/bindo PATH, aby można było uruchomić je z terminala (wykonywane automatycznie dla użytkowników innych niż root).

rustyx
źródło
1

Pakiet dctrl-toolszapewnia grep-statusnarzędzie do uzyskania listy pakietów oznaczonych jako zainstalowane w systemie:

sudo apt install dctrl-tools

Stosowanie:

grep-status -FStatus -sPackage -n   "install ok installed"

widzieć : man dctrl-tools

GAD3R
źródło
1

https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ubuntu/ :

1. Wyświetl listę zainstalowanych pakietów oprogramowania w systemie Ubuntu

Aby wyświetlić listę zainstalowanych pakietów oprogramowania na komputerze, możesz użyć następującego polecenia:

sudo apt list --installed

Wynik działania polecenia będzie bardzo podobny do następującego, w zależności od tego, które pakiety są obecnie zainstalowane:

Listing...
acl/xenial,now 2.2.52-3 amd64 [installed]
adduser/xenial,xenial,now 3.113+nmu3ubuntu4 all [installed]
apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed,automatic]
apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic]
apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed]
apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
apparmor/xenial-updates,now 2.10.95-0ubuntu2.5 amd64 [installed,automatic]
apt/xenial-updates,now 1.2.19 amd64 [installed]
apt-utils/xenial-updates,now 1.2.19 amd64 [installed]
...

2. Użyj programu LESS

Aby łatwo odczytać całe wyjście, możesz użyć lessprogramu.

sudo apt list --installed | less

3. Użyj polecenia GREP

Możesz wyszukać konkretny pakiet za pomocą grepprogramu wyjściowego .

sudo apt list --installed | grep -i apache

4. Wyświetl listę wszystkich pakietów, które zawierają Apache

Dane wyjściowe powyższego polecenia zawierają listę wszystkich pakietów, które zawierają się apachew ich nazwach.

apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed,automatic]
apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic]
apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed]
apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
libapache2-mod-php/xenial,xenial,now 1:7.0+35ubuntu6 all [installed,automatic]
libapache2-mod-php7.0/xenial-updates,now 7.0.13-0ubuntu0.16.04.1 amd64 [installed,automatic]
libapache2-mod-security2/xenial,now 2.9.0-1 amd64 [installed]
libapache2-modsecurity/xenial,xenial,now 2.9.0-1 all [installed]

Apt obsługuje wzorce, aby dopasować nazwy pakietów i opcje, aby wyświetlić listę zainstalowanych (--installed)pakietów, (--upgradeable) pakietów z możliwością aktualizacji lub wszystkich dostępnych (--all-versions)wersji pakietów.

5. Użyj programu DPKG

Inną alternatywą, której można użyć do wyświetlenia listy zainstalowanych pakietów oprogramowania w systemie Ubuntu VPS, jest dpkgpolecenie.

sudo dpkg -l

Dane wyjściowe polecenia dostarczą informacji, takich jak nazwa pakietu, wersja, architektura i krótki opis pakietu. Oczywiście możesz grepponownie użyć programu, aby wyszukać konkretny pakiet.

sudo dpkg -l | grep -i apache

Dane wyjściowe powinny wyglądać następująco:

ii  apache2                       2.4.18-2ubuntu3.1                     amd64        Apache HTTP Server
ii  apache2-bin                   2.4.18-2ubuntu3.1                     amd64        Apache HTTP Server (modules and other binary files)
ii  apache2-data                  2.4.18-2ubuntu3.1                     all          Apache HTTP Server (common files)
ii  apache2-doc                   2.4.18-2ubuntu3.1                     all          Apache HTTP Server (on-site documentation)
ii  apache2-utils                 2.4.18-2ubuntu3.1                     amd64        Apache HTTP Server (utility programs for web servers)
rc  apache2.2-common              2.2.22-6ubuntu5.1                     amd64        Apache HTTP Server common files
ii  libapache2-mod-php            1:7.0+35ubuntu6                       all          server-side, HTML-embedded scripting language (Apache 2 module) (default)
rc  libapache2-mod-php5           5.5.9+dfsg-1ubuntu4.16                amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-php7.0         7.0.13-0ubuntu0.16.04.1               amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-security2      2.9.0-1                               amd64        Tighten web applications security for Apache
ii  libapache2-modsecurity        2.9.0-1                               all          Dummy transitional package
ii  libapr1:amd64                 1.5.2-3                               amd64        Apache Portable Runtime Library
ii  libaprutil1:amd64             1.5.4-1build1                         amd64        Apache Portable Runtime Utility Library
ii  libaprutil1-dbd-sqlite3:amd64 1.5.4-1build1                         amd64        Apache Portable Runtime Utility Library - SQLite3 Driver
ii  libaprutil1-ldap:amd64        1.5.4-1build1                         amd64        Apache Portable Runtime Utility Library - LDAP Driver
.

Dzięki konkursowi tego samouczka z powodzeniem nauczyłeś się, jak wyświetlać listę zainstalowanych pakietów w Ubuntu.

MAK Ripon
źródło
0

Można to zrobić na wiele sposobów. Jeśli używasz CentOS jak ja, możesz użyć tych: 1. yum list installed 2.rpm -qa

saeed mohammadi
źródło