Utili comandi apt (dpkg) [chiuso]


Risposte:


7

Alcuni comandi che uso spesso:

per vedere le dipendenze e le dipendenze inverse:

apt-cache [--important] [--installed] [--recurse] depends $package
apt-cache rdepends $package

Per rimuovere un pacchetto, tutti i pacchetti di autoremove e tutti i file di configurazione correlati:

sudo apt-get --purge --auto-remove purge $package

Per visualizzare aptle opzioni di configurazione effettive :

apt-config dump | less

Per modificare un'opzione dalla riga di comando

$ apt-config dump | grep -i recommend
APT::Install-Recommends "1";
$ sudo apt-get -o APT::Install-Recommends="0" install $package

Questo era solo un esempio di come specificare le opzioni APT dalla riga di comando, per evitare l'installazione di pacchetti consigliati, è possibile utilizzare:

sudo apt-get --no-install-recommends $package

Per vedere tutti i pacchetti locali / obsoleti:

aptitude search ~o

Per vedere i pacchetti rimossi con configurazione residua:

aptitude search ~c

e per rimuoverli

sudo aptitude purge ~c

Per ottenere un elenco di tutti i pacchetti installati (a dpkg -lvolte può fornire output di colonne troncate)

dpkg --get-selections | awk '{ print $1 }'

o

dpkg-query -Wf '${Package}\n'  # other fields available, see man page

Per disassemblare, modificare quindi riassemblare un pacchetto

dpkg-deb -x file.deb ./dir
cd dir 
dpkg-deb -e ../file.deb
# apply your modification, then... 
cd ..
dpkg-deb -b dir file-new.deb

4

Due che uso molto sono: -

apt-get autoremove <packagename>

Il che rimuoverà il pacchetto e tutte le dipendenze inutilizzate, il che è utile se provi un'app, quindi decidi di non averne bisogno e desideri che anche la cruft venga rimossa.

dpkg -S /path/to/file

Il che mi dice con quale pacchetto è stato installato un file.

Finalmente un altro ..

dpkg -l <packagename> | grep ^ii

Elenca i pacchetti, ma solo quelli che hanno lo stato ii, il che significa che sono installati, quindi non mostrerà cose che ho rimosso.

Se si desidera ottenere il nome del pacchetto per un file che non è stato installato ( dpkg -Sma per i pacchetti non installati), installare apt-fileed eseguire:

apt-file search /path/to/file

Trovo utile usare whichinsieme a dpkg -S. ad es .: per eseguibili che vivono in pacchetti con nomi diversi, come:dpkg -S `which uname`
Benjamin Rubin

Ooh, sì, anche questo è buono.
Popey,

3

Visualizza il ChangeLog di un pacchetto

$ aptitude changelog <pkgname>

Esempio:

$ aptitude changelog sudo
sudo (1.7.0-1ubuntu2.4) karmic-security; urgency=low

  * SECURITY UPDATE: properly handle multiple PATH variables when using
    secure_path in env.c
    - Adapted http://www.sudo.ws/repos/sudo/raw-rev/a09c6812eaec
    - CVE-2010-1646
...

2
A partire da Ubuntu 11.04 Natty, apt-get changelog sudofunziona anche.
Lekensteyn,

3

Installa apt-file, quindi esegui sudo apt-file update. Ora puoi cercare file in pacchetti che non hai nemmeno installato.

Utile anche se è necessario conoscere informazioni sui pacchetti in altre versioni di Ubuntu è rmadison, che si trova nel pacchetto devscripts. Forniscilo con un nome di pacchetto come argomento e ti dirà quali versioni di quel pacchetto esistono in ogni versione corrente di Ubuntu e in quale sezione di repository si trova il pacchetto.

Esempio:

[bnrubin@server:~/]$ rmadison cowsay
    cowsay |     3.03-8 | dapper/universe | source, all
    cowsay |     3.03-9 | hardy/universe | source, all
    cowsay |   3.03-9.2 | jaunty/universe | source, all
    cowsay |   3.03-9.2 | karmic/universe | source, all
    cowsay |   3.03-9.2 | lucid/universe | source, all
    cowsay | 3.03+dfsg1-2 | maverick/universe | source, all
    cowsay | 3.03+dfsg1-2 | natty/universe | source, all

apt-fileora è in grado di gestire il database di un utente, quindi non è necessario eseguire il root update.
enzotib,

apt-file è abbastanza carino. grazie per la condivisione.
Gödel,

1

Per ottenere i comandi dell'elenco inizia con 'apt-', procedi come segue. aprire un terminale e digitare 'apt-' e premere due volte il tasto TAB per elencare tutti i comandi che iniziano con 'apt-'.

Uscita campione:

apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

Per ottenere informazioni dettagliate è possibile controllare la pagina man di tale comando specifico

per esempio: man apt-get


1

Mi piace pensare a tre diversi tipi di pacchetti:

  • Pacchetti di sistema (pacchetti essenziali o pacchetti con standard di priorità o superiore)
  • Pacchetti utente (pacchetti installati manualmente con priorità opzionale o extra)
  • Dipendenze e raccomandazioni (pacchetti installati automaticamente / tutto ciò che non è un sistema o un pacchetto utente)

Per mostrare tutti i "pacchetti di sistema" che puoi usare

aptitude search '(~pstandard|~pimportant|~prequired|~E)'

Mi piace averli installati tutti e contrassegnati come installati manualmente.

aptitude install '(~pstandard|~pimportant|~prequired|~E)!~i'
aptitude unmarkauto '(~pstandard|~pimportant|~prequired|~E)~i~M'

Per mostrare tutti i "pacchetti utente" usare

aptitude search '~i!~M!(~pstandard|~pimportant|~prequired|~E)'

In questo elenco ci dovrebbero essere solo i pacchetti che sai di volere. Tutti gli altri pacchetti sono probabilmente solo dipendenze o raccomandazioni di altri pacchetti, è possibile contrassegnarli come installati automaticamente

aptitude markauto libsomething

Dai un'occhiata al riferimento ai termini di ricerca di aptitude e che
cos'è un pacchetto essenziale, obbligatorio, importante, standard, opzionale o extra? per informazioni di base.


0
  • Aggiorna i pacchetti che verrebbero trattenuti perché rimuoveranno altri pacchetti o perché è un aggiornamento del kernel:

    sudo apt-get dist-upgrade
    
  • Elimina un pacchetto e la sua configurazione.

    sudo apt-get purge package
    
  • Mostra i dettagli di un pacchetto come noto nel database dei pacchetti, inclusi sezione, versione, dipendenze, manutentore e descrizione.

    apt-cache show package
    
  • Elenca i file in un pacchetto installato

    dpkg -L pkg
    
  • Aggiorna tutti i pacchetti

    sudo apt-get upgrade
    

-2
dpkg -i --force-architecture something.i386.deb

Per l'installazione di alcuni debs i386 su amd64.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.