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:
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?
¿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
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
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
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.
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.
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".
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.
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.