sudo yum安装或重新安装

问题描述 投票:1回答:1

我正在通过EB将我的nodejs应用程序部署到Linux EC2上,而在.ebextensions中我需要安装一个字体包,我必须使用yum:

container_commands:
  01_getfont: 
    command: sudo yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/webcore-fonts-3.0-1.noarch.rpm

不幸的是,虽然这是第一次工作,但如果我再次重新部署,它第二次不起作用,它会抱怨包已经存在。

所以我要做的是使用这个:

command: sudo yum -y reinstall http://li.nux.ro/download/nux/dextop/el7/x86_64/webcore-fonts-3.0-1.noarch.rpm

不幸的是,虽然它适用于第二次,依此类推,如果包不存在,它第一次不起作用,给出错误:

Error: Problem in reinstall: no package matched to remove.

这让我疯了。

有没有解决的办法?不是很擅长Linux bash脚本,如果第一次使用这个命令,我可以喜欢其他命令吗?

我可以创建一个bash脚本:

    #!/bin/bash

    sudo yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/webcore-fonts-3.0-1.noarch.rpm

等等...

bash yum amazon-elastic-beanstalk ebextensions
1个回答
1
投票

既然你提到运行shell脚本是可能的,那么它应该很容易处理:

Web core_install.是

#!/bin/bash

function isinstalled {
  status=$?
  if [[ $status -eq 0 ]]; then
    # reinstall if already present
    sudo yum -y reinstall http://li.nux.ro/download/nux/dextop/el7/x86_64/webcore-fonts-3.0-1.noarch.rpm
  else
    # install if not present
    sudo yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/webcore-fonts-3.0-1.noarch.rpm
  fi
}

yum -C list installed "$@"
isinstalled

然后你的命令看起来像这样:

sudo ./path/to/webcore_install.sh webcore-fonts-3.0-1

您可能还需要更改shell脚本的权限:

chmod +x webcore_install.sh
© www.soinside.com 2019 - 2024. All rights reserved.