Non capisco perché ci sono due diversi programmi in un'installazione minima per installare il software. Non fanno la stessa cosa? C'è una grande differenza? Ho letto ovunque per usare aptitude su apt-get ma non conosco ancora la differenza
Non capisco perché ci sono due diversi programmi in un'installazione minima per installare il software. Non fanno la stessa cosa? C'è una grande differenza? Ho letto ovunque per usare aptitude su apt-get ma non conosco ancora la differenza
Risposte:
aptitude è un wrapper per dpkg proprio come apt-get / apt-cache, ma è uno strumento one-stop-shop per la ricerca / installazione / rimozione / interrogazione. Alcuni esempi che apt potrebbe non fornire:
$ aptitude why libc6
i w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.
$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-perl (< 1.15-2),
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs
on the system. This package includes shared versions of the standard
C library and the standard math library, as well as many others.
aptitude
sanno che anche gli ultimi apt
non possono fare: aptitude search '~i linux'
cerca pacchetti con linux
nome o descrizione installati; aptitude search '~o'
elenca i pacchetti obsoleti (pacchetti installati che non sono più forniti da nessun repository); aptitude search '!~M ~i'
mostra i pacchetti che non sono contrassegnati come installati automaticamente; aptitude search '~i lib.*-dev'
mostra le librerie di sviluppo installate e puoi sostituirle search
con markauto
o unmarkauto
per contrassegnare questi pacchetti come installati automaticamente o manualmente.
mikeage@linode ~$ aptitude -h | tail -n 1
This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.
/----\
-------/ \
/ \
/ |
-----------------/ --------\
----------------------------------------------
mikeage@linode ~$ aptitude -vvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
Lo strumento ufficiale attualmente utilizzato nel programma di installazione di Debian e raccomandato nelle note di rilascio è aptitude
.
Aptitude offre un'interfaccia curses (se eseguita senza alcun parametro) e un'interfaccia a riga di comando che può fare quasi tutto ciò che apt-cache
/ apt-get
fa. Ha anche un miglior risolutore di dipendenze che ti consente di navigare tra più soluzioni. Anche quando si utilizza la versione da riga di comando, è possibile interagire con la soluzione proposta e fornire ordini o suggerimenti supplementari (come l'installazione o la rimozione di un pacchetto consigliato da un altro).
Ma aptitude si basa sulla libreria libapt (non è un wrapper diretto di dpkg) e come tale dipende dal apt
pacchetto, quindi non è possibile installare aptitude senza apt-get (che è anche nel pacchetto apt).
$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get
Per saperne di più su come interagiscono apt / dpkg / aptitude puoi controllare il diagramma realizzato da Daniel Burrows (autore principale di aptitude). Un altro diagramma presenta le informazioni memorizzate dai vari strumenti di gestione dei pacchetti: una mappa dei file di stato apt e dpkg .
Puoi anche leggere il mio articolo apt-get, aptitude, ... scegli il gestore pacchetti giusto per te
aptitude
ricorda quali pacchetti sono stati installati deliberatamente e quali sono stati installati automaticamente per soddisfare le dipendenze. Al momento della rimozione di un pacchetto aptitude rimuoverà quei pacchetti installati automaticamente per mantenere il sistema in ordine. apt-get
non è così intelligente.
aptitude
diventerà rapidamente uno strumento indispensabile dopo aver utilizzato repository diversi con versioni diverse di un pacchetto. Immagina di lavorare con backports.org o repository non ufficiali come debian-multimedia.org . Quindi aptitude
mostrerà (nella parte inferiore della pagina dei dettagli di un determinato pacchetto) il numero di versione disponibile e ti permetterà di selezionarne uno.
Se ti trovi in una situazione in cui i programmi sono in conflitto a causa di tale utilizzo di repository non ufficiali, vedrai un display "Broken: ..." in alto. È possibile digitare l ~ b (limit / flag / broken) e ottenere semplicemente un elenco di pacchetti in conflitto tra loro. Semplifica molto la risoluzione manuale del conflitto.
Inoltre è possibile utilizzare " l
" per limitare l'elenco dei pacchetti. Immagina di cercare pacchetti che iniziano con " openoffice ", quindi premi " l
" e digita " ^openoffice
" (è un'espressione regolare) e vedrai solo quei pacchetti. Scegli un "elenco di pacchetti flat" dal menu e raggiungerai rapidamente il tuo obiettivo.
Il manuale completo è molto ampio e offre molti più filtri e possibilità. Anche se non li conosci aptitude
è un comodo sostituto apt-get
e puoi usarlo con parametri comuni come:
aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)
apt-get autoremove
ora rimuovo i pacchetti installati come dipendenze di un pacchetto che è stato rimosso.
apt
ed è possibile fare una miscela di roba che apt-get
e apt-cache
usato per fare. Ad esempio, apt search foo
elencherà i pacchetti che contengono foo
nel nome o nella descrizione. apt install foo
installerà il pacchetto chiamato foo
se disponibile e apt policy foo
elencherà la versione attualmente installata e tutte le versioni disponibili del pacchetto foo
.
aptitude
può ancora fare di più, apt
ma la pianura apt
è spesso molto più veloce.
Oltre a fornire un'interfaccia utente della console carina quando si esegue aptitude
senza argomenti, combina i vari apt-*
comandi (e dselect
) in un'unica utility.
Per cercare un pacchetto e installarlo, usando apt-get:
apt-cache search somepkg
apt-get install somepkg
..ma con aptitude è lo stesso comando:
aptitude search somepkg
aptitude install somepkg
aptitude
ha alcune funzionalità aggiuntive, come aptitude changelog somepkg
e cose come tenere i pacchetti (per impedire che vengano aggiornati) - niente che non si possa ottenere tramite altri comandi / metodi, è solo più unificato e piacevole da usare.
come sai quando installi un pacchetto se ha bisogno di altri pacchetti (dipendenze), anche questi verranno scaricati e installati. aptitude tiene traccia, al momento dell'installazione, dei pacchetti forniti con quello installato, quindi quando rimuovi quest'ultima aptitude ti chiederà la rimozione delle altre dipendenze "orfane" (ora inutilizzate). apt-get li manterrà nel tuo sistema in silenzio se rimuovi il pacchetto "principale".
sembra che le ultime versioni di apt-get abbiano una funzionalità simile: http://www.psychocats.net/ubuntu/aptitude
aptitude
o apt
in realtà non mantiene l'elenco dei pacchetti installati come dipendenze per un determinato pacchetto. Tiene semplicemente traccia di un pacchetto installato manualmente o automaticamente. E se un pacchetto è stato contrassegnato come installato automaticamente e nessun altro pacchetto dipende o lo consiglia, verrà rimosso con apt autoremove
o aptitude dist-upgrade
.
La differenza più grande è che aptitude è progettato per essere interattivo dove gli strumenti apt sono più adatti per il lavoro di scripting. È possibile utilizzare quest'ultimo, cioè gli strumenti apt, in modo interattivo bene con uno sforzo molto maggiore per ottenere gli stessi risultati forniti da aptitude. Se per qualche motivo dovessi accontentarti di un solo strumento o di un altro, devi decidere quanti sforzi vuoi dedicare alla gestione dei pacchetti.
Uno dei seri vantaggi di attitudine è la sua capacità di calcolare le dipendenze. In primo luogo è in grado di gestire complicate interdipendenze senza intervento da parte dell'utente, che spesso fallisce apt-get. Ma se non ti piace la soluzione che ti ha presentato (e valuterà la propria soluzione per dimostrare quanto è bravo a pensare), puoi chiedergli di andare via e trovare un'altra soluzione per risolvere il conflitto.
Fa davvero una straordinaria gestione dei pacchetti.
La differenza più grande è: digitare "aptitude" senza parametri.
Ti dà un'interfaccia utente basata su testo, puoi usare il keybord per cercare / navigare ecc. Vedi informazioni su dipendenze, dipendenze inverse, tutte le versioni disponibili di un pacchetto e puoi fare qualsiasi operazione di gestione dei pacchetti su di loro da quella schermata.
È possibile premere "g" per rivedere le modifiche, modificare le aggiunte e le rimozioni del pacchetto, se necessario, e applicare tutte le operazioni in sospeso.
Un ottimo modo visivo di gestione dei pacchetti tramite una connessione ssh o un semplice vecchio terminale.