gpt4 book ai didi

bash - 在 Vagrant Provisioning 期间重新加载 .bashrc

转载 作者:行者123 更新时间:2023-11-29 09:15:30 26 4
gpt4 key购买 nike

我正在为 Vagrant 使用 shell provisining,并尝试使用 rbenv 安装 rails。

遵循本指南:

https://gorails.com/setup/ubuntu/14.04

我已经得到了这个工作脚本

# Update sources:
whoami
sudo apt-get -y update
sudo apt-get -y install build-essential zlib1g-dev curl git-core sqlite3 libsqlite3-dev git libssl-dev


#install rbenv and Ruby 1.9.2
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
sudo mkdir /usr/local/share/ruby-build
~/.rbenv/plugins/ruby-build/install.sh
~/.rbenv/bin/rbenv install 2.1.2
~/.rbenv/bin/rbenv global 2.1.2

以上指南使用 exec $SHELL 将 rbenv 添加到 $PATH。我有那个命令、bashsource .bashrc 等等。他们要么不刷新 $PATH 变量,要么提前退出配置脚本。所以现在我必须通过完整路径调用 rbenv。有没有办法重新加载 bash,以便我可以在 Vagrant 配置脚本期间刷新 $PATH?

最佳答案

有什么理由不按原样在脚本中 export PATH="$HOME/.rbenv/bin:$PATH" 吗?这将修改当前 session 的环境。或者,在附加到相关文件后,应该可以在脚本中使用 source ~/.bashrc ......如果这不起作用,那么就会发生一些奇怪的事情.

请注意,bash 通常不会在启动时读取 .bashrc 文件。它在以交互方式启动而不是作为登录 shell 的特定情况下这样做。 bash 的大多数编程调用都是非交互式的。您可以通过在调用 shell 之前设置 BASH_ENV 环境变量来指定 bash 在非交互式调用时读取的文件。

关于bash - 在 Vagrant Provisioning 期间重新加载 .bashrc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25152212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com