ec2启动bash命令不起作用

时间:2017-11-25 08:50:25

标签: bash amazon-web-services amazon-ec2

我在启动ec2实例时运行此代码,安装了python,但未创建该文件夹。

#!/bin/bash

sudo yum update -y

sudo yum install python36 -y

mkdir venv

cd venv

virtualenv -p /usr/bin/pyton3.6 python36

echo "source /home/ec2-user/venv/python36/bin/activate" > /home/ec2-user/.bashrc

pip install boto3

2 个答案:

答案 0 :(得分:3)

该脚本可能会出现一些问题。我建议用更强大的方式来编写它:

#!/bin/bash

cd "$(dirname "$0")"

sudo yum update -y
sudo yum install python36 -y

if [ ! -d venv ]; then
    mkdir venv
    virtualenv -p /usr/bin/pyton3.6 venv/python36

    echo "source venv/python36/bin/activate" >> ~/.bashrc

    source venv/python36/bin/activate
    pip install boto3
fi

改进点:

  • 通过在脚本目录中执行cd,确保我们位于正确的目录中
  • 请勿对用户主目录位置进行硬编码,请使用~
  • 如果已存在,请勿截断~/.bashrc
  • 在安装boto3之前,激活虚拟环境非常重要,否则pip将不会将其安装在虚拟环境中(它将尝试在系统范围内安装)

答案 1 :(得分:0)

感谢您的投入。这很有效。 主要是:

  • 清晰路径
  • 激活boto3安装的虚拟环境

“#!/斌/庆典

sudo yum update -y

sudo yum install python36 -y

mkdir / home / ec2-user / venv

cd / home / ec2-user / venv

virtualenv -p /usr/bin/python3.6 python36

echo“source / home / ec2-user / venv / python36 / bin / activate”>> /home/ec2-user/.bashrc

source / home / ec2-user / venv / python36 / bin / activate

pip install boto3