在 Vagrantfile 中安装 PyEnv
Install PyEnv in Vagrantfile
PyEnv 没有 great installer,它需要一些 post-install 处理才能使其正常工作(例如修改 .bashrc
以添加到 $PATH
并进行两次 pyenv
调用)。我想知道如何有人能够通过 Vagrantfile 安装 PyEnv。我想构建一个可重复使用的映像进行开发,这样我就不必在销毁此 VM 时重新安装过程。
我已经尝试 运行 安装程序并对 .bashrc
进行了推荐的编辑以使 pyenv
正常工作,但是当我进入我的 Vagrant 框时 pyenv
是未安装。我试过将 pyenv
脚本移动到 /bin/pyenv
中,但是当机器出现时它不在那里。我该怎么做?
作为参考,这是我目前 运行 在 Vagrantfile
:
中的 Vagrant 配置步骤中无法将 PyEnv 安装到 Vagrant 机器的脚本
#! /usr/bin/env bash
# REQUIRES: curl, git
curl -L https://raw.githubusercontent.com/pyenv/pyenv-
installer/master/bin/pyenv-installer | bash
cat >> /home/ubuntu/.bashrc << 'EOF'
export PATH="$PATH:~/.pyenv/bin"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOF
exec $SHELL
并尝试将 pyenv
移动到 /bin
下:
#! /usr/bin/env bash
# REQUIRES: curl, git
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
mv ~/.pyenv/bin/pyenv /bin/pyenv
cat >> /home/ubuntu/.bashrc << 'EOF'
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOF
exec $SHELL
都不行。我如何安装它?
您的问题是您运行通过 Vagrant shell 配置脚本作为 root,因此更新是为您的 root 用户完成的。
当您通过 ssh 进入 VM 时,您已使用 vagrant 用户登录,因此它不可用。
当您需要将 Vagrantfile 中的 is 更改为 运行 使用 privileged
选项的脚本时
config.vm.provision "shell", path: "xxx", privileged: false
PyEnv 没有 great installer,它需要一些 post-install 处理才能使其正常工作(例如修改 .bashrc
以添加到 $PATH
并进行两次 pyenv
调用)。我想知道如何有人能够通过 Vagrantfile 安装 PyEnv。我想构建一个可重复使用的映像进行开发,这样我就不必在销毁此 VM 时重新安装过程。
我已经尝试 运行 安装程序并对 .bashrc
进行了推荐的编辑以使 pyenv
正常工作,但是当我进入我的 Vagrant 框时 pyenv
是未安装。我试过将 pyenv
脚本移动到 /bin/pyenv
中,但是当机器出现时它不在那里。我该怎么做?
作为参考,这是我目前 运行 在 Vagrantfile
:
#! /usr/bin/env bash
# REQUIRES: curl, git
curl -L https://raw.githubusercontent.com/pyenv/pyenv-
installer/master/bin/pyenv-installer | bash
cat >> /home/ubuntu/.bashrc << 'EOF'
export PATH="$PATH:~/.pyenv/bin"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOF
exec $SHELL
并尝试将 pyenv
移动到 /bin
下:
#! /usr/bin/env bash
# REQUIRES: curl, git
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
mv ~/.pyenv/bin/pyenv /bin/pyenv
cat >> /home/ubuntu/.bashrc << 'EOF'
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOF
exec $SHELL
都不行。我如何安装它?
您的问题是您运行通过 Vagrant shell 配置脚本作为 root,因此更新是为您的 root 用户完成的。 当您通过 ssh 进入 VM 时,您已使用 vagrant 用户登录,因此它不可用。
当您需要将 Vagrantfile 中的 is 更改为 运行 使用 privileged
选项的脚本时
config.vm.provision "shell", path: "xxx", privileged: false