ebextensions:yum不安装包

DkM*_*DkM 8 amazon-ec2 amazon-web-services amazon-elastic-beanstalk

我正在尝试制作一个将安装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
Run Code Online (Sandbox Code Playgroud)

在这种情况下,wkthmltopdf无法安装.我收到以下错误:

Failed dependencies:
  xorg-x11-fonts-75dpi is needed by wkhtmltox-1:0.12.2.1-1.x86_64
Run Code Online (Sandbox Code Playgroud)

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

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

use*_*905 16

根据文件:

Packages are processed in the following order: rpm, yum, and then rubygems and python.
Run Code Online (Sandbox Code Playgroud)

弹性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
Run Code Online (Sandbox Code Playgroud)

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

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

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