Piszę program w Crystal, który zamierzam skompilować i przenieść do innych systemów w celu wykonania. Najlepiej byłoby, gdyby nie miał żadnych zależności, ponieważ systemy docelowe będą świeżymi instalacjami systemu Linux.Jak mogę utworzyć plik wykonywalny Crystal bez żadnych zależności?
Niestety, nie mogę obejść zależności od biblioteki libc, więc prawdopodobnie będę musiał skompilować plik wykonywalny w systemie posiadającym najniższą wersję biblioteki libc, którą chcę kierować. Sądzę, że powinien on być zgodny z przyszłością.
Mam jednak problemy z libssl. Domyślne instalacji Debiana wheezy nie wydają się pochodzić z libssl, więc ten błąd, gdy uruchomiony mój plik wykonywalny:
error while loading shared libraries: libssl.so.1.0.0:
cannot open shared object file: No such file or directory
Zakładam ten zależność istnieje, bo require "http/client"
w moim źródłem. Nie wykonuję jednak połączeń związanych z SSL, ponieważ używam go tylko do łączenia się z niezabezpieczonymi witrynami.
ja widocznie też zależność od libevent-2.0.so.5
. Prawdopodobnie wszystkie programy Crystal działają. Kto wie, ile ma innych zależności od Crystal?
Moje pliki wykonywalne muszą działać na świeżo zainstalowanym systemie Linux. Jak mogę utworzyć plik wykonywalny Crystal bez żadnych zależności? Przypuszczam, że jest inaczej niż libc.
Podoba mi się to pytanie; kiedyś wszystko było statycznie powiązane. Robak się obraca. – will