Forum: PC-Programmierung Abhänigkeiten automatisch finden (python in Initramfs)


von Rolf C. (Gast)


Lesenswert?

Hi,
wenn man seine superduper.py script in der Initramfs beim booten 
ausführen lassen möchte, wie geht man da systematisch vor? Also nicht 
trial&error.

Gibt es da etwas das die Abhängigkeiten (wie apt-get install) 
automatisch auflöst, und in das Initramfs mit aufnimmt?

von Jim M. (turboj)


Lesenswert?

Mach aus dem Skript ein Executable: 
https://docs.python-guide.org/shipping/freezing/

Allerdings wird da so dermaßen fett, das man normalerweise lieber Shell 
Skripte benutzt.

: Bearbeitet durch User
von Εrnst B. (ernst)


Lesenswert?

Rolf C. schrieb:
> Gibt es da etwas das die Abhängigkeiten (wie apt-get install)
> automatisch auflöst,

kann es nicht wirklich geben... Python ist interpretiert, und nichts 
hindert den Programmierer daran was einzubauen wie

Wenn Freitag der 13. und Vollmond, dann: "import irgendwas von irgendwo"
ist jetzt "irgendwo" eine dependency oder nicht, oder hängt das davon 
ab, wann du dein image baust?

was ist mit
1
try:
2
  import megafettes100GBpackage
3
except ImportError:
4
  import minimalErsatzShim as megafettes100GBpackage

Welches ist jetzt dependency und muss in das initramfs? Beides?

von Rolf M. (rmagnus)


Lesenswert?

Εrnst B. schrieb:
> Rolf C. schrieb:
>> Gibt es da etwas das die Abhängigkeiten (wie apt-get install)
>> automatisch auflöst,
>
> kann es nicht wirklich geben... Python ist interpretiert, und nichts
> hindert den Programmierer daran was einzubauen wie

Das hat doch nichts mit Python oder damit, dass das interpretiert ist, 
zu tun. Du kannst genauso gut in C ein Programm schreiben, das zur 
Laufzeit Hundert Plug-ins nachlädt oder irgendwelche großen Files 
braucht.

von Εrnst B. (ernst)


Lesenswert?

Rolf M. schrieb:
> Du kannst genauso gut in C ein Programm

Stimmt natürlich.

Also zusammengefasst: Es ist beweisbar unmöglich ein unbekanntes 
Programm sicher so in die initramdisk (oder sonstwohin) zu packen, dass 
alle dependencies erfüllt sind.

von MaWin (Gast)


Lesenswert?

Ich glaube hier wurde weniger nach einem mathematischen Beweis gefragt, 
sondern eher nach einem praktischen Vorgehen.

sys.modules kann nützlich sein, wenn es darum geht, alle geladenen 
Module anzeigen zu lassen. Das kannst du in deinem Script zu einem 
günstigen Zeitpunkt ausgeben lassen. Was ein günstiger Zeitpunkt ist, 
musst du allerdings selbst wissen. Es muss ein Punkt sein, an dem alle 
Module geladen sind.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.