25 comandos básicos útiles de APT-GET y APT-CACHE para la gestión de paquetes


Este artículo explica qué tan rápido puede aprender a instalar, eliminar, actualizar y buscar paquetes de software usando los comandos apt-get y apt-cache desde la línea de comandos. Este artículo proporciona algunos comandos útiles que lo ayudarán a manejar la administración de paquetes en sistemas basados u200bu200ben Debian/Ubuntu.

La utilidad apt-get es un programa de línea de comandos de administración de paquetes poderoso y gratuito, que se utiliza para trabajar con la biblioteca APT (Advanced Packaging Tool) de Ubuntu para realizar la instalación de nuevos paquetes de software, eliminar paquetes de software existentes, actualizar paquetes de software existentes e incluso utilizado para actualizar todo el sistema operativo.

La herramienta de línea de comandos apt-cache se utiliza para buscar la caché de paquetes de software apt. En palabras simples, esta herramienta se usa para buscar paquetes de software, recopila información de paquetes y también se usa para buscar qué paquetes disponibles están listos para su instalación en sistemas basados u200bu200ben Debian o Ubuntu.

1. ¿Cómo enumero todos los paquetes disponibles?

Para enumerar todos los paquetes disponibles, escriba el siguiente comando.

$ 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. ¿Cómo averiguo el nombre del paquete y la descripción del software?

Para averiguar el nombre del paquete y su descripción antes de instalarlo, utilice la marca "buscar". El uso de "buscar" con apt-cache mostrará una lista de paquetes coincidentes con una breve descripción. Supongamos que le gustaría conocer la descripción del paquete "vsftpd", entonces el comando sería.

$ 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

Para buscar y enumerar todos los paquetes que comienzan con "vsftpd", puede usar el siguiente comando.

$ apt-cache pkgnames vsftpd
vsttpd

3. ¿Cómo verifico la información del paquete?

Por ejemplo, si desea verificar la información del paquete junto con una breve descripción, diga (número de versión, verifique sumas, tamaño, tamaño instalado, categoría, etc.). Utilice el subcomando "mostrar" como se muestra a continuación.

$ apt-cache show netcat
Package: netcat
Priority: optional
Section: universe/net
Installed-Size: 30
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Ruben Molina <[email protected]>
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. ¿Cómo verifico las dependencias de paquetes específicos?

Use el subcomando "showpkg" para verificar las dependencias de paquetes de software particulares. si esos paquetes de dependencias están instalados o no. Por ejemplo, use el comando "showpkg" junto con el nombre del paquete.

$ 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. ¿Cómo verifico las estadísticas de caché?

El subcomando "stats" mostrará estadísticas generales sobre el caché. Por ejemplo, el siguiente comando mostrará el número total de paquetes que se han encontrado en el caché.

$ 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. Cómo actualizar los paquetes del sistema

El comando "actualizar" se usa para resincronizar los archivos de índice del paquete desde sus fuentes especificadas en el archivo /etc/apt/sources.list. El comando de actualización obtuvo los paquetes de sus ubicaciones y actualizó los paquetes a una versión más reciente.

$ 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. Cómo actualizar paquetes de software

El comando "actualizar" se utiliza para actualizar todos los paquetes de software instalados actualmente en el sistema. Bajo cualquier circunstancia, los paquetes actualmente instalados no se eliminan o los paquetes que aún no están instalados ni se recuperan e instalan para satisfacer las dependencias de actualización.

$ 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
   ...

Sin embargo, si desea actualizar, sin preocuparse de si los paquetes de software se agregarán o eliminarán para cumplir con las dependencias, use el subcomando "dist-upgrade".

$ sudo apt-get dist-upgrade

8. ¿Cómo instalo o actualizo paquetes específicos?

El subcomando "install" es rastreado por uno o más paquetes que se desean instalar o actualizar.

$ 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. ¿Cómo puedo instalar varios paquetes?

Puede agregar más de un nombre de paquete junto con el comando para instalar varios paquetes al mismo tiempo. Por ejemplo, el siguiente comando instalará los paquetes "nethogs" y "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. Cómo instalar varios paquetes usando comodines

Con la ayuda de expresiones regulares, puede agregar varios paquetes con una cadena. Por ejemplo, usamos * comodín para instalar varios paquetes que contienen la cadena "* nombre *", el nombre sería "nombre-paquete".

$ sudo apt-get install '*name*'

11. Cómo instalar paquetes sin actualizar

El uso del comando sub "–no-upgrade" evitará que los paquetes ya instalados se actualicen.

$ 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. Cómo actualizar solo paquetes específicos

El comando "–only-upgrade" no instala nuevos paquetes, solo actualiza los paquetes ya instalados y deshabilita la nueva instalación de paquetes.

$ 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. ¿Cómo instalo una versión de paquete específica?

Supongamos que desea instalar solo una versión específica de los paquetes, simplemente use "u003d" con el nombre del paquete y agregue la versión deseada.

$ 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. ¿Cómo elimino paquetes sin configuración?

Para desinstalar paquetes de software sin eliminar sus archivos de configuración (para luego reutilizar la misma configuración). Utilice el comando "eliminar" como se muestra.

$ 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. ¿Cómo elimino completamente los paquetes?

Para eliminar paquetes de software, incluidos sus archivos de configuración, utilice el subcomando "purgar" como se muestra a continuación.

$ 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 ...

Alternativamente, puede combinar ambos comandos como se muestra a continuación.

$ 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. Cómo puedo limpiar el espacio en disco

El comando "limpiar" se utiliza para liberar espacio en disco limpiando los archivos (paquetes) .deb recuperados (descargados) del repositorio local.

$ sudo apt-get clean

17. ¿Cómo descargo solo el código fuente del paquete?

Para descargar solo el código fuente de un paquete en particular, use la opción "–descargar solo fuente" con "nombre-paquete" como se muestra.

$ 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. ¿Cómo puedo descargar y descomprimir un paquete?

Para descargar y descomprimir el código fuente de un paquete en un directorio específico, escriba el siguiente comando.

$ 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. ¿Cómo puedo descargar, descomprimir y compilar un paquete?

También puede descargar, descomprimir y compilar el código fuente al mismo tiempo, usando la opción "–compilar" como se muestra a continuación.

$ 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 protected]>
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. ¿Cómo descargo un paquete sin instalarlo?

Con la opción "descargar", puede descargar cualquier paquete sin instalarlo. Por ejemplo, el siguiente comando solo descargará el paquete "nethogs" al directorio de trabajo 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. ¿Cómo verifico el registro de cambios del paquete?

El indicador "registro de cambios" descarga un registro de cambios del paquete y muestra la versión del paquete que está instalada.

$ 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 protected]>  Wed, 23 May 2012 16:59:36 -0400
...

22. ¿Cómo verifico las dependencias rotas?

El comando "comprobar" es una herramienta de diagnóstico. Solía u200bu200bactualizar la caché de paquetes y verifica si hay dependencias rotas.

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

23. ¿Cómo busco y construyo dependencias?

Este comando "build-dep" busca en los repositorios locales del sistema e instala las dependencias de compilación para el paquete. Si el paquete no existe en el repositorio local, devolverá un código de 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. ¿Cómo puedo limpiar automáticamente Apt-Get Cache?

El comando "autoclean" elimina todos los archivos .deb de/var/cache/apt/archives para liberar un volumen significativo de espacio en disco.

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

25. ¿Cómo puedo eliminar automáticamente los paquetes instalados?

El subcomando "autoremove" se usa para eliminar automáticamente paquetes que ciertamente se instalaron para satisfacer las dependencias de otros paquetes y que ahora ya no eran necesarios. Por ejemplo, el siguiente comando eliminará un paquete instalado con sus dependencias.

$ 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 cubierto la mayoría de las opciones disponibles con los comandos apt-get y apt-cache, pero aún hay más opciones disponibles, puede verificarlas usando "man apt-get" o "man apt-cache" desde la terminal. Espero que hayas disfrutado leyendo este artículo, si me he perdido algo y quieres que lo agregue a la lista. No dude en mencionarlo en el comentario a continuación.

Lea también: 20 comandos útiles de Linux YUM para la gestión de paquetes