【问题标题】:Install PyEnv in Vagrantfile在 Vagrantfile 中安装 PyEnv
【发布时间】:2017-11-14 22:38:31
【问题描述】:

PyEnv 没有great installer,它需要一些安装后处理才能使其正常工作(例如修改.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

都不行。如何安装它?

【问题讨论】:

  • 嘿!您能否尝试不使用安装程序并按照以下详细步骤操作:github.com/pyenv/pyenv#installation。将该链接上的安装步骤转换为 bash 脚本应该非常简单。在我完整回答之前你可以试试吗?
  • 明天试试,谢谢

标签: python vagrant vagrantfile vagrant-provision pyenv


【解决方案1】:

您的问题是您以 root 身份通过 Vagrant shell 配置运行脚本,因此更新已为您的 root 用户完成。 当您 ssh 进入虚拟机时,您已使用 vagrant 用户登录,因此它不可用。

当你需要改变是在你的 Vagrantfile 中使用privileged 选项运行脚本

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2022-09-29
    • 2022-08-16
    相关资源
    最近更新 更多