安装乘客和Nginx使用Vagrant shell脚本

时间:2015-06-04 22:17:43

标签: shell nginx vagrant passenger

这是我发给SO的第一篇文章,所以我希望我能正确地提出这个问题。

我写了一个shell脚本来自动安装Passenger& Nginx(以及一些其他组件)在运行Ubuntu 14.04的Vagrant VM上没有任何用户输入。使用以下方法可以正常工作:

echo "****** Adding Passenger & Nginx Repo ******"
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
    sudo apt-get install apt-transport-https ca-certificates -y
    echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main" | sudo tee /etc/apt/sources.list.d/passenger.list
    sudo chown root: /etc/apt/sources.list.d/passenger.list
    sudo chmod 600 /etc/apt/sources.list.d/passenger.list
    sudo apt-get update
echo "****** Installing Passenger & Nginx ******"
    sudo apt-get install nginx-extras passenger -y

现在我想为运行CentOS 6.4的Vagrant VM做同样的事情。我按照Phusion Passenger site上找到的CentOS指示,但我似乎无法正常工作。当我执行以下操作时,shell脚本的输出显示"没有可用的包裹乘客。":

echo "****** Adding Passenger & Nginx Repo ******"
    sudo yum install epel-release pygpgme curl -y
    sudo 'echo "curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo"'
    sudo chown root: /etc/yum.repos.d/passenger.repo
    sudo chmod 600 /etc/yum.repos.d/passenger.repo
    sudo yum update
echo "****** Installing Passenger & Nginx ******"
    sudo yum install nginx passenger -y

在脚本运行后查看/etc/yum.repos.d目录,没有列出passenger.repo,所以看起来无论出于何种原因curl没有下载repo文件。但是,如果我在脚本完成后手动在终端命令行中键入命令,它将下拉回购并运行。

我可能在这里做了一些愚蠢的事情,但我对shell脚本很新,而且似乎无法找出问题所在。

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

  

sudo'echo“curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo”'

这是错误的,不是手册指示的。它应该是:

sudo curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo