47 votes

Dois-je utiliser tasksel, tasks in APT ou installer des métapackages classiques ?

Tasksel ou Apt tout court ?

Dans le passé, j'ai toujours utilisé tasksel pour installer des "tâches". Il semble toutefois que cela ait été intégré dans APT :

apt-cache dumpavail | grep ^Task
[...] snip
Task: lamp-server
[...]

et que je peux installer de telles "tâches" en ajoutant un signe d'insertion ( ^ ), comme ceci :

sudo apt-get install lamp-server^

Est-ce que cela équivaut à ce qui suit ?

sudo tasksel install lamp-server

Et lequel est préféré ?

Métapaquets

En outre, comment les métapaquets entrent-ils en jeu ici ? Certaines tâches semblent ne pas être un métapaquet alors que d'autres le sont :

apt-cache show lamp-server
N: Unable to locate package lamp-server

apt-cache show kubuntu-desktop
Package: kubuntu-desktop
[...]
Task: kubuntu-desktop

Donc, en utilisant le dernier exemple, quelle est la différence entre les trois façons suivantes d'installer ?

  • sudo apt-get install kubuntu-desktop
  • sudo apt-get install kubuntu-desktop^
  • sudo tasksel install kubuntu-desktop

41voto

MattiSG Points 2034

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 :

  1. Recherchez dans le cache (fichiers de liste de paquets) tous les champs "Task :" et obtenez tous ceux qui contiennent "lamp-server".
  2. 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 :

  1. Recherchez dans les fichiers de configuration un champ "Task :" nommé "lamp-server".

  2. Vérifiez si tous les prérequis sont disponibles (champ "Key :") et rappelez-les s'ils ne sont pas installés.

  3. Choisissez la méthode pour sélectionner les paquets (champ "Paquets :"). Si c'est "liste", installez simplement les paquets suivants par leur nom.

  4. 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.

  5. Cherchez /usr/lib/tasksel/info/lamp-server.preinst . S'il existe, exécutez ce script.

  6. 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 ...
  7. 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 :

  1. sudo apt-get install kubuntu-desktop
    • Installera le métapackage kubuntu-desktop . Les dépendances sont "installées automatiquement".
  2. 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".
  3. 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".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X