Tasksel o simple Apt?
En el pasado, siempre solía tasksel
instalar las llamadas "tareas". Parece, sin embargo, que esto se ha integrado en APT:
apt-cache dumpavail | grep ^Task
[...] snip
Task: lamp-server
[...]
y que puedo instalar tales "tareas" añadiéndole un caret ( ^
) de esta manera:
sudo apt-get install lamp-server^
¿Es esto equivalente a lo siguiente?
sudo tasksel install lamp-server
¿Y cuál es el preferido?
Metapaquetes
Además, ¿cómo entran en juego los metapaquetes? Algunas tareas parecen no ser un metapaquete mientras que otras son:
apt-cache show lamp-server
N: Unable to locate package lamp-server
apt-cache show kubuntu-desktop
Package: kubuntu-desktop
[...]
Task: kubuntu-desktop
Entonces, usando el último ejemplo, ¿cuál es la diferencia entre las siguientes tres formas posibles de instalación?
sudo apt-get install kubuntu-desktop
sudo apt-get install kubuntu-desktop^
sudo tasksel install kubuntu-desktop
apt
package-management
tasksel
metapackages
gertvdijk
fuente
fuente
apt-get install -s lubuntu-desktop
versusapt-get install -s lubuntu-desktop^
. En este último, verá algo adicional como esto: Nota, seleccionando 'policykit-1-gnome' para la tarea 'lubuntu-desktop' / Note, seleccionando 'gnome-keyring' para la tarea 'lubuntu-desktop' / Note, seleccionando 'libplist1' para la tarea 'lubuntu-desktop' / Note, seleccionando 'aspell-en' para la tarea 'lubuntu-desktop' / Note, seleccionando 'libsdl1.2debian' para la tarea 'lubuntu-desktop' / Entonces, en este caso particular , No estoy seguro de que la "zanahoria" sea mejor.Respuestas:
En pocas palabras: No es una diferencia entre tasksel proceso de instalación apt-get de tareas.
Mirando tu ejemplo:
El camino apto
sudo apt-get install 'lamp-server^'
evaluará para hacer lo siguiente:Instale esos paquetes de la manera estándar:
El camino de la tarea
sudo tasksel install lamp-server
buscará una tarea llamada "lamp-server" en uno de sus archivos de configuración en/usr/share/tasksel/**/*.desc
:/usr/lib/tasksel/info/lamp-server.preinst
. Si existe, ejecute este script.Instale paquetes con apt-get usando el siguiente comando:
Buscar
/usr/lib/tasksel/info/lamp-server.postinst
. Si existe, ejecute este script.Conclusión
taskel es más poderoso en el procesamiento y selección de tareas. Puede ejecutar scripts adicionales antes / después de la instalación / eliminación de tareas. Y el mayor beneficio: puede modificar tareas y crear otras muy fácilmente. No es posible editar un archivo de lista de paquete oficial sin inconvenientes (firma válida).
Volviendo a la primera pregunta:
en su caso especial, ambos comandos son casi equivalentes (se supone que ha habilitado ambos
APT::Install-Recommends
yAPT::Get::AutomaticRemove
) La única diferencia es el estado del paquete extendido demysql-server
yapache2
dependencias (establecido en "instalado manualmente" con apt-get simple).¿Y qué hay de los metapaquetes?
Si no utiliza las funciones de taskel como seleccionar tareas (especialmente útiles en la instalación) y ejecutar comandos adicionales antes y después de algunos bloques de tareas, entonces una tarea es muy similar a un metapaquete. La diferencia es: una tarea no está registrada como un paquete en el caché APT.
Entonces, si desinstala una dependencia de tareas, otros departamentos de tareas no se marcan como autoinstalados porque se instalaron explícitamente. Si desinstala un metapaquete, las dependencias se eliminan
autoremove
porque su estado de paquete extendido es "autoinstalado" (si no se instala manualmente).Nota: Todas las tareas distribuidas en Debian instalan un metapaquete llamado
task-TASKNAME
.Dando tu ejemplo:
sudo apt-get install kubuntu-desktop
kubuntu-desktop
. Las dependencias son "auto instaladas".sudo apt-get install kubuntu-desktop^
kubuntu-desktop
. Todos están marcados como "instalados manualmente".sudo tasksel install kubuntu-desktop
kubuntu-desktop
. Las dependencias son "auto instaladas".fuente