Hãy để tôi giải thích vấn đề với một ví dụ. Tôi sử dụng một số chương trình cũ trong công việc hàng ngày của mình, ví dụ như xfig và pdfedit .
Bây giờ, các chương trình này khá cũ và không được cập nhật quá thường xuyên; nỗi sợ của tôi là một ngày nào đó họ sẽ không làm việc nữa vì thiếu một số thư viện hoặc một số cập nhật không tương thích.
Nếu bây giờ chương trình dễ dàng biên dịch , trên một hệ thống đang chạy, giải pháp rất hữu ích: hãy thử hack một chút nguồn và biên dịch tĩnh --- kết quả thực thi sẽ lớn và không hiệu quả, nhưng nó sẽ hoạt động cho tương lai gần (1). Đây có vẻ là trường hợp xfig
và tôi sẽ thử nó càng sớm càng tốt.
Nhưng, ví dụ, pdfedit
phụ thuộc vào Qt3 và thiết lập một hệ thống để biên dịch nó khá phức tạp tại thời điểm này. May mắn thay, nó có thể được chạy ngay bây giờ, nhờ thực tế là thư viện mà nó cần không xung đột với bất cứ điều gì. Nhưng điều này có thể thay đổi trong tương lai, vì vậy tôi muốn giải quyết vấn đề này:
Làm cách nào tôi có thể tạo nhị phân tĩnh (hoặc vật tương tự) nếu tôi có một thư viện động và tất cả các thư viện, nhưng không có mã nguồn, trên Ubuntu?
Tôi tìm kiếm xung quanh. Một khả năng là statifier (2), nhưng nó có rất nhiều vấn đề với việc ngẫu nhiên địa chỉ , vì vậy nó là không. Phiên bản không miễn phí, Ermine , dường như hoạt động, nhưng tôi thực sự thích một tùy chọn nguồn mở.
Một khả năng khác là sử dụng docker hoặc một hệ thống đóng gói tương tự. Nhưng tất cả các hướng dẫn tôi tìm thấy là khá định hướng RedHat ; và, thành thật mà nói, khá phức tạp để làm theo.
Chú thích :
(1) không quá điên rồ. Tôi sử dụng một ffmpeg tĩnh chẳng hạn, hoạt động tốt và không có bất kỳ vấn đề tương thích nào ...
(2) để biên dịch statifier
, xem /programming/23498237/compile-program-for-32bit-on-64bit-linux-os-causes-firth-error