desarrollo-web-br-bd.com

¿Cómo verifico si un paquete está instalado en mi servidor?

Recientemente instalé Ubuntu Server edition 13.10 (Saucy Salamander). Pero me he encontrado con un pequeño problema.

Al final de la instalación, le pide varios paquetes adicionales si los quiere o no, como el servidor OpenSSH y el host de la máquina virtual. Esto es lo que estoy viendo:

Enter image description here

Ahora, mi problema es que no puedo recordar si he marcado la casilla de verificación "Host de máquina virtual". ¿Cómo verifico si mi servidor tiene los paquetes correspondientes?

¿Qué paquetes vienen con el host de la máquina virtual?

159
D.Zou

¿Está buscando saber acerca de todos los comandos dpkg con opciones? Lea el siguiente enlace.

15 comandos dpkg para administrar servidores Linux basados ​​en Debian

Para enumerar todos los paquetes instalados

Aquí "menos" es un lector de texto simple que se utiliza para desplazarse por la lista de paquetes en un nuevo búfer que se abre en la ventana de terminal existente. La lista no se mezclará con otros comandos de terminal y salida. Presiona 'q' para regresar al terminal. Ver "hombre menos" para más información.

dpkg -l | less

Para verificar si un paquete está instalado o no:

dpkg -l {package_name}
dpkg -l vlc

Para verificar si el paquete está instalado o no (por ejemplo, vlc). Si está instalado, inicie el paquete:

dpkg -l | grep vlc

Muestra la ubicación donde está instalado el paquete. La "-S" (S mayúscula) significa "búsqueda"

Sudo dpkg -S {package_name}
Sudo dpkg -S skype

Para usar Grep para buscar:

dpkg -l | grep {keywords}
dpkg -l | grep pdf
225
Babin Lonston

Utilice dpkg

Este comando es el administrador de paquetes de Debian.

Puede enumerar todos los paquetes instalados con

dpkg -l

Puede ver los detalles de un paquete específico con

dpkg -p packagename

Y para saber si está instalado, use

dpkg -s packagename | grep Status

Puede aprender qué paquete contiene el software que desea con

apt-cache search name*  

En su caso, debe usar este comando para buscar el nombre del paquete que desea

apt-cache search virtual machine Host 
32
onurbekiroglu

apt -qq list PACKAGE también se puede usar para verificar si el PAQUETE está instalado.

Si está instalado, imprimirá algo como (con [installed] al final de la línea):

$ apt -qq list awscli
awscli/stable,now 1.4.2-1 all [installed]

Si no está instalado, la salida será:

$ apt -qq list awscli
awscli/stable 1.4.2-1 all
29
Viktor Benei

He encontrado una manera de verificar la instalación del paquete con solo el comando dpkg-query y sin canalizaciones.

Busqué esa solución mientras escribía una tarea para el libro de jugadas ansible.

Entonces, puedes hacer algo como esto:

/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'

Esta es solo otra forma de hacer la cosa.

14
DenKoren

Estoy escribiendo una nueva respuesta como Tasksel 'Nombres de tareas' NO aparece en las consultas dpkg o apt. Lo que significa que las otras respuestas son incompletas (o incorrectas).

"No puedo recordar si he marcado la casilla 'máquina virtual Host' .."

Compruebe si hay un asterisco por el nombre después de volver a ejecutar Sudo tasksel.
(o un ' i ' si ejecuta tasksel --list-tasks).

Si no ve esto, entonces probablemente no tiene el 'taskel meta-paquete ' instalado.


".. ¿Cómo verifico si mi servidor tiene los paquetes correspondientes?"

Si desea averiguar qué está instalado en el metapaquete de tareas del Virtual Machine Host:

tasksel --list-tasks

(en su caso tasksel --list-tasks | grep virt es suficiente)

Esto le da a la tarea adecuada el nombre y una indicación de si está instalado.

En su caso, este nombre de tarea es virt-Host.


"¿Qué paquetes vienen con el host de la máquina virtual?"

Desde el último comando, busque el nombre de la tarea taskel.
Esto es necesario para el siguiente comando:

tasksel --task-packages virt-Host

Esto enumera el metapaquete de Tasksel individual (denotado por '^' adjunto) que conforman el nombre.
En su caso es virt-Host^.

Una vez que encuentre el meta nombre apropiado, puede usar apt:

 apt show virt-Host^ | grep "Package:"

(o apt-cache show... if apt show no funciona)

Esto mostrará todos los paquetes que componen el metapaquete dado.

Entonces:

 dpkg -l {each individual pkg name listed above}

Esto le indicará si el paquete individual está instalado/desinstalado (indicado por la segunda letra: el estado 'i' significa instalado). Haga esto para todos los paquetes enumerados en la tarea/metapaquete.

Esto debería responder a las preguntas originales.

Nota al margen: /usr/share/tasksel/descs/ubuntu-tasks.desc también contiene descripciones de los metapaquetes de Tasksel. Si usted: grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc mostrará el nombre apropiado del metapaquete APT. (En su caso, esto es ubuntu-virt-server). También puede usar los comandos apt con este metanombre.

Si desea eliminar paquetes de taskel, esto se mete un poco en la maleza. Por favor consulte https://askubuntu.com/a/88897/169878 o cualquier otra respuesta disponible.

Tenga en cuenta que los paquetes apt "meta" no coinciden con los nombres de paquetes de Tasksel. Consulte Página de la comunidad de Tasksel para obtener más información.

4
bshea

Use taskel (Sudo apt-get install tasksel si aún no lo tiene) y ejecute tasksel --list-tasks.

taskel imprimirá una lista de las tareas, y habrá un i al lado de cada tarea que esté instalada, y un u al lado de cada tarea que no esté instalada.

Si desea instalar la tarea, use tasksel install <task>. El nombre de la tarea que está buscando es virt-Host.

Los elementos de selección de software se denominan "tareas".

3
Blake R

Solución más simple:

Ahora hay un comando apt list que enumera los paquetes instalados. También puede buscar un paquete específico con

apt list <package>

Vea man apt para más información. Si no conoce el nombre exacto del paquete, puede usar apt search seguido de parte de él para ver una lista de paquetes relacionados.

2
sk8forether

Si alguien está interesado, creé un pequeño script con el que puede instalar automáticamente desde una lista de paquetes o aplicaciones o simplemente verificar si ya están instalados:

#!/bin/bash
apt -qq list YOUR_LIST_GOES_HERE | grep -v "installed" | awk -F/ '{print $1}' > /root/list.txt
packages=$(cat /root/list.txt)
grep -q '[^[:space:]]' < /root/list.txt
CHECK_LIST=$?
if [[ $CHECK_LIST -eq 1 ]]; then
echo "Your packages are already installed"
else
echo "Installing packages"
apt-get  install -y $packages
fi

Espero que ayude a alguien.

1
Claudio Taccogna