Come elencare tutti i pacchetti installati

1628

Vorrei produrre un elenco di tutti i pacchetti installati in un file di testo in modo da poterlo rivedere e installare in blocco su un altro sistema. Come potrei fare questo?

    
posta Ivan 17.12.2010 - 03:08

22 risposte

1803

Ubuntu 14.04 e versioni successive

Lo strumento apt su Ubuntu 14.04 e versioni successive rende tutto molto semplice.

apt list --installed

Versioni precedenti

Per ottenere un elenco di pacchetti installati localmente, fai questo nel tuo terminale:

dpkg --get-selections | grep -v deinstall

(Il tag -v "inverte" grep per restituire righe non corrispondenti)

Per ottenere un elenco di un pacchetto specifico installato:

dpkg --get-selections | grep postgres

Per salvare quell'elenco in un file di testo chiamato packages sul tuo desktop fallo nel tuo terminale:

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

In alternativa, usa semplicemente

dpkg -l

(non è necessario eseguire nessuno di questi comandi come superutente, quindi nessuna sudo o qualsiasi altra variante necessaria qui)

    
risposta data Sabacon 17.12.2010 - 04:02
389

Per ottenere solo i pacchetti che sono stati espressamente installati (non solo installati come dipendenze), puoi eseguire

aptitude search '~i!~M'

Questo includerà anche una breve descrizione, che potresti volere. In caso contrario, aggiungi anche l'opzione -F '%p' , come indicato da karthick87.

Ancora un'altra opzione sembra essere quella di copiare il file /var/lib/apt/extended_states , che è un database di file di testo in questo formato:

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

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

Auto-Installed: 0 indica che il pacchetto è stato espressamente installato e non è solo una dipendenza.

    
risposta data intuited 28.08.2012 - 23:35
182

Crea un backup dei pacchetti attualmente installati:

dpkg --get-selections > list.txt

Quindi (su un altro sistema) ripristinare le installazioni da quella lista:

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

Per eliminare pacchetti obsoleti:

sudo apt-get autoremove

Per essere installato come al momento del backup (vale a dire installare i pacchetti impostati da dpkg --set-selections ):

sudo apt-get dselect-upgrade
    
risposta data gogaman 16.05.2012 - 20:26
178

Per elencare tutti i pacchetti intenzionalmente installati (non come dipendenze) dai comandi apt, esegui quanto segue:

(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:'

Fornisce una vista temporizzata inversa, con i comandi più vecchi elencati per primi:

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

Dati di installazione che mostrano anche l'uso sinaptico, ma senza dettagli (lo stesso con la data di installazione):

(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:'

fornendo quanto segue:

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
...
    
risposta data bcl 02.02.2013 - 11:39
64
apt-mark showmanual

stato pagine man:

% Bl0ck_qu0te%

Quindi, dovrebbe solo fornire un elenco di pacchetti installati in modo esplicito (sebbene questo includa pacchetti che facevano parte dell'installazione iniziale predefinita) senza tutte le dipendenze incluse a causa dell'installazione di questi pacchetti.

Per visualizzare il risultato in un file di testo:

apt-mark showmanual >list-installed.txt
    
risposta data Tim Tisdall 10.07.2014 - 15:43
38

dpkg-query (anziché dpkg --get-selections , che elenca alcuni pacchetti che non sono installati) come segue:

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

o

dpkg -l | grep ^ii | sed 's_  _\t_g' | cut -f 2 > installed-pkgs
    
risposta data kyleN 16.05.2012 - 20:40
36

Per elencare tutti i pacchetti installati,

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

o

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

o

dpkg --get-selections > 1.txt

Nota:
Otterrai il file 1.txt risultato nella cartella home o puoi specificare il tuo percorso.

    
risposta data karthick87 17.12.2010 - 04:35
33

È possibile utilizzare Synaptic per salvare lo stato corrente del pacchetto installato. In Synaptic, seleziona "contrassegni file / salva", inserisci il nome del file in cui salvare lo stato e assicurati di selezionare la casella "Salva stato completo, non solo modifiche".

Il file salvato da questo può essere caricato in una nuova macchina usando "file / leggi marcature" in Synaptic.

    
risposta data Nerdfest 17.12.2010 - 05:46
32

Raccomando di utilizzare il progetto . Anche se è progettato per server, può essere utilizzato anche da desktop. Creerà uno script di shell / chef / burattino che dovrai usare per reinstallare tutti i tuoi pacchetti.

    
risposta data Tamer 12.04.2011 - 14:26
31

Vuoi reinstallare i pacchetti ora lì in 12.04, giusto?

Se è così, è molto facile. Avrai bisogno di un "account Single Sign On di Ubuntu". (Crealo prima di reinstallarlo in modo che il tuo sistema sia sincronizzato.)

  1. Vai al Software Center e cerca l'opzione "Sincronizza tra computer ..." nel menu File.

  2. Quando fai clic su di esso vedrai il tuo computer registrato e un elenco di tutte le app sul tuo computer.

  3. Quando installi fresco, quel computer sarà considerato un nuovo computer.

  4. Devi solo accedere al tuo account Ubuntu e il tuo computer precedente verrà mostrato.

  5. Fare clic su di esso; riceverai un elenco di tutte le app. Seleziona "installa" nell'app che desideri installare.

risposta data Nirmik 16.05.2012 - 20:26
30

C'è anche uno strumento chiamato Aptik (sia riga di comando che GUI) che può aiutarti a visualizzare un elenco di tutti i pacchetti installati, con un'opzione per selezionare / deselezionare alcuni di essi, creare un elenco di backup e quindi ripristinare lo stesso set di pacchetti in un altro sistema.

Per installare:

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

Ulteriori informazioni: link

Come si può vedere nello screenshot, Aptik ti consente di anche eseguire il backup e il ripristino di PPA , che sarà sicuramente necessario per installare alcuni dei pacchetti installati.

    
risposta data Sadi 30.05.2014 - 22:22
27
% Bl0ck_qu0te%

APT-Clone è utilizzato da ubiquity (programma di installazione di Ubuntu) per il processo di aggiornamento. È molto meglio della soluzione dpkg --get-selections perché:

  1. Conserva tutte le informazioni sui repository.
  2. Tiene traccia di quali pacchetti sono stati installati automaticamente.
  3. Permette di reimballare i file DEB installati localmente.

Come usare

  1. Installa

    sudo apt-get install apt-clone
    
  2. Crea backup

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

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

    Ripristina nella versione più recente:

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

Crea semplici file tar gzip che possono essere facilmente modificati e revisionati prima di essere ripristinati sulle altre macchine. Ecco un esempio della sua struttura:

/
├── 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
    
risposta data user.dz 06.09.2015 - 01:09
24

Ci sono una grande spiegazione su Unix StackExchange che descrive come usare aptitude per elencare i pacchetti non installati come dipendenze e come confrontare quell'elenco con l'elenco dei pacchetti predefiniti per la versione di Ubuntu.

Per ottenere il file manifest per le versioni desktop di 12.04 e successive, visita questo sito , scegli la tua versione e scorri verso il basso sotto le immagini del CD nella sezione dei file. Troverai qualcosa come "ubuntu-12.04.4-desktop-amd64 + mac.manifest" che corrisponde alla tua architettura.

Per le versioni server è necessario ottenere il file manifest dalla ISO utilizzata per installare il sistema originale. Per un server VPS o cloud, il tuo provider può rendere disponibili le immagini o potresti doverle contattare.

Ecco un esempio che utilizza il codice del post di riferimento, insieme alle modifiche da installare sul nuovo server.

Vecchio server (codice da altro post, output salvato su file):

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

Sul nuovo server, copia il file usando scp, quindi usa sed per aggiungere 'install' a ogni riga (-i esegue una sostituzione in linea). Quindi puoi usare l'elenco come input per "dpkg --set-selection" e installare i pacchetti con apt-get:

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

Prima di iniziare questo compito, consiglio di leggere e comprendere tutte le parti del post menzionato all'inizio, quindi consultare il guida di riferimento di aptitude per i dettagli sui modelli di ricerca.

    
risposta data thinkmassive 10.02.2014 - 17:35
22

Puoi guardare il apt log in /var/log/apt/ e il dpkg log in /var/log/

e puoi ottenere l'elenco dei pacchetti installati con un semplice comando:

dpkg -l | grep '^ii '
    
risposta data Maythux 13.03.2014 - 11:36
18

Per il rundown completo vedi:

link

a metà della pagina:

% Bl0ck_qu0te%     
risposta data adriano72 31.07.2013 - 15:21
18

Sono sorpreso che il comando apt-cache progettato esattamente per questo scopo non sia stato menzionato sopra ...

apt-cache pkgnames

Per maggiori informazioni, esegui apt-cache --help :

**apt-cache is a low-level tool used to query information
from APT's binary cache files

Commands:
   gencaches - Build both the package and source cache
   showpkg - Show some general information for a single package
   showsrc - Show source records
   stats - Show some basic statistics
   dump - Show the entire file in a terse form
   dumpavail - Print an available file to stdout
   unmet - Show unmet dependencies
   search - Search the package list for a regex pattern
   show - Show a readable record for the package
   depends - Show raw dependency information for a package
   rdepends - Show reverse dependency information for a package
   pkgnames - List the names of all packages in the system
   dotty - Generate package graphs for GraphViz
   xvcg - Generate package graphs for xvcg
   policy - Show policy settings

Options:
  -h   This help text.
  -p=? The package cache.
  -s=? The source cache.
  -q   Disable progress indicator.
  -i   Show only important deps for the unmet command.
  -c=? Read this configuration file
  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp
See the apt-cache(8) and apt.conf(5) manual pages for more information.
**
    
risposta data ostrokach 14.08.2015 - 21:35
16

Il comando seguente elenca anche tutti i pacchetti installati,

grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
    
risposta data Avinash Raj 30.05.2014 - 20:36
14

Per salvare un elenco di pacchetti installati in un file denominato installed_packages.txt , esegui semplicemente:

dpkg-query --list >> installed_packages.txt
    
risposta data wb9688 12.05.2015 - 10:29
14

Aiuta questo wiki della comunità - Aggiungi soluzioni aggiornate.

dpkg, xargs, & amp; apt-get

Questo comando dovrebbe realizzare la creazione di un file di testo contenente i pacchetti installati:

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

Per completare l'installazione di massa dei pacchetti elencati dovrai modificare "package_list.txt". Rimuovere le linee strane nella parte superiore del file utilizzando un editor di testo. È quindi possibile utilizzare questo comando per installare i pacchetti dal file creato utilizzando:

xargs < package_list.txt apt-get install -y

apt-cache, xargs, & amp; apt-get

Utilizza questo metodo solo se desideri che i tutti pacchetti correnti vengano installati utilizzando l'elenco ( che include installato automaticamente, ecc.)

Scrivi la risposta di "apt-cache pkgnames" in un file, chiameremo semplicemente "package_list.txt". Puoi farlo con:

apt-cache pkgnames > package_list.txt

Quindi quando vuoi installare i pacchetti da "package_list.txt" dovresti usare questo comando:

xargs < package_list.txt apt-get install -y

apt-mark, xargs, & amp; apt-get

Possiamo usare il comando 'apt-mark showmanual' per dare un elenco di pacchetti che sono stati manualmente o inizialmente installati con Ubuntu. Vogliamo inviarlo a un file chiameremo semplicemente "pacchetto-list.txt". Usa questo comando per ottenere ciò:

apt-mark showmanual > package-list.txt

Il comando che useremmo per installare i pacchetti dal file "pacchetto_list.txt" è sotto.

xargs < package_list.txt apt-get install -y

Utilità di migrazione Aptik

% Bl0ck_qu0te%

Per informazioni su Aptik, prova a visitare la sua pagina ufficiale e per un screenshot fai clic qui o guarda la fine di questa sezione.

L'installazione di Aptik è semplice. Segui questi passaggi:

  1. Aggiungi il PPA con:
    sudo add-apt-repository -y ppa:teejee2008/ppa

  2. Aggiorna apt con il comando seguente.
    sudo apt-get update

  3. Installa Aptik utilizzando:
    sudo apt-get install aptik

risposta data David your friend 05.09.2017 - 11:39
2

1. Elenca i pacchetti software installati su Ubuntu

Per elencare i pacchetti software installati sulla tua macchina puoi usare il seguente comando:

sudo apt list --installed

L'output del comando sarà molto simile al seguente, a seconda dei pacchetti attualmente installati:

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. Usa il programma LESS

Per leggere facilmente l'intero output, puoi utilizzare il programma less .

sudo apt list --installed | less

3. Utilizza il comando GREP

Puoi cercare un pacchetto specifico attraverso l'output usando il programma grep .

sudo apt list --installed | grep -i apache

4. Elenca tutti i pacchetti che includono Apache

L'output del comando precedente elencherà tutti i pacchetti che includono apache nei loro nomi.

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 supporta i pattern per abbinare i nomi e le opzioni dei pacchetti all'elenco dei pacchetti (--installed) installati, pacchetti (--upgradeable) aggiornabili o tutte le versioni del pacchetto (--all-versions) disponibili.

5. Utilizzare il programma DPKG

Un'altra alternativa che puoi usare per elencare i pacchetti software installati sul tuo Ubuntu VPS è il comando dpkg .

sudo dpkg -l

L'output del comando ti fornirà informazioni come il nome del pacchetto, la versione, l'architettura e una breve descrizione del pacchetto. Ovviamente, puoi utilizzare nuovamente il programma grep per cercare un pacchetto specifico.

sudo dpkg -l | grep -i apache

L'output dovrebbe essere simile a quello seguente:

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
.

Con la competizione di questo tutorial, hai imparato con successo come elencare i pacchetti installati in Ubuntu.

    
risposta data 19.10.2018 - 08:54
0

Penso che sia interessante notare che apt list --installed o dpkg-query --list effettivamente usano il file chiamato /var/lib/dpkg/status in dietro, dove sono riportate tutte le informazioni sui pacchetti.

Quindi, se vuoi gestire l'elenco dei pacchetti super esteso solo cat /var/lib/dpkg/status .

Nota: non modificare il file /var/lib/dpkg/status .

    
risposta data prosti 16.08.2018 - 21:44
0

Il pacchetto dctrl-tools fornisce lo strumento grep-status per ottenere l'elenco dei pacchetti contrassegnati come installati sul tuo sistema:

sudo apt install dctrl-tools

Utilizzo:

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

vedi: man dctrl-tools

    
risposta data 22.11.2018 - 12:11

Leggi altre domande sui tag