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
linux-vdso.so.1
nigdzie nie ma, przypuszczam, że jest w jądrze, prawda?man 7 vdso
: „„ VDSO ”(wirtualny dynamiczny obiekt współdzielony) to mała biblioteka współdzielona, którą jądro automatycznie mapuje na przestrzeń adresową wszystkich aplikacji w przestrzeni użytkownika.”Jedna sugestia dotycząca rejestratora :
Jeśli przyczyną losowania układu przestrzeni adresowej (ASLR) jest awaria, nie musisz go wyłączać dla całego komputera. Możesz to wyłączyć tylko dla tego procesu:
Uruchomi to polecenie z wyłączonym układem losowym (nie trzeba być rootem).
źródło
statifier
...xfig_statified
wciąż zrzuty rdzenia ... szkoda. W każdym razie dzięki.