Дозвольте пояснити проблему на прикладі. Я використовую якусь стару програму в своїй щоденній роботі, наприклад, наприклад , Xfig і PDFedit .
Зараз ці програми досить старі і не надто часто оновлюються; мій страх полягає в тому, що одного чи іншого дня вони більше не працюватимуть через відсутність бібліотеки чи несумісного оновлення.
Якщо програма легко скласти прямо зараз , на працюючу систему, рішення зручно: спробувати зламати трохи джерело і скомпілювати його статичний --- отриманий виконуваний файл буде великим і не так ефективний, але він буде працювати для передбачуване майбутнє (1). Це, мабуть, так xfig
і я спробую це якомога швидше.
Але, наприклад, pdfedit
залежить від Qt3, і налаштування системи для його компіляції наразі досить складна. На щастя, його можна запустити прямо зараз, завдяки тому, що потрібна йому бібліотека не суперечить ні з чим. Але це може змінитися в майбутньому, тому я хотів би вирішити цю проблему:
Як я можу зробити статичну двійкову (або подібну річ), якщо у мене є динамічна одна та всі бібліотеки, але немає вихідного коду, на Ubuntu?
Я обшукував навколо. Однією з можливостей є статифікатор (2), але у нього багато проблем з рандомізацією адреси , тому це "ні-ні". Невільна версія, Ermine , здається, працює, але я дійсно вважаю за краще варіант з відкритим кодом.
Інша можливість - використовувати докер або подібну систему упаковки. Але весь підручник, який я знайшов, досить орієнтований на RedHat ; і, чесно кажучи, досить складною для наслідування.
Виноски :
(1) не такий божевільний. Я використовую статичний ffmpegНаприклад, , працює нормально і не має проблем із сумісністю ...
(2) для компіляції statifier
див. Https://stackoverflow.com/questions/23498237/compile-program-for-32bit-on-64bit-linux-os-causes-fatal-error