通过 vagrant 安装 Perlbrew provision.sh

Perlbrew installation through vagrant provision.sh

我想自动将 perlbrew 安装到 vagrant box 中。我使用 .sh 文件来完成这个。

provision.sh

apt-get update
sudo -H -u vagrant bash -c " \curl -kL https://install.perlbrew.pl | bash"
sudo -u vagrant bash -c "source ~/perl5/perlbrew/etc/bashrc"

在 ssh 进入 vagrant 后,我​​希望

$ which perlbrew

将return

/home/vagrant/perl5/perlbrew/bin/perlbrew

但不幸的是它return没什么。

您的 source ~/perl5/perlbrew/etc/bashrc 命令应用的设置不可能在另一个 bash 会话中可见(并且 SSH 会话执行新的 bash 进程)。

您需要将命令 source ~/perl5/perlbrew/etc/bashrc 添加到 bash "rc" 文件之一。

  • 对于单个用户使用以下命令:

    echo "source ~/perl5/perlbrew/etc/bashrc" >> ~/.bashrc
    
  • 对于所有使用以下命令的用户:

    echo "source ~/perl5/perlbrew/etc/bashrc" >> /etc/bash.bashrc
    

这样每次启动新的 bash 会话时,它都会 运行 source ~/perl5/perlbrew/etc/bashrc 并应用设置。