libcurl 、 libssl 、およびその他のライブラリをカスタムコンパイルしています。システム ライブラリを置き換えたくありません。システムごとに変更すると、lib の競合が発生し、これらの lib に依存する他のすべてのコンポーネントをコンパイルする必要があるためです。
そこで、RPATH の使用を開始し、次のような構造化を開始しました。
|-- bin
| |-- app.out
|-- lib
| |-- libboost_program_options.so -> libboost_program_options.so.1.49.0
| |-- libboost_program_options.so.1.49.0
| |-- libboost_system.so -> libboost_system.so.1.49.0
| |-- libboost_system.so.1.49.0
| |-- libboost_thread.so -> libboost_thread.so.1.49.0
| |-- libboost_thread.so.1.49.0
| |-- libcares.so -> libcares.so.2.0.0
| |-- libcares.so.2 -> libcares.so.2.0.0
| `-- pkgconfig
`-- sbin
`-- nginx
このアプローチはうまくいきました。問題は、同じアプリケーション バージョンを必要とする PHP とノードを使い始めたことです。
|-- bin
| |-- a.out
|-- lib
| |-- libboost_program_options.so -> libboost_program_options.so.1.49.0
| |-- libboost_program_options.so.1.49.0
| |-- libboost_system.so -> libboost_system.so.1.49.0
| |-- libboost_system.so.1.49.0
| |-- libboost_thread.so -> libboost_thread.so.1.49.0
| |-- libboost_thread.so.1.49.0
| |-- libcares.so -> libcares.so.2.0.0
| |-- libcares.so.2 -> libcares.so.2.0.0
| `-- pkgconfig
|-- php_ext
| `-- sqlite3.so
|-- node
| `-- node_modules
| |-- bin
| | |-- node
`-- sbin
`-- nginx
現在、この svn リポジトリはリリースごとに大きくなっています。これを構造化するより良い方法はありますか?各アプリでlibフォルダーを複製せずに?