Als Teil meiner benutzerdefinierten (internen) .deb-Datei, die auf Ubuntu 12.04-Geräten bereitgestellt wird, muss ich mehrere PPA-Repositorys hinzufügen, apt-get update ausführen und dann Pakete von diesen PPAs installieren.
Kann dies in den Skripten .preinst oder .postinst in meiner .deb-Datei erfolgen?
Ich gehe davon aus, dass , wenn meine .deb - Datei installiert ist ( sudo dpkg -i testing.deb
) , dass einige Sperren oder Mechanismen wahrscheinlich gibt , die mich von Aufrufen bestimmter Befehle wie verhindern würde add-apt-repository
, apt-get update
und apt-get install
.
Ist das eine richtige Annahme?
apt
dpkg
deb
add-apt-repository
Stéphane
quelle
quelle
Antworten:
Du hast Recht. Maintainer-Skripte dürfen keine Änderungen an den Zuständen apt oder dpkg vornehmen, außer den Änderungen, die ohnehin bei der Installation des Pakets vorgenommen werden.
Das Installieren einer Datei in
/etc/apt/sources.list.d
ist jedoch in Ordnung. Die meisten Pakete, die eine Rolle wie "Dieses Paket installieren, um das APT-Repository X zu Ihrem System hinzuzufügen" ausfüllen, tun dies einfach (im Gegensatz zum Aufrufenadd-apt-repository
). Es ist auch üblich, den öffentlichen GPG-Schlüssel zu löschen, mit dem das Repo angemeldet wird/etc/apt/trusted.gpg.d
.Wenn Sie es dem Benutzer vereinfachen möchten, die zusätzlichen Installationsschritte für Ihre Software auszuführen, möchten Sie möglicherweise nur ein Skript versenden, das die Aufgabe erledigt, und den Benutzer anweisen, das Skript manuell auszuführen.
Aber wenn Sie wirklich, wirklich
apt-get update
oderapt-get install
usw. automatisch anrufen möchten und es Ihnen nichts ausmacht, dass Ihr Paket in Debian oder Ubuntu völlig inakzeptabel ist und Ihre Benutzer damit einverstanden sind, dass sich das Paket so verhält, dann könnten Sie es vielleicht sagen Etwas, bei/etc/cron.d
dem nach vorhandenen apt- oder dpkg-Sperren gesucht wird und, falls keine vorhanden sind, Ihre zusätzlichen Installationsschritte ausführt und dafür sorgt, dass diese Schritte nicht erneut ausgeführt werden. Ich empfehle diesen Ansatz nicht.quelle