Tasksel ou Plain Apt?
Dans le passé, j'ai toujours eu l'habitude tasksel
d'installer ce qu'on appelle des "tâches". Il semble cependant que cela ait été intégré à APT:
apt-cache dumpavail | grep ^Task
[...] snip
Task: lamp-server
[...]
et que je peux installer de telles "tâches" en y ajoutant un caret ( ^
), comme ceci:
sudo apt-get install lamp-server^
Est-ce que cela équivaut à ce qui suit?
sudo tasksel install lamp-server
Et qui est préféré?
Métapaquets
De plus, comment les métapaquets entrent-ils en jeu ici? Certaines tâches semblent ne pas être un méta-paquet 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
Ainsi, à l'aide du 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
apt
package-management
tasksel
metapackages
Gertvdijk
la source
la source
apt-get install -s lubuntu-desktop
versusapt-get install -s lubuntu-desktop^
. Dans la dernière, vous verrez quelque chose de plus comme ceci: Remarque, en sélectionnant 'policykit-1-gnome' pour la tâche 'lubuntu-desktop' / Note, en sélectionnant 'gnome-keyring' pour la tâche 'lubuntu-desktop' / Note, en sélectionnant 'libplist1' pour la tâche 'lubuntu-desktop' / Note, en sélectionnant 'aspell-en' pour la tâche 'lubuntu-desktop' / Note, en sélectionnant 'libsdl1.2debian' pour la tâche 'lubuntu-desktop' / Donc, dans ce cas particulier , Je ne suis pas sûr que la "carotte" soit meilleure.Réponses:
En bref: il y a une différence entre tasksel et le processus d'installation de tâches par apt-get.
En regardant votre exemple:
La façon apt-get
sudo apt-get install 'lamp-server^'
va évaluer pour faire ce qui suit:Installez ces paquets de la manière standard:
Le chemin des tâches
sudo tasksel install lamp-server
cherchera une tâche appelée "lampe-serveur" dans l'un de ses fichiers de configuration sous/usr/share/tasksel/**/*.desc
:/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:
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 de tâches. Et le plus gros avantage: vous pouvez modifier des tâches et en créer de nouvelles très facilement. Il n’est pas possible de modifier un fichier officiel de la liste de paquets sans inconvénients (signature valide).
Revenons à votre première question:
dans votre cas particulier, les deux commandes sont presque équivalentes (supposons que vous ayez activé les deux
APT::Install-Recommends
etAPT::Get::AutomaticRemove
). La seule différence est l'étatmysql-server
et lesapache2
dépendances du paquet étendu (défini sur "installé manuellement" avec plain apt-get).Et qu'en est-il des métapaquets?
Si vous n'utilisez pas les fonctionnalités de tasksel telles que la sélection de tâches (particulièrement utile lors de l'installation) et l'exécution de commandes supplémentaires avant et après certains blocages de tâches, une tâche est très similaire à un métapaquet. La différence est la suivante: une tâche n'est pas enregistrée en tant que package dans le cache APT.
Ainsi, si vous désinstallez une dépendance de tâche, les autres tâches ne sont pas marquées comme installées automatiquement, car elles ont été installées explicitement. Si vous désinstallez un méta
autoremove
-paquet, les dépendances sont supprimées car leur état de package étendu est "installé automatiquement" (s'il n'est pas installé manuellement).Remarque: Toutes les tâches distribuées dans Debian installent un métapaquet nommé
task-TASKNAME
.Donner votre exemple:
sudo apt-get install kubuntu-desktop
kubuntu-desktop
. Les dépendances sont "auto installées".sudo apt-get install kubuntu-desktop^
kubuntu-desktop
. Ils sont tous marqués comme "installés manuellement".sudo tasksel install kubuntu-desktop
kubuntu-desktop
. Les dépendances sont "auto installées".la source