Risposte:
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 apt
le 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 -l
volte 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
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 -S
ma per i pacchetti non installati), installare apt-file
ed eseguire:
apt-file search /path/to/file
which
insieme a dpkg -S. ad es .: per eseguibili che vivono in pacchetti con nomi diversi, come:dpkg -S `which uname`
$ 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
...
apt-get changelog sudo
funziona anche.
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-file
ora è in grado di gestire il database di un utente, quindi non è necessario eseguire il root update
.
apt-file
è abbastanza carino. grazie per la condivisione.
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
Mi piace pensare a tre diversi tipi di pacchetti:
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.
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