Compiling
在 Amazon Linux 上建構 QuantLib
我正在嘗試讓QuantLib 1.13 版在 Amazon Linux 上執行。
我在https://pkgs.org/download/QuantLib
.rpm
找到了一些文件,雖然 Fedora 有最新的,但 CentOS 沒有(CentOS 文件似乎與 Amazon Linux 兼容)。.rpm
我能夠從原始碼成功建構庫,但是當我這樣做時,它會創建一個 1.2GB
libQuantLib.a
文件和一個 421MBlibQuantLib.so.0.0.0
文件。https://pkgs.org/download/QuantLib上的
.rpm
文件都是 ~25MB。最終,我試圖將 QuantLib 打包得足夠好,以便可以在 AWS Lambda 環境中執行它。這將要求壓縮的二進製文件約為 50MB,並與適用於 Lambda 的 Amazon Linux AMI 兼容。
我的問題:
.rpm
為什麼文件大小與我從原始碼建構時產生的libQuantLib.a
/文件之間存在如此差異?libQuantLib.so.0.0.0
該.rpm
文件不是庫的完整版本嗎?我的建構結果是否包含很多絨毛?- 是否可以從原始碼建構並達到約 25MB 的大小,還是這種努力沒有結果?
您的手工建構的庫很可能是使用調試資訊建構的,這就是它們如此之大的原因。你可以試試看
strip libQuantLib.so.0.0.0
它會變小多少。您可以嘗試為Amazon Linux 2重建官方 RPM,如下所示:
- 下載源 RPM (
QuantLib-1.4-7.el7.src.rpm
)- 安裝
rpm-build
包(或rpmbuild
?不太確定AL2上的名稱是什麼)- 執行
rpmbuild --rebuild QuantLib-1.4-7.el7.src.rpm
,如果一切順利,您應該會在一段時間後為Amazon Linux 2QuantLib-...x86_64.rpm
建構。可能存在一些依賴性問題。如果您不熟悉建構 RPM,請隨時在此處跟進或提出另一個問題。
然而,這應該讓你開始。祝你好運:)
更新 - 無
QuantLib-doc
包建構。根據下面的評論,建構
QuantLib-doc
需要很多額外的依賴項。要在沒有doc的情況下重建它,請執行以下操作:
- 下載源 RPM,例如到
/tmp
- 在空目錄中執行
rpm2cpio /tmp/QuantLib-...src.rpm
- 編輯
QuantLib.spec
和註釋掉%package doc
,%description doc
和%files doc
部分- 建構 RPM
rpmbuild -ba QuantLib.spec
這應該消除安裝許多依賴項的需要。