2015-06-04 80 views
1

這是我的第一篇文章,所以我希望我正確地問這個。使用Vagrant shell腳本安裝Passenger&Nginx

我編寫了一個shell腳本,用於在運行Ubuntu 14.04的Vagrant虛擬機上沒有任何用戶輸入的情況下自動安裝Passenger & Nginx(以及其他一些組件)。它使用以下工作正常:

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目錄中查找腳本運行後,沒有乘客.repo列出,因此無論何種原因curl不下載repo文件。但是,如果我在腳本完成後在終端命令行中手動輸入命令,它將下拉回購併運行。

我可能在這裏做了一些愚蠢的事情,但我對shell腳本很陌生,似乎無法弄清楚問題所在。

感謝您給我的任何幫助。

回答

0

sudo的 '回聲 「捲曲--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 
+0

是的,你是對的。我認爲,自從我處於shell環境之後,我需要首先發出一個回聲,但即使沒有回聲,仍然會下載passenger.repo文件。謝謝你的幫助。 – Doug366

相關問題