25 Comandes bàsiques útils d'APT-GET i APT-CACHE per a la gestió de paquets


Aquest article explica la rapidesa amb què podeu aprendre a instal·lar, eliminar, actualitzar i cercar paquets de programari mitjançant les ordres apt-get i apt-cache des de la línia d'ordres. Aquest article ofereix algunes ordres útils que us ajudaran a gestionar la gestió de paquets en sistemes basats en Debian/Ubuntu.

La utilitat apt-get és un programa de línia d'ordres de gestió de paquets potent i gratuït, que s'utilitza per treballar amb la biblioteca APT (Advanced Packaging Tool) d'Ubuntu per dur a terme la instal·lació de nous paquets de programari, eliminar paquets de programari existents, actualitzar els paquets de programari existents i fins i tot. acostumat a actualitzar tot el sistema operatiu.

L'eina de línia d'ordres apt-cache s'utilitza per cercar la memòria cau del paquet de programari apt. En paraules senzilles, aquesta eina s'utilitza per cercar paquets de programari, recopilar informació dels paquets i també s'utilitza per cercar quins paquets disponibles estan preparats per a la instal·lació en sistemes basats en Debian o Ubuntu.

1. Com puc llistar tots els paquets disponibles?

Per llistar tots els paquets disponibles, escriviu l'ordre següent.

$ apt-cache pkgnames
esseract-ocr-epo
pipenightdreams
mumudvb
tbb-examples
libsvm-java
libmrpt-hmtslam0.9
libboost-timer1.50-dev
kcm-touchpad
g++-4.5-multilib
...

2. Com puc saber el nom del paquet i la descripció del programari?

Per esbrinar el nom del paquet i amb la seva descripció abans d'instal·lar-lo, utilitzeu el senyalador cerca. Si feu servir search amb apt-cache, es mostrarà una llista de paquets coincidents amb una breu descripció. Suposem que us agradaria esbrinar la descripció del paquet vsftpd, llavors l'ordre seria.

$ apt-cache search vsftpd
vsftpd - lightweight, efficient FTP server written for security
ccze - A robust, modular log coloriser
ftpd - File Transfer Protocol (FTP) server
yasat - simple stupid audit tool

Per trobar i llistar tots els paquets que comencen per vsftpd, podeu utilitzar l'ordre següent.

$ apt-cache pkgnames vsftpd
vsttpd

3. Com comprovo la informació del paquet?

Per exemple, si voleu comprovar la informació del paquet juntament amb una breu descripció, digueu (número de versió, sumes de comprovació, mida, mida instal·lada, categoria, etc.). Utilitzeu la subordre mostrar com es mostra a continuació.

$ apt-cache show netcat
Package: netcat
Priority: optional
Section: universe/net
Installed-Size: 30
Maintainer: Ubuntu Developers <[email >
Original-Maintainer: Ruben Molina <[email >
Architecture: all
Version: 1.10-40
Depends: netcat-traditional (>= 1.10-39)
Filename: pool/universe/n/netcat/netcat_1.10-40_all.deb
Size: 3340
MD5sum: 37c303f02b260481fa4fc9fb8b2c1004
SHA1: 0371a3950d6967480985aa014fbb6fb898bcea3a
SHA256: eeecb4c93f03f455d2c3f57b0a1e83b54dbeced0918ae563784e86a37bcc16c9
Description-en: TCP/IP swiss army knife -- transitional package
 This is a "dummy" package that depends on lenny's default version of
 netcat, to ease upgrades. It may be safely removed.
Description-md5: 1353f8c1d079348417c2180319bdde09
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu

4. Com comprovo les dependències per a paquets específics?

Utilitzeu la subordre showpkg per comprovar les dependències de paquets de programari concrets. si aquests paquets de dependències estan instal·lats o no. Per exemple, utilitzeu l'ordre showpkg juntament amb el nom del paquet.

$ apt-cache showpkg vsftpd
Package: vsftpd
Versions: 
2.3.5-3ubuntu1 (/var/lib/apt/lists/in.archive.ubuntu.com_ubuntu_dists_quantal_main_binary-i386_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/in.archive.ubuntu.com_ubuntu_dists_quantal_main_binary-i386_Packages
                  MD5: 81386f72ac91a5ea48f8db0b023f3f9b
 Description Language: en
                 File: /var/lib/apt/lists/in.archive.ubuntu.com_ubuntu_dists_quantal_main_i18n_Translation-en
                  MD5: 81386f72ac91a5ea48f8db0b023f3f9b

Reverse Depends: 
  ubumirror,vsftpd
  harden-servers,vsftpd
Dependencies: 
2.3.5-3ubuntu1 - debconf (18 0.5) debconf-2.0 (0 (null)) upstart-job (0 (null)) libc6 (2 2.15) libcap2 (2 2.10) libpam0g (2 0.99.7.1) libssl1.0.0 (2 1.0.0) libwrap0 (2 7.6-4~) adduser (0 (null)) libpam-modules (0 (null)) netbase (0 (null)) logrotate (0 (null)) ftp-server (0 (null)) ftp-server (0 (null)) 
Provides: 
2.3.5-3ubuntu1 - ftp-server 
Reverse Provides:

5. Com comprovo les estadístiques de la memòria cau

La subordre stats mostrarà estadístiques generals sobre la memòria cau. Per exemple, l'ordre següent mostrarà El nombre total de paquets és el nombre de paquets que s'han trobat a la memòria cau.

$ apt-cache stats
Total package names: 51868 (1,037 k)
Total package structures: 51868 (2,490 k)
  Normal packages: 39505
  Pure virtual packages: 602
  Single virtual packages: 3819
  Mixed virtual packages: 1052
  Missing: 6890
Total distinct versions: 43015 (2,753 k)
Total distinct descriptions: 81048 (1,945 k)
Total dependencies: 252299 (7,064 k)
Total ver/file relations: 45567 (729 k)
Total Desc/File relations: 81048 (1,297 k)
Total Provides mappings: 8228 (165 k)
Total globbed strings: 286 (3,518 )
Total dependency version space: 1,145 k
Total slack space: 62.6 k
Total space accounted for: 13.3 M

6. Com actualitzar els paquets del sistema

L'ordre actualitzar s'utilitza per tornar a sincronitzar els fitxers d'índex de paquets a partir de les seves fonts especificades al fitxer /etc/apt/sources.list. L'ordre d'actualització va obtenir els paquets de les seves ubicacions i actualitzar els paquets a una versió més nova.

$ sudo apt-get update
[sudo] password for tecmint: 
Ign http://security.ubuntu.com quantal-security InRelease                      
Get:1 http://security.ubuntu.com quantal-security Release.gpg [933 B]          
Get:2 http://security.ubuntu.com quantal-security Release [49.6 kB]            
Ign http://in.archive.ubuntu.com quantal InRelease                             
Ign http://in.archive.ubuntu.com quantal-updates InRelease                     
Get:3 http://repo.varnish-cache.org precise InRelease [13.7 kB]                
Ign http://in.archive.ubuntu.com quantal-backports InRelease                   
Hit http://in.archive.ubuntu.com quantal Release.gpg                           
Get:4 http://security.ubuntu.com quantal-security/main Sources [34.8 kB]       
Get:5 http://in.archive.ubuntu.com quantal-updates Release.gpg [933 B]         
...

7. Com actualitzar paquets de programari

L'ordre actualitzar s'utilitza per actualitzar tots els paquets de programari instal·lats actualment al sistema. En cap cas, els paquets instal·lats actualment no s'eliminen o els paquets que encara no estan instal·lats ni es recuperen i s'instal·len per satisfer les dependències d'actualització.

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages have been kept back:
  linux-headers-generic linux-image-generic wine1.5 wine1.5-i386
The following packages will be upgraded:
  activity-log-manager-common activity-log-manager-control-center adium-theme-ubuntu alacarte
  alsa-base app-install-data-partner appmenu-gtk appmenu-gtk3 apport apport-gtk apt
  apt-transport-https apt-utils aptdaemon aptdaemon-data at-spi2-core bamfdaemon base-files bind9-host
   ...

Tanmateix, si voleu actualitzar, sense preocupar-vos de si s'afegiran o s'eliminaran paquets de programari per complir les dependències, utilitzeu la subordre dist-upgrade.

$ sudo apt-get dist-upgrade

8. Com instal·lo o actualitzo paquets específics?

La subordre instal·lar és rastrejada per un o més paquets que volen instal·lar-se o actualitzar.

$ sudo apt-get install netcat
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  netcat-traditional
The following NEW packages will be installed:
  netcat netcat-traditional
0 upgraded, 2 newly installed, 0 to remove and 328 not upgraded.
Need to get 67.1 kB of archives.
After this operation, 186 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/universe netcat-traditional i386 1.10-40 [63.8 kB]
Get:2 http://in.archive.ubuntu.com/ubuntu/ quantal/universe netcat all 1.10-40 [3,340 B]
Fetched 67.1 kB in 1s (37.5 kB/s)
Selecting previously unselected package netcat-traditional.
(Reading database ... 216118 files and directories currently installed.)
Unpacking netcat-traditional (from .../netcat-traditional_1.10-40_i386.deb) ...
Selecting previously unselected package netcat.
Unpacking netcat (from .../netcat_1.10-40_all.deb) ...
Processing triggers for man-db ...
Setting up netcat-traditional (1.10-40) ...
Setting up netcat (1.10-40) ...

9. Com puc instal·lar diversos paquets?

Podeu afegir més d'un nom de paquet juntament amb l'ordre per instal·lar diversos paquets alhora. Per exemple, l'ordre següent instal·larà els paquets 'goaccess'.

$ sudo apt-get install nethogs goaccess
Reading package lists... Done
Building dependency tree       
Reading state information... Done
goaccess is already the newest version.
nethogs is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.

10. Com instal·lar diversos paquets utilitzant el comodí

Amb l'ajuda de l'expressió regular, podeu afegir diversos paquets amb una cadena. Per exemple, utilitzem * comodí per instal·lar diversos paquets que continguin la cadena '*nom*', el nom seria 'nom-paquet'.

$ sudo apt-get install '*name*'

11. Com instal·lar paquets sense actualitzar

L'ús de la subordre –no-upgrade impedirà que els paquets ja instal·lats s'actualitzin.

$ sudo apt-get install packageName --no-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Skipping vsftpd, it is already installed and upgrade is not set.
0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.

12. Com actualitzar només paquets específics

L'ordre –only-upgrade no instal·la nous paquets, sinó que només actualitza els paquets ja instal·lats i desactiva la nova instal·lació de paquets.

$ sudo apt-get install packageName --only-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
vsftpd is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.

13. Com instal·lo una versió específica del paquet?

Suposem que només voleu instal·lar una versió específica dels paquets, simplement feu servir el = amb el nom del paquet i afegiu la versió desitjada.

$ sudo apt-get install vsftpd=2.3.5-3ubuntu1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
vsftpd is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.

14. Com puc eliminar paquets sense configuració

Per desinstal·lar paquets de programari sense eliminar els seus fitxers de configuració (per tornar a utilitzar posteriorment la mateixa configuració). Utilitzeu l'ordre eliminar com es mostra.

$ sudo apt-get remove vsftpd
[sudo] password for tecmint: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  vsftpd
0 upgraded, 0 newly installed, 1 to remove and 328 not upgraded.
After this operation, 364 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 216156 files and directories currently installed.)
Removing vsftpd ...
vsftpd stop/waiting
Processing triggers for ureadahead ...
Processing triggers for man-db ...

15. Com puc eliminar completament els paquets

Per eliminar paquets de programari inclosos els seus fitxers de configuració, utilitzeu la subordre purga com es mostra a continuació.

$ sudo apt-get purge vsftpd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  vsftpd*
0 upgraded, 0 newly installed, 1 to remove and 328 not upgraded.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
(Reading database ... 216107 files and directories currently installed.)
Removing vsftpd ...
Purging configuration files for vsftpd ...
Processing triggers for ureadahead ...

Alternativament, podeu combinar les dues ordres com es mostra a continuació.

$ sudo apt-get remove --purge vsftpd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  vsftpd*
0 upgraded, 0 newly installed, 1 to remove and 328 not upgraded.
After this operation, 364 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 216156 files and directories currently installed.)
Removing vsftpd ...
vsftpd stop/waiting
Purging configuration files for vsftpd ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...

16. Com puc netejar l'espai en disc

L'ordre neteja s'utilitza per alliberar espai al disc netejant els fitxers .deb (paquets) recuperats (descarregats) del dipòsit local.

$ sudo apt-get clean

17. Com puc descarregar només el codi font del paquet

Per descarregar només el codi font d'un paquet concret, utilitzeu l'opció -download-only source amb package-name com es mostra.

$ sudo apt-get --download-only source vsftpd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Need to get 220 kB of source archives.
Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (dsc) [1,883 B]
Get:2 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (tar) [188 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (diff) [30.5 kB]
Fetched 220 kB in 4s (49.1 kB/s)
Download complete and in download only mode

18. Com puc descarregar i desempaquetar un paquet

Per descarregar i descomprimir el codi font d'un paquet a un directori específic, escriviu l'ordre següent.

$ sudo apt-get source vsftpd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Need to get 220 kB of source archives.
Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (dsc) [1,883 B]
Get:2 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (tar) [188 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (diff) [30.5 kB]
Fetched 220 kB in 1s (112 kB/s)  
gpgv: Signature made Thursday 24 May 2012 02:35:09 AM IST using RSA key ID 2C48EE4E
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./vsftpd_2.3.5-3ubuntu1.dsc
dpkg-source: info: extracting vsftpd in vsftpd-2.3.5
dpkg-source: info: unpacking vsftpd_2.3.5.orig.tar.gz
dpkg-source: info: unpacking vsftpd_2.3.5-3ubuntu1.debian.tar.gz
dpkg-source: info: applying 01-builddefs.patch
dpkg-source: info: applying 02-config.patch
dpkg-source: info: applying 03-db-doc.patch
dpkg-source: info: applying 04-link-local.patch
dpkg-source: info: applying 05-whitespaces.patch
dpkg-source: info: applying 06-greedy.patch
dpkg-source: info: applying 07-utf8.patch
dpkg-source: info: applying 08-manpage.patch
dpkg-source: info: applying 09-s390.patch
dpkg-source: info: applying 10-remote-dos.patch
dpkg-source: info: applying 11-alpha.patch
dpkg-source: info: applying 09-disable-anonymous.patch
dpkg-source: info: applying 12-ubuntu-use-snakeoil-ssl.patch

19. Com puc descarregar, descomprimir i compilar un paquet

També podeu descarregar, desempaquetar i compilar el codi font al mateix temps, utilitzant l'opció -compile com es mostra a continuació.

$ sudo apt-get --compile source goaccess
[sudo] password for tecmint: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Need to get 130 kB of source archives.
Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/universe goaccess 1:0.5-1 (dsc) [1,120 B]
Get:2 http://in.archive.ubuntu.com/ubuntu/ quantal/universe goaccess 1:0.5-1 (tar) [127 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu/ quantal/universe goaccess 1:0.5-1 (diff) [2,075 B]
Fetched 130 kB in 1s (68.0 kB/s)
gpgv: Signature made Tuesday 26 June 2012 09:38:24 AM IST using DSA key ID A9FD4821
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./goaccess_0.5-1.dsc
dpkg-source: info: extracting goaccess in goaccess-0.5
dpkg-source: info: unpacking goaccess_0.5.orig.tar.gz
dpkg-source: info: unpacking goaccess_0.5-1.debian.tar.gz
dpkg-buildpackage: source package goaccess
dpkg-buildpackage: source version 1:0.5-1
dpkg-buildpackage: source changed by Chris Taylor <[email >
dpkg-buildpackage: host architecture i386
 dpkg-source --before-build goaccess-0.5
dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>= 9) autotools-dev libncurses5-dev libglib2.0-dev libgeoip-dev autoconf
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
...

20. Com puc descarregar un paquet sense instal·lar-lo

Mitjançant l'opció descàrrega, podeu descarregar qualsevol paquet sense instal·lar-lo. Per exemple, l'ordre següent només baixarà el paquet nethogs al directori de treball actual.

$ sudo apt-get download nethogs
Get:1 Downloading nethogs 0.8.0-1 [27.1 kB]
Fetched 27.1 kB in 3s (7,506 B/s)

21. Com comprovo el registre de canvis del paquet?

El senyalador registre de canvis descarrega un registre de canvis de paquets i mostra la versió del paquet instal·lada.

$ sudo apt-get changelog vsftpd
vsftpd (2.3.5-3ubuntu1) quantal; urgency=low

  * Merge from Debian testing (LP: #1003644).  Remaining changes:
    + debian/vsftpd.upstart: migrate vsftpd to upstart.
    + Add apport hook (LP: #513978):
      - debian/vsftpd.apport: Added.
      - debian/control: Build-depends on dh-apport.
      - debian/rules: Add --with apport.
    + Add debian/watch file.
    + debian/patches/09-disable-anonymous.patch: Disable anonymous login
      by default. (LP: #528860)
  * debian/patches/12-ubuntu-us-snakeoil-ssl.patch: Use snakeoil SSL
    certificates and key.

 -- Andres Rodriguez <[email >  Wed, 23 May 2012 16:59:36 -0400
...

22. Com comprovo les dependències trencades?

L'ordre check és una eina de diagnòstic. Solia actualitzar la memòria cau de paquets i comprovar si hi ha dependències trencades.

$ sudo apt-get check
[sudo] password for tecmint: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done

23. Com puc cercar i crear dependències?

Aquesta ordre build-dep cerca els dipòsits locals del sistema i instal·la les dependències de compilació del paquet. Si el paquet no existeix al repositori local, retornarà un codi d'error.

$ sudo apt-get build-dep netcat
The following NEW packages will be installed:
  debhelper dh-apparmor html2text po-debconf quilt
0 upgraded, 5 newly installed, 0 to remove and 328 not upgraded.
Need to get 1,219 kB of archives.
After this operation, 2,592 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/main html2text i386 1.3.2a-15build1 [91.4 kB]
Get:2 http://in.archive.ubuntu.com/ubuntu/ quantal/main po-debconf all 1.0.16+nmu2ubuntu1 [210 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu/ quantal/main dh-apparmor all 2.8.0-0ubuntu5 [9,846 B]
Get:4 http://in.archive.ubuntu.com/ubuntu/ quantal/main debhelper all 9.20120608ubuntu1 [623 kB]
Get:5 http://in.archive.ubuntu.com/ubuntu/ quantal/main quilt all 0.60-2 [285 kB]
Fetched 1,219 kB in 4s (285 kB/s)
...

24. Com puc netejar automàticament Apt-Get Cache?

L'ordre autoclean elimina tots els fitxers .deb de /var/cache/apt/archives per alliberar un volum important d'espai en disc.

$ sudo apt-get autoclean
Reading package lists... Done
Building dependency tree       
Reading state information... Done

25. Com puc eliminar automàticament els paquets instal·lats?

La subordre 'autoremove' s'utilitza per eliminar automàticament paquets que certament estaven instal·lats per satisfer les dependències d'altres paquets i que ara ja no eren necessaris. Per exemple, l'ordre següent eliminarà un paquet instal·lat amb les seves dependències.

$ sudo apt-get autoremove vsftpd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'vsftpd' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.

He cobert la majoria de les opcions disponibles amb les ordres apt-get i apt-cache, però encara hi ha més opcions disponibles, podeu consultar-les fent servir man apt-get o man apt-cache des del terminal. Espero que us hagi agradat llegir aquest article, si m'he perdut alguna cosa i voleu que l'afegeixi a la llista. Si us plau, no dubteu a mencionar-lo al comentari a continuació.

Llegiu també: 20 ordres útils de Linux YUM per a la gestió de paquets