在Vagrantfile中安装PyEnv

时间:2017-11-14 22:38:32

标签: python vagrant vagrantfile vagrant-provision pyenv

PyEnv没有great installer,并且需要一些安装后处理才能使其正常工作(例如修改.bashrc以添加到$PATH并制作两个{{ 1}}来电)。我想知道如何通过Vagrantfile安装PyEnv。我想构建一个可重用的图像来开发,这样如果我销毁这个VM,我就不必经历重新安装过程。

我已尝试运行安装程序并对pyenv进行推荐编辑以使.bashrc正常工作,但当我进入我的Vagrant框时pyenv未安装。我尝试将pyenv脚本移动到pyenv,但机器启动时它不存在。我如何使这项工作?

作为参考,以下是我目前正在运行的脚本,无法在/bin/pyenv的Vagrant配置步骤中将PyEnv安装到Vagrant机器:

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

都没有工作。我该如何安装?

1 个答案:

答案 0 :(得分:2)

您的问题是您通过Vagrant shell配置以root身份运行脚本,因此更新是为您的root用户完成的。 当您进入虚拟机时,您已经与您的流浪用户一起登录,因此无法使用。

当您需要更改时,在Vagrantfile中使用privileged选项运行脚本

config.vm.provision "shell", path: "xxx", privileged: false