![套件管理和建構舊軟體](https://rvso.com/image/697409/%E5%A5%97%E4%BB%B6%E7%AE%A1%E7%90%86%E5%92%8C%E5%BB%BA%E6%A7%8B%E8%88%8A%E8%BB%9F%E9%AB%94.png)
.so
在工作中,我們有一個供應商提供的函式庫,它以 C++ 頭檔和檔案的形式交付給我們。我們的生產環境長期以來一直是 CentOS 6,但我們可能很快就會升級到 CentOS 7。
我還應該提到供應商庫的依賴項是動態連結的。
安裝到 CentOS 6 的新實例上效果很好yum
,但在 CentOS 7 上安裝效果很差。yum
抱怨很多包找不到,以 python2.6(即libpython2.6.so
)為例。我可以找到所有這些缺少的依賴項的 RPM,但在許多情況下無論如何都無法安裝它們,正如 yum 所說,在意味著降級的情況下「無能為力」。
我想我的問題是雙重的。是否可以像 Python 的情況一樣,透過 安裝另一個版本的 Python yum
,而不使其成為系統版本,以便連結器可以為這個舊的供應商庫找到它?
手動創建所有.so
文件似乎是一場失敗的戰鬥,因為有一個很多缺少依賴項,例如libpng12
,當 CentOS 7 有libpng15
.
在這種情況下,經驗豐富的系統管理員會做什麼?或者這只是讓這個舊程式在 CentOS 7 上運行是在風車上傾斜的情況?