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 update
et apt-get install
.
est-ce une supposition correcte?
apt
dpkg
deb
add-apt-repository
Stéphane
la source
la source
Réponses:
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'appeladd-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 update
ouapt-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.d
lequel 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.la source