Comandos útiles de apt (dpkg) [cerrado]

9

Publique sus comandos apt menos conocidos pero útiles que involucran apt- *, dpkg o aptitude.

Gödel
fuente
77
Esto no es realmente una pregunta.
Martin Owens -doctormo-

Respuestas:

7

Algún comando que uso a menudo:

para ver dependencias y dependencias inversas:

apt-cache [--important] [--installed] [--recurse] depends $package
apt-cache rdepends $package

Para eliminar un paquete, todos los paquetes de eliminación automática y todos los archivos de configuración relacionados:

sudo apt-get --purge --auto-remove purge $package

Para ver las aptopciones de configuración reales :

apt-config dump | less

Para modificar una opción en la línea de comando

$ apt-config dump | grep -i recommend
APT::Install-Recommends "1";
$ sudo apt-get -o APT::Install-Recommends="0" install $package

Esto fue solo un ejemplo de la especificación de las opciones APT a través de la línea de comandos, para evitar instalar los paquetes recomendados, puede usar:

sudo apt-get --no-install-recommends $package

Para ver todos los paquetes locales / obsoletos:

aptitude search ~o

Para ver los paquetes eliminados con configuración residual:

aptitude search ~c

y quitarlos

sudo aptitude purge ~c

Para obtener una lista de todos los paquetes instalados (a dpkg -lveces puede dar salida a columnas truncadas)

dpkg --get-selections | awk '{ print $1 }'

o

dpkg-query -Wf '${Package}\n'  # other fields available, see man page

Para desmontar, modificar y luego montar un paquete

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
enzotib
fuente
4

Dos que uso mucho son: -

apt-get autoremove <packagename>

Lo que eliminará el paquete y las dependencias no utilizadas, lo cual es útil si prueba una aplicación, luego decide que no la necesita y desea que también se elimine el cruft.

dpkg -S /path/to/file

Lo que me dice con qué paquete se instaló un archivo.

Finalmente, uno más ...

dpkg -l <packagename> | grep ^ii

Enumera los paquetes, pero solo aquellos que tienen el estado ii, lo que significa que están instalados, por lo que no mostrará las cosas que eliminé.

Si desea obtener el nombre del paquete para un archivo que no se instaló ( dpkg -Spero para paquetes no instalados), instale apt-filey ejecute:

apt-file search /path/to/file
popey
fuente
Me resulta útil usarlo whichjunto con dpkg -S. por ejemplo: para ejecutables que viven en paquetes con diferentes nombres, como:dpkg -S `which uname`
Benjamin Rubin
Ooh, sí, esa también es buena.
papa
3

Ver el ChangeLog de un paquete

$ aptitude changelog <pkgname>

Ejemplo:

$ 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
...
Gödel
fuente
2
A partir de Ubuntu 11.04 Natty, apt-get changelog sudotambién funciona.
Lekensteyn
3

Instale apt-file, luego ejecute sudo apt-file update. Ahora puede buscar archivos en paquetes que ni siquiera ha instalado.

También es útil si necesita saber información sobre paquetes en otras versiones de Ubuntu: rmadison, que se encuentra en el paquete devscripts. Proporcione un nombre de paquete como argumento y le dirá qué versiones de ese paquete existen en cada versión actual de Ubuntu, y en qué sección del repositorio está el paquete.

Ejemplo:

[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
Benjamin Rubin
fuente
apt-fileahora es capaz de administrar la base de datos de un usuario, por lo que no necesita ser root update.
enzotib
apt-file es bastante agradable gracias por compartir.
Gödel
1

Para obtener los comandos de lista comienza con 'apt-', haga lo siguiente. abra una terminal y escriba 'apt-' y presione la tecla TAB dos veces, esto mostrará una lista de todos los comandos que comienzan con 'apt-'.

Salida de muestra:

apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

Para obtener información detallada, puede consultar la página de manual de ese comando específico

p.ej: man apt-get

aneeshep
fuente
1

Me gusta pensar en tres tipos diferentes de paquetes:

  • Paquetes del sistema (paquetes esenciales o paquetes de prioridad estándar o superior)
  • Paquetes de usuario (paquetes instalados manualmente de prioridad opcional o extra)
  • Dependencias y recomendaciones (paquetes instalados automáticamente / todo lo que no es un sistema o un paquete de usuario)

Para mostrar todos los "paquetes del sistema" puede usar

aptitude search '(~pstandard|~pimportant|~prequired|~E)'

Me gusta tener todos ellos instalados y marcados como instalados manualmente.

aptitude install '(~pstandard|~pimportant|~prequired|~E)!~i'
aptitude unmarkauto '(~pstandard|~pimportant|~prequired|~E)~i~M'

Para mostrar todos los "paquetes de usuario" use

aptitude search '~i!~M!(~pstandard|~pimportant|~prequired|~E)'

En esta lista solo debe haber paquetes que sepa que desea. Todos los demás paquetes son probablemente solo dependencias o recomendaciones de otros paquetes, puede marcarlos como instalados automáticamente

aptitude markauto libsomething

Eche un vistazo a la Referencia de términos de búsqueda de aptitude y
¿Qué es un paquete esencial, obligatorio, importante, estándar, opcional o adicional? para información de fondo.

Dario Seidl
fuente
0
  • Actualice los paquetes que se retendrían porque eliminarían otros paquetes o porque es una actualización del núcleo:

    sudo apt-get dist-upgrade
    
  • Purgue un paquete y su configuración.

    sudo apt-get purge package
    
  • Mostrar detalles de un paquete como se conoce en la base de datos del paquete, incluida la sección, versión, dependencias, mantenedor y descripción.

    apt-cache show package
    
  • Lista de archivos en un paquete instalado

    dpkg -L pkg
    
  • Actualiza todos los paquetes

    sudo apt-get upgrade
    
PinoSan
fuente
-2
dpkg -i --force-architecture something.i386.deb

Para instalar algunas debs i386 en amd64.

Extender
fuente