首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Amazon编译准备部署最新版本的“”

如何为Amazon编译准备部署最新版本的“”
EN

Stack Overflow用户
提问于 2021-03-17 11:18:16
回答 3查看 929关注 0票数 1

我有一台服务器运行在AWS上。应用程序使用波普尔-功用

服务器是CI集成的。因此,所有必要的依赖项都是在部署应用程序之前安装的。依赖项之一是poppler-utils

直到现在,我一直使用$ yum install poppler-utils安装它。最近,我意识到Amazon上的版本已经很久没有更新了(0.26.5vsupubuntu上的最新版本是20.08-6年版本差异)。

当然,我可以在一台机器上构建和安装(在源代码上使用makemake install )。为了达到CI/CD的目的,我需要一些可以快速安装和部署的东西(yum软件包对此非常有用)。

我如何准备部署最近版本的poppler?

我探索过的几个想法是:

  1. 尝试从另一个具有poppler最新版本的回购(非amazon )中安装。
  2. 自己构建一个rpm文件。我自己从来没有造过这样的任务,所以看起来很艰巨。

寻找前进的方向。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-23 09:23:08

基于这些评论。

提出的解决方案是建立自定义AMI

您可以从现有的AMI启动一个实例,自定义实例(例如,在实例上安装软件),然后将更新的配置保存为自定义的AMI。从这个新的定制AMI启动的实例包括您在创建AMI时所做的自定义。

因此,AMI是用当前版本的波普尔-功用创建的,该版本确保从AMI启动的任何实例都将具有最新的波卜勒。

票数 1
EN

Stack Overflow用户

发布于 2021-03-23 01:03:59

我在这个问题上花了大约三天时间。事实证明,Amazon本质上是CentOS7,它看起来像是0.26.5 (2014年9月)是CentOS7的最后一个版本,0.66.0 (2018年6月)用于CentOS8,20.11.0 (2020年11月)根据https://pkgs.org/download/poppler-utils 21.03是最新版本(2021年3月)。

我试图通过大量的http://www.linuxfromscratch.org文章和大量的prereq构建自己版本的库,但没有成功。我一直发现的最大问题是,我构建的版本没有被使用,而通过yum安装的版本是,所以我一直试图解决的一些版本依赖项没有被识别出来。我不想乱搞百胜,把其他的都搞砸。

所以,我已经走上了Docker...one的道路,我知道我应该学到一些东西,但从来没有去做过。这是一个完美的解决方案。我在在docker中安装0.82版本的Poppler实用程序的基础上构建了我的对接器,并将版本更新到最近的版本。

构建Dockerfile之后,创建一个AMI,这样您就有了一个起点,并且不必等待所有的东西下载和重新构建。

票数 1
EN

Stack Overflow用户

发布于 2021-03-23 09:40:10

非常感谢marcin和zethw给出的答案。

我使用了AMI +从头开始构建poppler的方法。高级别的步骤是:

  1. 创建一个适合创建AMI的实例。在我的例子中,我是用弹性豆柄来申请的。因此,必须从弹力豆柄AMI创建实例。
  2. 连接到该AMI并构建poppler。你会注意到你需要在这上面跳很多图书馆舞。但是最后,确保$ pdftoppm --help返回正确的输出(作为测试的一种方式)。
  3. 从步骤2中使用的实例创建一个AMI。

这听起来很简单,但你必须处理一些问题:

  • 要获得最新版本的cmake作为poppler的最新版本,需要最新的cmake。你需要建立它,因为百胜的亚马逊回购没有最近的版本。
  • 在构建poppler时,cmake命令提示您缺少库。这可能会因Amazon 1到2以及您的设置而有所不同。
  • 不要忘记确保poppler (例如pdftoppm)在最后的路径上。

的忠告

我想说@zethw的答案从长远来看是更可持续的。或者,如果你有奢侈品的话,可以考虑离开Amazon。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66672006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档