ebextensions:yum不安装包

时间:2015-03-01 15:49:53

标签: amazon-web-services amazon-ec2 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

在这种情况下,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-来成功安装wkhtml。 "和" rpm - 安装wkhtmltopdf - .."。如果我跳过yum步骤,rpm会抱怨wkhtmltopdf需要xorg包。

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

1 个答案:

答案 0 :(得分:16)

根据文件:

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。这样您就可以“覆盖”包安装顺序

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