Construindo o QuantLib no Amazon Linux

1

Estou tentando obter QuantLib versão 1.13 em execução no Amazon Linux.

Encontrei alguns arquivos .rpm no link , embora haja um .rpm atualizado para o Fedora, não há é um para o CentOS (os arquivos do CentOS parecem ser compatíveis com o Amazon Linux).

Consegui criar a biblioteca com êxito a partir da origem, no entanto, quando faço isso, ela cria um arquivo de 1,25% delibQuantLib.a e um de 421 MB% delibQuantLib.so.0.0.0.

Os arquivos .rpm no link são todos ~ 25MB.

Por fim, estou tentando empacotar o QuantLib bem o suficiente para que eu possa executá-lo em um ambiente do AWS Lambda. Isso exigiria que os binários comprimidos tivessem ~ 50MB e fossem compatíveis com o Amazon Linux AMI for Lambda.

Minha pergunta :

  • Por que existe tal discrepância entre o tamanho do arquivo .rpm e os arquivos libQuantLib.a / libQuantLib.so.0.0.0 resultantes quando eu construo a partir do código-fonte? O arquivo .rpm não é uma versão completa da biblioteca? O resultado da minha construção contém muito fluff?

  • É possível construir a partir da fonte e atingir o tamanho de ~ 25MB ou esse esforço é infrutífero?

por bphi 23.09.2018 / 04:52

1 resposta

2

O mais provável é que suas bibliotecas feitas à mão sejam construídas com informações de depuração, e é por isso que elas são tão grandes. Você pode tentar strip libQuantLib.so.0.0.0 e ver o quanto menor ele ficará.

Você pode tentar reconstruir o RPM oficial para o Amazon Linux 2 da seguinte forma:

  1. Fazer o download do RPM de origem ( QuantLib-1.4-7.el7.src.rpm )
  2. Instale rpm-build package (ou rpmbuild ? não tenho certeza qual é o nome em AL2 )
  3. Execute rpmbuild --rebuild QuantLib-1.4-7.el7.src.rpm e, se tudo der certo, você deve ter o QuantLib-...x86_64.rpm criado para o Amazon Linux 2 depois de um tempo.

Existem maio alguns problemas de dependência. Se você não estiver familiarizado com a criação de RPMs, sinta-se à vontade para fazer o acompanhamento aqui ou abrir outra pergunta.

No entanto, isso deve começar. Boa sorte com isso:)

Atualização - criação sem QuantLib-doc package.

De acordo com o comentário abaixo, a construção do QuantLib-doc exige muitas dependências extras. Para reconstruí-lo sem doc , faça o seguinte:

  1. RPM de origem de download, por exemplo codificar%
  2. Em um diretório vazio, execute /tmp
  3. Edite rpm2cpio /tmp/QuantLib-...src.rpm e comente QuantLib.spec , %package doc e %description doc sections
  4. Construa o RPM com %files doc

Isso deve remover a necessidade de instalar muitas dependências.

    
por 23.09.2018 / 09:33