Gestisci i pacchetti dalla riga di comando
Il modo più comune per gestire pacchetti o software è da Synaptic Package Manager. È lo strumento GUI più semplice per installare e rimuovere software dal tuo sistema debian/ubuntu.
Tuttavia, per coloro che preferiscono la console, ci sono molti strumenti per svolgere il lavoro con la stessa facilità. In questo tutorial esamineremo apt, lo strumento di gestione dei pacchetti utilizzato su Ubuntu.
Sebbene fossi un utente Synaptic in precedenza, quando ho iniziato con gli strumenti da riga di comando, ho trovato gli strumenti da riga di comando più semplici e veloci.
Su Ubuntu ci sono 3 comandi principali per gestire i pacchetti. Questi sono dpkg, apt-* e aptitude.
In questo tutorial daremo una rapida occhiata ad alcuni esempi del comando apt-get che può essere utilizzato per installare e gestire i pacchetti.
Esempi di comando Apt-get
Il comando apt-get può essere utilizzato per installare, rimuovere e aggiornare i pacchetti. Può anche aggiornare l'intera distribuzione a una nuova versione.
1. Dì Moo con apt-get
Questa è la cosa più importante da fare con apt-get. Cioè, per dire Moo....
$ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"... $
2. Installa un nuovo pacchetto
Questo è il comando più comune. Il comando apt-get install installerà il pacchetto e inserirà tutte le dipendenze necessarie, ovvero gli altri pacchetti necessari per eseguire il pacchetto correntemente richiesto. L'utilizzo è di nuovo, molto semplice
$ sudo apt-get install apache2
Per installare più pacchetti in una volta, menzionali tutti separati da uno spazio. Ad esempio:
$ sudo apt-get install php-fpm php-curl
3. Aggiorna il pacchetto selezionato
Per aggiornare un pacchetto selezionato, installa di nuovo
$ sudo apt-get install nginx
Questo aggiornerà il pacchetto se gli aggiornamenti sono disponibili dal repository.
4. Ottenere il codice sorgente di un pacchetto
Il codice sorgente di qualsiasi pacchetto può essere scaricato utilizzando il seguente comando
$ apt-get source gbrainy
5. Rimuovere un pacchetto installato
Usa l'opzione di rimozione con apt-get per rimuovere un pacchetto
$ apt-get remove apache2
Esempi di comandi Apt-cache
Apt-cache è un comando fornito con apt-get e può essere utilizzato per controllare le informazioni sui pacchetti.
1. Trova le dipendenze di un pacchetto
Per trovare le dipendenze di un determinato pacchetto, usa il comando apt-cache
$ apt-cache depends apache2 apache2 |Depends: apache2-mpm-worker |Depends: apache2-mpm-prefork |Depends: apache2-mpm-event Depends: apache2-mpm-itk Depends: apache2.2-common Conflicts: apache2:i386
Dirà da quali pacchetti extra dipende un determinato pacchetto e quali pacchetti sono in conflitto con esso. Elencherà anche i pacchetti che devono essere rimossi durante l'installazione di questo pacchetto e tutti i pacchetti consigliati per l'installazione con questo pacchetto.
2. Cerca pacchetti
Il comando apt-cache può essere utilizzato per cercare i pacchetti dalla console. Ciò è utile quando si lavora su un server remoto in cui non è disponibile una GUI. Ma inoltre, la console è più potente e veloce.
$ apt-cache search nginx
Il comando apt-cache per impostazione predefinita ricerca sia il nome del pacchetto che la descrizione. Quindi, per mettere a punto i risultati, dobbiamo filtrarli ulteriormente usando grep.
apt-cache search nginx | grep nginx lua-nginx-memcached - Pure Lua memcached client driver for the nginx embedded Lua language lua-nginx-redis - Pure Lua redis client driver for the nginx embedded Lua language nginx - small, powerful, scalable web/proxy server nginx-common - small, powerful, scalable web/proxy server - common files nginx-doc - small, powerful, scalable web/proxy server - documentation nginx-extras - nginx web/proxy server (extended version) nginx-extras-dbg - nginx web/proxy server (extended version) - debugging symbols nginx-full-dbg - nginx web/proxy server (standard version) - debugging symbols nginx-light - nginx web/proxy server (basic version) nginx-light-dbg - nginx web/proxy server (basic version) - debugging symbols nginx-naxsi - nginx web/proxy server (version with naxsi) nginx-naxsi-dbg - nginx web/proxy server (version with naxsi) - debugging symbols nginx-naxsi-ui - nginx web/proxy server - naxsi configuration front-end nginx-full - nginx web/proxy server (standard version)
Il comando apt-cache search supporta l'espressione regolare.
$ apt-cache search ^nginx$ nginx - small, powerful, scalable web/proxy server nginx-extras - nginx web/proxy server (extended version) nginx-light - nginx web/proxy server (basic version) nginx-naxsi - nginx web/proxy server (version with naxsi) nginx-naxsi-ui - nginx web/proxy server - naxsi configuration front-end nginx-full - nginx web/proxy server (standard version)
apt-cache show <package> Shows the full description of <package>. apt-cache showpkg <package> Shows a lot more detail about <package>, and its relationships to other packages.
3. A quale repository appartiene un pacchetto
Gli utenti spesso aggiungono repository aggiuntivi per installare software da altre fonti. Se vogliamo scoprire da quale repository proviene un pacchetto, il comando apt-cache può dirlo.
$ apt-cache policy wine wine: Installed: (none) Candidate: 1.4.1-0ubuntu5 Version table: 1.4.1-0ubuntu5 0 500 http://in.archive.ubuntu.com/ubuntu/ raring/universe amd64 Packages
L'output sopra mostra che il pacchetto wine è fornito dal raro repository di Ubuntu.
Facciamo un altro esempio
$ apt-cache policy google-chrome-stable google-chrome-stable: Installed: 28.0.1500.45-r205727 Candidate: 28.0.1500.70-r209565 Version table: 28.0.1500.70-r209565 0 500 http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages *** 28.0.1500.45-r205727 0 100 /var/lib/dpkg/status
L'output sopra mostra che Google Chrome è fornito da http://dl.google.com/linux/chrome/deb/ deposito.
Comando Apt-add-repository
Le sorgenti del software sono memorizzate nel file chiamato /etc/apt/sources.list . Quindi se hai bisogno di aggiungere un nuovo repository
$ sudo apt-add-repository ppa:lubuntu-desktop/ppa
O se è un URL completo, allora
add-apt-repository 'deb uri distribution [component1] [component2] [...]'
Ad esempio
$ add-apt-repository 'deb http://extras.ubuntu.com/ubuntu quantal main' $ add-apt-repository 'deb-src http://extras.ubuntu.com/ubuntu quantal main'
Atteggiamento
Aptitude è l'altro comando che può essere utilizzato per gestire i pacchetti dalla riga di comando proprio come dpkg e apt-get. L'attitudine è considerata migliore e superiore ad apt-get per una serie di motivi. Un vantaggio di aptitude è che quando si rimuove un determinato pacchetto, aptitude rimuoverà anche tutte le dipendenze di quel pacchetto, in modo che non vengano lasciate come pacchetti orfani. Apt-get e synaptic non possono farlo e portano a pacchetti inutilizzati/orfani.
Installa un pacchetto
Come apt-get, usa semplicemente il comando install con aptitude per installare qualsiasi pacchetto
$ sudo aptitude install firestarter
Rimuovi i pacchetti
Ancora una volta, come apt-get, usa l'opzione di rimozione.
$ sudo aptitude remove firestarter
Cerca i pacchetti
Una delle attività più utili e frequenti è cercare i pacchetti e installarne quelli necessari. La ricerca dalla riga di comando è molto, molto utile su un server remoto in cui non hai una GUI e anche su un sistema locale, dove non vuoi avviare il gestore di pacchetti synaptic.
Il comando seguente cercherà tutti i pacchetti che hanno la parola nginx nel nome del pacchetto.
$ aptitude search nginx
Quanto segue cercherà i pacchetti che hanno php o admin nei loro nomi.
$ aptitude search php admin
Per cercare tutti i termini di ricerca insieme, racchiudi tra virgolette singole. Quanto segue cercherà tutti i pacchetti che hanno sia php che admin nei loro nomi
$ aptitude search 'php admin' p mlmmj-php-web-admin - administrative web interface for mlmmj, written p phpldapadmin - web based interface for administering LDAP serve i phpmyadmin - MySQL web administration tool i phppgadmin - web-based administration tool for PostgreSQL
Per cercare sia il nome del pacchetto che la descrizione, usa il modificatore d.
aptitude search nginx ~dnginx aptitude search 'firmware ~dwireless'
La funzione di ricerca supporta anche regex
aptitude search ^nginx$
Quindi costruisci qualsiasi tipo di espressione regolare di cui hai bisogno e cerca subito.
Cerca i pacchetti installati
Diciamo che vogliamo cercare tutti i pacchetti con il nome 'apache' al suo interno. Il comando aptitude può essere utilizzato con l'interruttore i come mostrato di seguito
aptitude search ~inginx aptitude search '~inginx'
$ aptitude search '~iapache' i apache2 - Apache HTTP Server metapackage i A apache2-mpm-prefork - Apache HTTP Server - traditional non-threaded model i apache2-suexec - Standard suexec program for Apache 2 mod_suexec .....
Oppure usa grep invece di i switch.
$ aptitude search nginx | grep ^i i nginx - small, powerful, scalable web/proxy server i A nginx-common - small, powerful, scalable web/proxy server i A nginx-full - nginx web/proxy server (standard version)
Facile e veloce.
Reinstalla il pacchetto
Per reinstallare un pacchetto usando aptitude usa il comando reinstall
aptitude reinstall <package>
Aggiorna distribuzione
L'intero aggiornamento della distribuzione può essere eseguito anche dal terminale. Ad esempio, quando devi aggiornare Ubuntu sul tuo server. Ecco il comando
# prepare the system sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade # upgrade distro sudo apt-get install update-manager-core sudo do-release-upgrade
Facile!!
Elenca i repository
Per elencare i repository correnti, leggi i file /etc/apt/sources.list e /etc/apt/sources.list.d/* dalla riga di comando e usa grep per filtrare di conseguenza. Ecco alcuni esempi
Quanto segue elencherà i repository deb (e non il deb-src) dal file /etc/apt/sources.list.
$ cat /etc/apt/sources.list | grep "^deb\s" deb http://in.archive.ubuntu.com/ubuntu/ raring main restricted deb http://in.archive.ubuntu.com/ubuntu/ raring-updates main restricted deb http://in.archive.ubuntu.com/ubuntu/ raring universe deb http://in.archive.ubuntu.com/ubuntu/ raring-updates universe deb http://in.archive.ubuntu.com/ubuntu/ raring multiverse .....
Quanto segue elencherà i repository deb (e non il deb-src) dal file /etc/apt/sources.list e /etc/apt/sources.d/*.
$ grep -h "^deb\s" /etc/apt/sources.list /etc/apt/sources.list.d/* deb http://in.archive.ubuntu.com/ubuntu/ raring main restricted deb http://in.archive.ubuntu.com/ubuntu/ raring-updates main restricted deb http://in.archive.ubuntu.com/ubuntu/ raring universe deb http://in.archive.ubuntu.com/ubuntu/ raring-updates universe deb http://in.archive.ubuntu.com/ubuntu/ raring multiverse deb http://in.archive.ubuntu.com/ubuntu/ raring-updates multiverse .....
Per elencare entrambi i repository deb e deb-src
$ grep -h ^deb /etc/apt/sources.list /etc/apt/sources.list.d/* deb http://in.archive.ubuntu.com/ubuntu/ raring main restricted deb-src http://in.archive.ubuntu.com/ubuntu/ raring main restricted deb http://in.archive.ubuntu.com/ubuntu/ raring-updates main restricted deb-src http://in.archive.ubuntu.com/ubuntu/ raring-updates main restricted deb http://in.archive.ubuntu.com/ubuntu/ raring universe
Quindi goditi il terminale