Dois-je utiliser tasksel, des tâches dans APT ou installer des métapaquets réguliers?

32

Tasksel ou Plain Apt?

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 y ajoutant un curseur ( ^ ), comme ceci:

sudo apt-get install lamp-server^

Est-ce équivalent à ce qui suit?

sudo tasksel install lamp-server

Et qui est préféré?

Méta-paquets

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

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

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

Par conséquent, en utilisant le dernier exemple, quelle est la différence entre les trois méthodes d’installation suivantes?

  • sudo apt-get install kubuntu-desktop
  • sudo apt-get install kubuntu-desktop^
  • sudo tasksel install kubuntu-desktop
posée gertvdijk 06.02.2013 - 18:11
la source

1 réponse

30

En résumé: est une différence entre taskel et le processus d’installation des tâches d’apt-get.

En regardant votre exemple:

La méthode apt-get

sudo apt-get install 'lamp-server^' évaluera les opérations suivantes:

  1. Recherchez le cache (fichiers de liste de paquets) pour tous les champs "Task:" et obtenez tous avec "lamp-server".
  2. Installez ces packages de manière standard:

    sudo apt-get install package1 package2...
    

La manière taskel

sudo tasksel install lamp-server recherchera une tâche appelée "lamp-server" dans l'un de ses fichiers de configuration sous /usr/share/tasksel/**/*.desc :

  1. Recherchez dans les fichiers de configuration un champ "Task:" nommé "lamp-server".
  2. Vérifiez si toutes les conditions préalables sont disponibles (champ "Key:") et mémorisez-les si elles ne sont pas installées.
  3. Choisissez la méthode pour sélectionner les paquets (champ "Packages:"). Si c'est la "liste", installez simplement les paquets suivants par nom.
  4. Lisez tous les noms de paquets suivants et transmettez-les à la méthode précédemment sélectionnée pour générer les noms de paquets.
  5. Recherchez /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. Recherchez /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 des tâches et en créer de nouvelles très facilement. Il n'est pas possible d'éditer un fichier de liste de paquets officiel sans inconvénients (signature valide).

Retour à votre première question:
Dans votre cas particulier, les deux commandes sont presque équivalentes (supposées que vous ayez activé APT::Install-Recommends et APT::Get::AutomaticRemove ). La seule différence réside dans l'état du package étendu des dépendances mysql-server et apache2 (défini sur "manuellement installé" avec apt-get simple).

Et les métapaquets?

Si vous n'utilisez pas les fonctionnalités de tasksel telles que la sélection de tâches (particulièrement utiles lors de l'installation) et l'exécution de commandes supplémentaires avant et après certains blocs de tâches, une tâche est très similaire à un méta-paquet. La différence est la suivante: une tâche n'est pas enregistrée en tant que package dans le cache APT.
Donc, si vous désinstallez une tâche dépendante, les autres tâches ne sont pas marquées comme étant installées automatiquement car elles ont été explicitement installées. Si vous désinstallez un métapaquet, les dépendances sont supprimées avec autoremove car leur état de package étendu est "installé automatiquement" (s'il n'est pas installé manuellement). Remarque: Tous Les tâches distribuées dans Debian installent un métapaquet nommé task-TASKNAME .

Donner votre exemple:

  1. sudo apt-get install kubuntu-desktop
    • va installer le métapaquet kubuntu-desktop . Les dépendances sont "installées automatiquement".
  2. sudo apt-get install kubuntu-desktop^
    • Sélectionne tous les paquets marqués avec la tâche "kubuntu-desktop". Ce 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 tâches.
    • va installer le métapaquet kubuntu-desktop . Les dépendances sont "installées automatiquement".
réponse donnée Lasall 17.02.2013 - 03:38
la source

Lire d'autres questions sur les étiquettes