En bref : Il y a est une différence entre le processus d'installation de tasksel et apt-get.
En regardant votre exemple :
La méthode apt-get
sudo apt-get install 'lamp-server^'
évaluera pour faire ce qui suit :
- Recherchez dans le cache (fichiers de liste de paquets) tous les champs "Task :" et obtenez tous ceux qui contiennent "lamp-server".
-
Installez ces paquets de la manière standard :
sudo apt-get install package1 package2...
La méthode tasksel
sudo tasksel install lamp-server
cherchera une tâche appelée "lamp-server" dans l'un de ses fichiers de configuration sous le nom de /usr/share/tasksel/**/*.desc
:
-
Recherchez dans les fichiers de configuration un champ "Task :" nommé "lamp-server".
-
Vérifiez si tous les prérequis sont disponibles (champ "Key :") et rappelez-les s'ils ne sont pas installés.
-
Choisissez la méthode pour sélectionner les paquets (champ "Paquets :"). Si c'est "liste", installez simplement les paquets suivants par leur nom.
-
Lire tous les noms de paquets suivants et les passer à la méthode sélectionnée précédemment pour générer les noms de paquets.
-
Cherchez /usr/lib/tasksel/info/lamp-server.preinst
. S'il existe, exécutez ce script.
-
Installez les paquets avec apt-get en utilisant la commande suivante :
debconf-apt-progress -- apt-get -q -y -o APT::Install-Recommends=true -o APT::Get::AutomaticRemove=true install package1 package2 ...
-
Cherchez /usr/lib/tasksel/info/lamp-server.postinst
. S'il existe, exécutez ce script.
Conclusion
tasksel est plus puissant dans le traitement et la sélection des tâches. Il peut exécuter des scripts supplémentaires avant/après l'installation/la suppression des tâches. Et le plus grand avantage : vous pouvez modifier les tâches et en créer de nouvelles très facilement. Il n'est pas possible de modifier un fichier officiel de liste de paquets sans inconvénients (signature valide).
Revenons à votre première question :
Dans votre cas particulier, les deux commandes sont presque équivalentes (en supposant que vous ayez activé les deux commandes APT::Install-Recommends
y APT::Get::AutomaticRemove
). La seule différence est l'état du paquet étendu de mysql-server
y apache2
dépendances (définies comme "installées manuellement" avec apt-get).
Et qu'en est-il des métapaquets ?
Si vous n'utilisez pas les fonctionnalités de tasksel comme la sélection des tâches (particulièrement utile à l'installation) et l'exécution de commandes supplémentaires avant et après certains blocs de tâches, alors une tâche est très similaire à un métapaquet. La différence est la suivante : Une tâche n'est pas enregistrée comme un paquet dans le cache d'APT.
Ainsi, si vous désinstallez une dépendance de tâche, les autres tâches ne sont pas marquées comme auto-installées parce qu'elles ont été explicitement installées. Si vous désinstallez un métapaquet, les dépendances sont supprimées avec la commande autoremove
car l'état de leur paquetage étendu est "auto installé" (s'il n'est pas installé manuellement).
Note : Toutes les tâches distribuées dans Debian installent un métapaquet nommé task-TASKNAME
.
En donnant votre exemple :
-
sudo apt-get install kubuntu-desktop
- Installera le métapackage
kubuntu-desktop
. Les dépendances sont "installées automatiquement".
-
sudo apt-get install kubuntu-desktop^
- Sélectionne tous les paquets étiquetés avec la tâche "kubuntu-desktop". qui sont toutes les dépendances du métapaquet.
kubuntu-desktop
. Ils sont tous marqués comme "installés manuellement".
-
sudo tasksel install kubuntu-desktop
- Assurez-vous que X est installé avant d'installer les paquets de la tâche.
- Installera le métapackage
kubuntu-desktop
. Les dépendances sont "installées automatiquement".