¿Cómo saber si un paquete específico está instalado en Debian?


9

Estoy trabajando con una Raspberry Pi B + y Raspbian 5/5/2015 y algunas guías que tienen algunos años. Tengo un disco duro externo NTFS conectado a la Pi. Debido a la edad de los artículos, las prácticas comunes han cambiado y resulta que ciertos paquetes y características y funciones ahora están incorporados y / o son automáticos.

Por ejemplo, descubrí que Raspbian manejará el montaje automático de una unidad / volumen NTFS si solo instala ntfs-3g. Todas las instrucciones y orientaciones que pude encontrar (IRC, foro de frambuesa pi y un tipo de Linux que conozco) fueron extremadamente técnicas para hacer quién sabe qué en mi sistema para intentar ayudarme, cuando en realidad todos estábamos tropezando con las funciones automáticas que nadie sabía o pensó revisar. Desde entonces, instalé Raspbian fresh en una nueva tarjeta SD y hasta ahora solo activé SSH, actualicé apt-get e instalé ntfs-3g.

Este es el artículo que estoy usando en este momento: http://www.howtogeek.com/139433/how-to-turn-a-raspberry-pi-into-a-low-power-network-storage-device/?PageSpeed = noscript

Mi siguiente paso es poner Samba en funcionamiento. Sí, sé que la gente de Linux odia a Windows, pero soy un tipo de Windows, así que hasta que pueda saber lo suficiente sobre Linux para que un sistema Linux sea mi alternativa, las máquinas de Windows son mis alternativas. Eventualmente, esta Raspberry Pi obtendrá una unidad de TB múltiple, aunque por ahora solo son unos pocos GB; por eso necesita ser NTFS.

Me gustaría verificar si Samba está instalado, ya que el siguiente paso en mis instrucciones me dice cómo instalarlo y configurarlo. He probado algunos comandos y no estoy seguro de qué hacer con los resultados o cómo usarlos. Busqué aquí y los detalles técnicos están por encima de mis capacidades y no creo que respondan a mi aparentemente simple necesidad de averiguar si un paquete está instalado o no.

Lo intenté:

apt-cache dump

Esto me dio demasiados datos. Se desplazó hacia abajo durante unos minutos. Obtuve esto de The Raspberry Pi Handbook 3rd Edition (Link - Amazon)

Lo intenté

apt-cache showpkg samba
Package: samba
Versions:
2:3.6.6-6+deb7u5 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_                                  wheezy_main_binary-armhf_Packages)
 Description Language:
                 File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_d                                  ists_wheezy_main_binary-armhf_Packages
                  MD5: 0122ac62ef5f4ae21eb2e195eb45ad1d


Reverse Depends:
  winbind,samba 2.2.3-2
  task-file-server,samba
  swat,samba 2:3.6.6-6+deb7u5
  smbclient,samba 2.999+3.0.alpha21-4
  samba4-common-bin,samba 2:3.3.0~rc2-5
  samba4,samba 2:3.3.0~rc2-5
  samba-dbg,samba 2:3.6.6-6+deb7u5
  samba-common-bin,samba 3.0.20b-1
  samba-common,samba 3.0.20b-1
  qtsmbstatus-server,samba
  qemu-system,samba
  nautilus-share,samba 3.0.27a
  libwbclient0,samba 2:3.4.1
  libpam-winbind,samba 2.2.3-2
  libpam-smbpass,samba
  libnss-winbind,samba 2.2.3-2
  gadmin-samba,samba
  education-main-server,samba
  dpsyco-samba,samba
Dependencies:
2:3.6.6-6+deb7u5 - samba-common (5 2:3.6.6-6+deb7u5) libwbclient0 (5 2:3.6.6-6+d                                  eb7u5) libacl1 (2 2.2.51-8) libattr1 (2 1:2.4.46-8) libc6 (2 2.13-28) libcap2 (2                                   2.10) libcomerr2 (2 1.01) libcups2 (2 1.4.0) libgcc1 (2 1:4.4.0) libgssapi-krb5                                  -2 (2 1.10+dfsg~) libk5crypto3 (2 1.6.dfsg.2) libkrb5-3 (2 1.10+dfsg~) libldap-2                                  .4-2 (2 2.4.7) libpam0g (2 0.99.7.1) libpopt0 (2 1.14) libtalloc2 (2 2.0.4~git20                                  101213) libtdb1 (2 1.2.7+git20101214) zlib1g (2 1:1.1.4) debconf (18 0.5) debcon                                  f-2.0 (0 (null)) libpam-runtime (2 1.0.1-11) libpam-modules (0 (null)) lsb-base                                   (2 3.2-13) procps (0 (null)) update-inetd (0 (null)) adduser (0 (null)) dpkg (2                                   1.15.7.2) openbsd-inetd (16 (null)) inet-superserver (0 (null)) smbldap-tools (0                                   (null)) ldb-tools (0 (null)) ctdb (0 (null)) logrotate (0 (null)) tdb-tools (0                                   (null)) samba4 (3 4.0.0~alpha6-2) samba-common (1 2.0.5a-2)
Provides:
2:3.6.6-6+deb7u5 -
Reverse Provides:
pi@raspberrypi ~ $ apt-cache showpkg ntfs-3g
Package: ntfs-3g
Versions:
1:2012.1.15AR.5-2.1+deb7u2 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages) (/var/lib/dpkg/status)
 Description Language:
                 File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages
                  MD5: b2df024e8627b5d253b85f35263376ef


Reverse Depends:
  udisks,ntfs-3g
  ntfsprogs,ntfs-3g
  ntfs-config,ntfs-3g
  ntfs-3g-dev,ntfs-3g 1:2012.1.15AR.5-2.1+deb7u2
  ntfs-3g-dbg,ntfs-3g 1:2012.1.15AR.5-2.1+deb7u2
  kvpm,ntfs-3g
  fsarchiver,ntfs-3g
Dependencies:
1:2012.1.15AR.5-2.1+deb7u2 - debconf (18 0.5) debconf-2.0 (0 (null)) libc6 (2 2.13-28) libfuse2 (2 2.8.1) libgcc1 (2 1:4.4.0) libgcrypt11 (2 1.4.5) libgnutls26 (2 2.12.17-0) multiarch-support (0 (null)) fuse (0 (null)) libntfs-3g75 (0 (null)) ntfsprogs (3 1:2011.10.9AR.1-3~) libntfs-3g75 (0 (null)) ntfsprogs (0 (null))
Provides:
1:2012.1.15AR.5-2.1+deb7u2 -
Reverse Provides:
pi@raspberrypi ~ $ apt-cache showpkg ntfsprogs
Package: ntfsprogs
Versions:
1:2012.1.15AR.5-2.1+deb7u2 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages)
 Description Language:
                 File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages
                  MD5: 95f41af9cf1d0b5b66afb7d2a9e7c75d


Reverse Depends:
  partitionmanager,ntfsprogs
  ntfs-3g,ntfsprogs
  ntfs-3g,ntfsprogs 1:2011.10.9AR.1-3~
  gparted,ntfsprogs
  fsarchiver,ntfsprogs
  fai-setup-storage,ntfsprogs
Dependencies:
1:2012.1.15AR.5-2.1+deb7u2 - ntfs-3g (0 (null))
Provides:
1:2012.1.15AR.5-2.1+deb7u2 -
Reverse Provides:

pero no estoy seguro de qué hacer con los resultados. No puedo decir si va a obtener los servidores y obtener información, o si la extraerá de mi sistema.

Lo intenté :

dpkg --get-selections

que obtuve de aquí: http://www.howtogeek.com/howto/linux/show-the-list-of-installed-packages-on-ubuntu-or-debian/?PageSpeed=noscript pero creo que estoy toparse con el mismo problema. Parece que la sintaxis ha cambiado desde 2007. La página del manual / archivo de ayuda parece llevarme a creer que el comando debería funcionar

Usage: dpkg [<option> ...] <command>

--get-selections [<pattern> ...] Get list of selections to stdout.

pero me sale un error:

dpkg –get-selections samba
dpkg: error: need an action option

Encontré algunas preguntas aquí que están relacionadas, pero no me dan lo que estoy buscando. Estoy interesado en saber qué hay instalado, pero supongo que es un tema para otra pregunta.


¿Son intercambiables Raspban y Debian? Creo que no, ya que Raspbian es específico para Raspberry Pi y Debian probablemente puede ejecutarse en múltiples plataformas de hardware.
YetAnotherRandomUser

Raspbian y Debian no son intercambiables, pero Raspbian es un derivado de Debian con los mismos mecanismos de gestión de paquetes. Las respuestas a continuación con comandos como apt-cache y dpkg se aplican por igual a ambos (y a Ubuntu, Linux Mint, etc.)
Benjamin Staton

Respuestas:


10

apt-cache showpkgmuestra información detallada sobre paquetes potencialmente instalables. Indica si el paquete está instalado, más o menos, pero no de una manera muy legible:

Versions:
2:3.6.6-6+deb7u5 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages)

Si el paquete se instaló, lo vería (/var/lib/dpkg/status)al final de la línea. Sin embargo, esto no es totalmente confiable, porque también vería esta indicación si el paquete era conocido por su sistema pero no estaba completamente instalado, por ejemplo, si estaba en el estado "paquete desinstalado pero sobraron archivos de configuración".

Un apt-cachesubcomando más útil es apt-cache policy. Muestra claramente la versión instalada (si la hay) y las versiones disponibles. Por ejemplo, aquí está la salida de una máquina que ha sambainstalado pero no samba-dev:

samba:
  Installed: 2:4.1.17+dfsg-2
  Candidate: 2:4.1.17+dfsg-2
  Version table:
 *** 2:4.1.17+dfsg-2 0
        500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
        100 /var/lib/dpkg/status
samba-dev:
  Installed: (none)
  Candidate: 2:4.1.17+dfsg-2
  Version table:
     2:4.1.17+dfsg-2 0
        500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages

Alternativamente, puede usar el dpkgcomando para obtener información sobre su sistema actual. APT es el software que gestiona la descarga de paquetes, análisis de dependencia, etc. Dpkg es el software de bajo nivel que realiza la instalación real de un archivo de paquete.

dpkg -l samba

Esto muestra una línea que empieza por isi se ha instalado el paquete, y una línea que comienza con uo po nada en absoluto si el paquete no está instalado.

$ dpkg -l samba samba-dev
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  samba          2:4.1.17+dfs amd64        SMB/CIFS file, print, and login s
dpkg-query: no packages found matching samba-dev

( dpkg-queryes el dpkgsubcomando que devuelve información sobre la base de datos del paquete).

Tenga en cuenta que si solo desea asegurarse de que un paquete esté instalado, simplemente puede ejecutar

apt-get install samba

Esto no servirá de nada si la última versión del paquete que está disponible en su distribución ya está instalada. Instalará el paquete si aún no está instalado, y lo actualizará si tiene una versión anterior.


5
dpkg -l | grep -e package1 -e package2 ....

Enumerará los paquetes que le interesan con sus stauts de instalación actuales. La salida será algo como esto

bala@bala-laptop:~$ dpkg -l | grep apache2
ii  apache2                                2.4.10-10                            amd64        Apache HTTP Server

Los primeros 2 caracteres indican el estado: ii aquí significa Primero i: marcado para la instalación Segundo i: Instalado correctamente

Hay otros códigos de estado como r que significa marcado para eliminación, p que significa marcado para depuración, etc.


+1 para potencia más simplicidad, y permite coincidencias parciales si no conoce el nombre exacto del paquete. Parcial en ese dpkg -l | grep php podría devolver php5, php5-cli, php5-common, etc.
Benjamin Staton

dpkg -l apache2 | grep '' ^ ii '
Corey Goldberg

1

dpkg -l $ PACKAGENAME

es suficiente. Los primeros dos caracteres en la línea mostrarán el estado del paquete


específicamente, el estado iisignifica que está instalado
Corey Goldberg

1
aptitude show foo

mostrará el estado del paquete

root @ srv: # aptitude show python-jmespath
Paquete: python-jmespath
Versión: 0.9.0-2
Estado: no instalado
Prioridad: opcional
Sección: python
Mantenedor: Equipo de módulos de Debian Python python-modules-team@lists.alioth.debian.org
Arquitectura: todo
Tamaño sin comprimir: 97,3 k
Depende: python (> = 2.7)
Descripción: Expresiones coincidentes JSON (Python 2)
 JMESPath es una biblioteca de Python que le permite especificar declarativamente cómo extraer elementos de un documento JSON.

 Este paquete contiene el módulo para Python 2.
Página de inicio: https://github.com/boto/jmespath


root @ cx-ops02: #

0

Espero que puedas resolver este problema.

  • dpkg --help para obtener ayuda sobre cómo instalar y desinstalar paquetes [*];

  • uso apto aptitudepara la gestión de paquetes fácil de usar;

  • escriba dpkg -Dhelppara obtener una lista de dpkgvalores de indicador de depuración;
  • escriba dpkg --force-helppara obtener una lista de opciones de forzado;
  • escriba dpkg-deb --helppara obtener ayuda sobre la manipulación de *.debarchivos;

Las opciones marcadas con [*] producen una gran cantidad de salida, ¡póngala lesso more!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.