web-dev-qa-db-fra.com

Puis-je appeler d'autres commandes dpkg ou apt- * dans mes scripts preinst?

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

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

Je suppose que, lorsque mon fichier .deb est installé (Sudo dpkg -i testing.deb), il existe probablement des verrous ou des mécanismes qui m'empêcheraient d'appeler certaines commandes telles que add-apt-repository, apt-get update et apt-get install.

Est-ce une supposition correcte?

8
Stéphane

Vous avez raison. Les scripts du responsable technique ne sont pas supposés apporter de modifications aux états apt ou dpkg, à l'exception des modifications qui seront apportées lors de l'installation du package.

L'installation d'un fichier dans /etc/apt/sources.list.d, cependant, est acceptable. La plupart des paquets qui remplissent un rôle comme "installe ce paquet pour ajouter le référentiel XAPT à votre système" "font simplement cela (par opposition à l'appel de add-apt-repository). Il est également courant de supprimer la clé publique GPG utilisée pour signer le référentiel dans /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 pouvez simplement envoyer un script qui effectue le travail et demander à l'utilisateur d'exécuter le script manuellement.

Mais si vous voulez vraiment appeler apt-get update ou apt-get install, etc., et que cela ne vous dérange pas que votre paquet soit totalement inacceptable dans Debian ou Ubuntu proprement dit, et que vos utilisateurs acceptent la Dans ce cas, vous pouvez peut-être ajouter quelque chose dans /etc/cron.d qui vérifie la présence de verrous apt ou dpkg existants et, s’ils ne sont pas conservés, effectue les étapes d’installation supplémentaires et fait en sorte que ces étapes ne soient plus exécutées. Je ne recommande pas cette approche.

7
the paul