Ich schreibe ein Programm in Crystal, das ich kompilieren und auf andere Systeme zur Ausführung verschieben möchte. Idealerweise sollte es keine Abhängigkeiten haben, da die Zielsysteme Linux-Neuinstallationen sein werden.Wie kann ich eine ausführbare Crystal-Datei ohne Abhängigkeiten erstellen?
Leider kann ich die libc-Abhängigkeit nicht umgehen, deshalb werde ich vermutlich die ausführbare Datei auf einem System kompilieren müssen, das die niedrigste Version von libc besitzt, auf die ich zielen möchte. Ich denke, es sollte vorwärtskompatibel sein.
Ich habe jedoch Schwierigkeiten mit libssl. Standardinstallation von Debian Wheezy scheinen nicht mit libssl zu kommen, so dass ich diese Fehlermeldung erhalten, wenn meine ausführbaren Datei ausgeführt wird:
error while loading shared libraries: libssl.so.1.0.0:
cannot open shared object file: No such file or directory
Ich gehe davon aus dieser Abhängigkeit besteht, weil ich require "http/client"
in meiner Quelle. Allerdings mache ich keine SSL-bezogene Anrufe, da ich sie nur für ungesicherte Webseiten verwende.
Ich habe anscheinend auch eine Abhängigkeit von libevent-2.0.so.5
. Vermutlich alle Crystal-Programme. Wer weiß, wie viele andere Abhängigkeiten Crystal hat?
Meine ausführbaren Dateien müssen auf einem frisch installierten Linux-System laufen. Wie kann ich eine ausführbare Crystal-Datei ohne Abhängigkeiten erstellen? Anders als libc, nehme ich an.
Ich mag diese Frage; Zu einer Zeit war alles statisch verbunden. Der Wurm dreht sich. – will