Pozwól mi wyjaśnić problem na przykładzie. W codziennej pracy używam starego programu, na przykład xfig i pdfedit .
Teraz te programy są dość stare i nie są zbyt często aktualizowane; obawiam się, że któregoś dnia nie będą już działać z powodu braku jakiejś biblioteki lub jakiejś niekompatybilnej aktualizacji.
Jeśli program jest teraz łatwy do skompilowania na działającym systemie, rozwiązanie jest przydatne: spróbuj zhakować nieco źródło i skompilować je statycznie - wynikowy plik wykonywalny będzie duży i nie tak wydajny, ale będzie działał dla dająca się przewidzieć przyszłość (1). Wydaje się, że tak jest xfig
i postaram się jak najszybciej.
Ale na przykład pdfedit
zależy od Qt3, a skonfigurowanie systemu do jego kompilacji jest w tej chwili dość skomplikowane. Na szczęście można go teraz uruchomić dzięki temu, że biblioteka, której potrzebuje, nie koliduje z niczym. Ale to może się zmienić w przyszłości, dlatego chciałbym rozwiązać ten problem:
Jak mogę utworzyć statyczny plik binarny (lub coś podobnego), jeśli mam bibliotekę dynamiczną i wszystkie biblioteki, ale bez kodu źródłowego, na Ubuntu?
Rozejrzałem się. Jedną z możliwości jest statifier (2), ale ma wiele problemów z randomizacją adresu , więc jest to nie-nie. Niewolna wersja, Ermine , wydaje się działać, ale naprawdę wolałbym opcję open source.
Inną możliwością jest użycie dokera lub podobnego systemu pakowania. Ale wszystkie samouczki, które znalazłem, są zorientowane na RedHat ; i, szczerze mówiąc, dość skomplikowane do naśladowania.
Przypisy :
(1) nie jest taki szalony. Używam na przykład statycznego ffmpeg , działa dobrze i bez żadnych problemów ze zgodnością ...
(2), aby skompilować statifier
, zobacz /programming/23498237/compile-program-for-32bit-on-64bit-linux-os-causes-fatal-error