Compiling

在 Amazon Linux 上建構 QuantLib

  • October 27, 2018

我正在嘗試讓QuantLib 1.13 版在 Amazon Linux 上執行。

我在https://pkgs.org/download/QuantLib.rpm找到了一些文件,雖然 Fedora 有最新的,但 CentOS 沒有(CentOS 文件似乎與 Amazon Linux 兼容)。.rpm

我能夠從原始碼成功建構庫,但是當我這樣做時,它會創建一個 1.2GBlibQuantLib.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,如下所示:

  1. 下載源 RPM ( QuantLib-1.4-7.el7.src.rpm)
  2. 安裝rpm-build包(或rpmbuild?不太確定AL2上的名稱是什麼)
  3. 執行rpmbuild --rebuild QuantLib-1.4-7.el7.src.rpm,如果一切順利,您應該會在一段時間後為Amazon Linux 2QuantLib-...x86_64.rpm建構。

可能存在一些依賴性問題。如果您不熟悉建構 RPM,請隨時在此處跟進或提出另一個問題。

然而,這應該讓你開始。祝你好運:)

更新 - 無QuantLib-doc包建構。

根據下面的評論,建構QuantLib-doc需要很多額外的依賴項。要在沒有doc的情況下重建它,請執行以下操作:

  1. 下載源 RPM,例如到/tmp
  2. 在空目錄中執行rpm2cpio /tmp/QuantLib-...src.rpm
  3. 編輯QuantLib.spec和註釋掉%package doc%description doc%files doc部分
  4. 建構 RPMrpmbuild -ba QuantLib.spec

這應該消除安裝許多依賴項的需要。

引用自:https://unix.stackexchange.com/questions/470800