我正在通过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
以此类推...
答案 0 :(得分:1)
由于您提到可以运行shell
脚本,因此它应该很容易处理:
webcore_install.sh
#!/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