Edit: App-Bundles von UNIX Anwendungen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Edit: App-Bundles von UNIX Anwendungen

    Hallo,

    ich habe festgestellt, das die Projekte wie Fink oder MacPorts zwar viele Programme aus der UNIX verfügbar sind, aber ich zugleich auch immer viele Dinge mit installiert bekomme, die ich gar nicht will.

    Auf das Problem bin ich gestossen, als ich den Midnight Commander installieren wollte. Ein Übersetzen des reinen Quelltextes ohne z.B. VFS und X-Support bringt gerade mal 836KB auf die Waage. Wohingegen die Installation mit Fink stolze 380MB betrug.

    Die Idee ist nun folgende: UNIX-Tools aus den Quellen zu übersetzen und in ein MyApp.app-Bundle zu stecken. Damit wäre es dann ganz Mac-like ohne, dass Bibliotheken und Programmdateien im Dateisystem verstreut werden.

    Hat jemand sowas schonmal versucht oder weiß, wo ich erste Informationen in der Richtung bekomme? Danke.
  • RE: App-Bundles von UNIX CLI Tools

    Ich verstehe nicht ganz.

    Ein Kommandozeilen-Programm muss ja im Suchpfad Deiner Shell liegen, sonst kannst Du es nicht von der Kommandozeile aus aufrufen. Den Pfad jetzt auf irre Laengen wachsen zu lassen, weil man tausend app-Bundles hinzufuegt finde ich weniger ueberzeugend.

    Oft brauchen mehrere Kommandozeilen-Programme besondere, eigene Libraries. Die muessten dann jeweils mit in die app-bundles, was aber dazu fuehrt, dass Du viele Libraries doppelt hast. Entsprechend muss auch der Library-Suchpfad immer angepasst werden - das ist aber wie ich denke ein geringerer Aufwand.

    Zu guter Letzt traue ich Deinen Zahlen nicht. Du sagst, MC sei mit Fink 380 MB gross? Bist Du sicher, dass der Dir nicht noch einen X11 oder so mit-installiert hat?
    Ich bin seit Jahren gluecklich mit MacPorts und habe sowas noch nie bemerkt.

    EDIT: Was mir noch einfaellt: Du muesstest bei Deinem Vorschlag auch z.B. man anpassen, dass er die man-pages in den Bundles sucht etc. Warum soll soetwas ueberhaupt Mac-Like sein? Ist ja nun eigentlich sogar von sich aus ersteinmal genau das komplette Gegenteil.
    C++
  • RE: App-Bundles von UNIX CLI Tools

    Ich verstehe Deine Frage so: Du möchtest eine Applikation (bzw. ein Bundle) erstellen, in der CLI-Tools gekapselt sind.

    Dazu sollte es ausreichen, wenn Du die CLI-Tools in den Ressourcepfad packst. Den Pfad auf das Tool bekommst Du über das (Main-) Bundle und ausführen kannst Du es über exec(3). Damit die CLI-Tools sich gegenseitig auch finden können, solltest Du auch den Suchpfad entsprechend auf's Ressourceverzeichnis setzen.
    „Meine Komplikation hatte eine Komplikation.“
  • Ja, so war's gemeint. Die UNIX-Anwendung übersetzen und in ein App-Bundle kapseln.
    Die Problematik mit den man-Pages und den Bibliotheken muss doch irgendwie dahingehend zu lösen sein, dass mann diese mit ins Bundle verfrachtet und entsprechend einen Launcher hat. Nur, wie geht man's an?
    Ich kämpfe derweil damit ein statisches Binary aus dem MC zu machen mit VFS-support.


    @zermelo: Die Größenangabe war auf Fink insgesamt bezogen. Nach Installation des Packet-Trees und Update hat das Verzeichnis "/sw" eine Größe von ca. 190MB. Nach der Installation des MC, der auch scheinbar eine GUI-Komponente, die mit GNOME Bibliotheken gemeinsam hat, kommt man dann auf den doppelten Speicherbedarf.


    Alternativ wäre natürlich noch rudix.org, die haben aber nicht soviele Pakete.

    Daher mein Anliegen meine paar wenigen UNIX-Apps (z.B. xFig, tkgate, etc.) jeweils als App-Bundle zu verpacken und sie so jederzeit parat zu haben.
  • Auch wenn ich Dir die Kalaschnikow in die Hand gedrückt habe, darfst Du damit keine Leute erschießen ;)

    Im Ernst: Zermelo hat natürlich Recht. Hast Du Dir schon mal den PackageMaker angeschaut? Der kann Dir überallhin Dateien installieren und Du hast Alles ganz ordentlich in einer Pkg-Datei.
    „Meine Komplikation hatte eine Komplikation.“
  • Hm, PackageMaker. Sieht gut aus, danke euch beiden.

    Problem ist nur der fehlende Uninstallmechanismus. Das müsste aber mittels Skript behebbar sein, denke ich.

    Zumindest habe ich jetzt eine ungefähre Marschrichtung. Gut wäre es, wenn ich sowas wie ein Build-Jail (siehe Fink) hätte, wo ich das lokal übersetze, alle Libs sammele und dann mit dem PackageManager installieren lasse. Na mal sehen.