ebextensions: yum 不安装包

ebextensions: yum does not install package

我正在尝试制作一个将安装 wkhtmltopdf 的 ebextensions 文件。

目前看起来是这样的:

packages: 
 yum:
  xorg-x11-fonts-75dpi: []
  libpng: []
  xz: [] 
  urw-fonts: []
  libXext: []
  openssl-devel: []
  libXrender: []
rpm:
   wkhtmltopdf: https://s3-eu-west-1.amazonaws.com/myS3Account/wkhtmltox-0.12.2.1_linux-centos5-amd64.rpm

在这种情况下,wkthmltopdf 安装失败。我收到以下错误:

Failed dependencies:
  xorg-x11-fonts-75dpi is needed by wkhtmltox-1:0.12.2.1-1.x86_64

如果我使用 SSH 连接到我的 EC2 实例,我可以通过手动 运行 "yum install xorg-x11-fonts-75dpi",然后 "wget wkthmltopdf-..." 和 "rpm --install wkhtmltopdf-.." 成功安装 wkhtml。如果我跳过 yum 步骤,rpm 会抱怨 wkhtmltopdf 需要 xorg 包。

ebextensions 似乎没有在部署时安装 xorg-x11-fonts-75dpi。我做错了什么吗?

根据文档:

Packages are processed in the following order: rpm, yum, and then rubygems and python.

Elastic beanstalk 首先处理您的 rpm 包,导致错误并且永远不会到达 yum 包。

有几种方法可以解决这个问题。

1) 运行 rpm 通过像

这样的命令安装
commands:
    install_wkhtmltox:
        command: yum -y install https://s3-eu-west-1.amazonaws.com/myS3Account/wkhtmltox-0.12.2.1_linux-centos5-amd64.rpm

这应该会通过 yum 自动解决依赖关系。

2) 将 .ebextensions 文件拆分为两个:01_install_dependencies.config 和 02_install_wkhtmltox.config。在01文件安装yum包,在02文件安装rpm。这样你就可以"override"包安装顺序

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-containers-format-packages