Qt、Boost、および他の多くのライブラリとそのバージョンに付属のバージョンに依存するUbuntu 16.04でコンパイルされたアプリケーションがあります。ただし、Ubuntu 12.04を実行しているWebサーバーでこのアプリケーションを実行する必要がありますが、rootアクセス権はありません。
アプリケーションを実行しようとすると、ライブラリのバージョンが異なるか存在しないと文句を言います。
この問題を解決するために、lddによって報告された各ライブラリをフォルダにコピーし、そのフォルダを指すLD_LIBRARY_PATHを使用してアプリケーションを実行してみましたが、アプリケーションは分割エラー信号を受け取りました。
以前のバージョンのライブラリにはない機能を使用しているため、Ubuntu 12.04ではアプリケーションをコンパイルできません。また、古いシステムに新しいライブラリを構築する予定はありません。
私の質問は:最新バージョンのUbuntuでコンパイルされたアプリケーションを以前のバージョンのUbuntuでどのように実行しますか?
答え1
最も簡単な解決策は何ですか?
Ubuntu 12サーバーを構築し、アプリケーションを実行するために必要なUbuntu 12サーバーをコピーし、そのサーバーでバージョンをコンパイルします。
なぜなら、あなたはすべてを扱うことができないからです。みんな共有オブジェクトは正確ですが、カーネルインタフェースは異なる場合があります。