Puis-je appeler d'autres commandes dpkg ou apt- * dans mes scripts de préinstallation?


9

Dans le cadre de mon fichier .deb personnalisé (en interne) qui sera déployé sur les appareils Ubuntu 12.04, je dois ajouter plusieurs référentiels PPA, exécuter la mise à jour apt-get, puis installer les packages à partir de ces PPA.

Cela peut-il être fait dans les scripts .preinst ou .postinst de mon fichier .deb?

Je suppose que lorsque mon fichier .deb est installé ( sudo dpkg -i testing.deb) que certains verrous ou mécanismes susceptibles existez qui me empêcher d'appeler certaines commandes telles que add-apt-repository, apt-get updateet apt-get install.

est-ce une supposition correcte?


Réponses:


7

Vous avez raison. Les scripts du responsable ne sont pas censés apporter de modifications aux états apt ou dpkg, autres que les modifications qui seront apportées lors de l'installation du package.

L'installation d'un fichier dans /etc/apt/sources.list.d, cependant, est très bien. La plupart des packages qui remplissent un rôle comme «installez ce package pour ajouter le référentiel APT X à votre système» le font simplement (par opposition à l'appel add-apt-repository). Il est également courant de supprimer la clé publique GPG utilisée pour signer le dépôt /etc/apt/trusted.gpg.d.

Si vous souhaitez simplifier la tâche de l'utilisateur pour effectuer les étapes d'installation supplémentaires de votre logiciel, vous souhaiterez peut-être simplement envoyer un script qui fait le travail et dire à l'utilisateur d'exécuter le script manuellement.

Mais si vous voulez vraiment, vraiment appeler apt-get updateou apt-get install, etc. automatiquement, et que cela ne vous dérange pas que votre paquet soit totalement inacceptable dans Debian ou Ubuntu proprement dit, et que vos utilisateurs soient d'accord avec le paquet agissant de cette façon, alors vous pourriez peut-être mettre quelque chose dans /etc/cron.dlequel vérifie les verrous apt ou dpkg existants, et si aucun n'est maintenu, effectue vos étapes d'installation supplémentaires et fait en sorte que ces étapes ne soient pas exécutées à nouveau. Je ne recommande pas cette approche.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.