2017-11-19 15 views
0

パッカーでMavenとGradleを使用してAMIをベイク処理しようとしています。以下は私のjsonファイルです。パーカーイメージのbashスクリプトでenv変数を設定する方法

#!/bin/bash 
sudo yum -y update 
sudo yum install -y httpd 
sudo mkdir -p /usr/local/apache-maven 
cd /usr/local/apache-maven 
sudo wget http://mirror.olnevhost.net/pub/apache/maven/binaries/apache-maven-3.2.2-bin.tar.gz 
sudo tar xvf apache-maven-3.2.2-bin.tar.gz 
echo "Maven is installed at usr local apache-maven #maven" 
sudo mkdir /opt/gradle 
cd /opt/gradle 
sudo wget https://services.gradle.org/distributions/gradle-3.4.1-bin.zip 
sudo unzip -d /opt/gradle gradle-3.4.1-bin.zip 
echo "Gradle is installed at opt gradle #gradle" 
cat > set-vars1.sh 
export M2_HOME=/usr/local/apache-maven/apache-maven-3.2.2 
export M2=$M2_HOME/bin 
export PATH=$M2:$PATH 
export PATH=$PATH:/opt/gradle/gradle-3.4.1/bin 
eval $(./set-vars1.sh) 

私はスクリプトを終了できず、変数をエクスポートできません。スクリプトを終了して実行するにはどうすればよいですか?

私がしようとしているのは、上記のスクリプトをプロビジョナとして書いているパッカーでAMIインスタンスを作成することです。私はmavenとgradleをダウンロードして解凍できますが、env変数はエクスポートされません。

基本的に、実行時にインスタンス内に変数を設定する必要があります。

+0

スクリプトの最後の行は、親シェルの環境を変更することはありません。この[link](https://askubuntu.com/questions/58814/how-do-i-add-environment-variables)では、環境変数の変更方法について説明しています。 –

答えて

1
cat <<EOF> set-vars1.sh 
export M2_HOME=/usr/local/apache-maven/apache-maven-3.2.2 
export M2=$M2_HOME/bin 
export PATH=$M2:$PATH 
export PATH=$PATH:/opt/gradle/gradle-3.4.1/bin 
EOF 
+0

権限 '' '/tmp/script_5973.shでエラーが発生しました:行15:set-vars1.sh:Permission denied''''; sudoの権限を追加するにはどうすればいいですか? '' 'sudo su''と' 'su''を試しました – lft93ryt

+0

' '' sudo bash -c'''でsudoの部分を解決しました – lft93ryt

+0

あなたは何が起こっているのかはっきりしませんこれらのコマンドと 'eval $(./ set-vars1.sh)'で達成することができます。変更を$ PATH変数に保存したい場合は、別の方法で変更を行う必要があります。上記の[リンク](https://askubuntu.com/questions/58814/how-do-i-add-environment-variables)を参照してください。 –

1
  1. cat > set-vars1.shは標準入力ストリームからのデータを期待しているため、スクリプトを終了できません。コマンドラインでその入力を与えずにEOF(control-D)を続けていれば、何も起こりません。
  2. 上記のcatコマンドでスクリプトが固執しているので、その後のexportコマンドは実行されません。
+0

'' 'cat << EOF'''はファイルを終了させるのに役立ちますか?私はEOFを試みたが動作しません。 – lft93ryt

+1

はい、私の2番目の答えを見てください。 –

関連する問題