簡體   English   中英

在 Vagrant Ubuntu 20.04 VM 上安裝 pyenv

[英]Install pyenv on a Vagrant Ubuntu 20.04 VM

我正在嘗試在我的 vagrant 虛擬機上安裝pyenv

我的Vagrantfile看起來像這樣:

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/focal64"
  config.vm.box_version = "20220517.0.0"

  config.vm.provision :shell, path: "./provision/install-pyenv.sh", privileged: false
  config.vm.provision :shell, path: "./provision/install-python.sh", privileged: false
end

./provision/install-pyenv.sh在哪里:

#!/usr/bin/env bash

# Install required dependencies
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

# Run the installer
curl https://pyenv.run | bash

# Add the required variables to the ~/.bashrc file
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc

./provision/install-python.sh是:

#!/usr/bin/env bash

# Install the required Python version
pyenv install -v 3.10.4

# Set the global python version
pyenv global 3.10.4

但是當我運行vagrant up - 我收到以下錯誤: 在此處輸入圖像描述

pyenv不是公認的命令。 我究竟做錯了什么? 我是否將環境變量添加到不正確的 ~/.bashrc 中?

我真的不明白我哪里出了問題。

似乎實現此目的的最佳方法是以特權用戶身份安裝依賴項。

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/focal64"
  config.vm.box_version = "20220517.0.0"

  # Python
  config.vm.provision :shell, path: "./provision/install-pyenv-dependencies.sh"
  config.vm.provision :shell, privileged: false, path: "./provision/install-python.sh"

end

其中install-pyenv-dependencies.sh是:

#!/usr/bin/env bash

# Install required dependencies
apt-get update

apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl --fix-missing

install-python.sh是:

#!/usr/bin/env bash

# Run the installer
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

# Update the bashrc file
cat >> ~/.bashrc <<'EOL'
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
EOL

# Export the env vars
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"

# Use pyenv to install Python
pyenv install -v 3.10.4
pyenv global 3.10.4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM