在ssh上运行命令时请参考rbenv

问题描述 投票:0回答:1

我有一个无头的Ubuntu 18.04 VM,我要在rbenv上安装Rails应用程序。

我希望能够自动化一些管理操作,以便可以在本地运行它们,并让我的脚本通过ssh执行命令。但是,当我这样做时,我得到的是系统红宝石而不是rbenv红宝石。如果我直接将ssh放到盒子上,那么我会得到正确的rbenv红宝石。

示例:

ubuntu:~$ cat show-ruby.sh
which ruby
ruby --version
ubuntu:~$ bash show-ruby.sh
/home/ubuntu/.rbenv/shims/ruby
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
laptop:~$ ssh ubuntu 'bash show-ruby.sh'
/usr/bin/ruby
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]

rbenv在我的.bashrc文件中初始化:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

所以我尝试将source ~/.bashrc添加到我的show-ruby.sh测试脚本的顶部,但这没有什么区别。有什么想法可以迫使我的远程执行脚本尊重我的rbenv安装的ruby吗?

ruby ssh rbenv
1个回答
1
投票

只需添加具有所需ruby版本的.ruby-version文件,rbenv会自动设置ruby版本

[current] > cat .ruby-version
2.4.6
[current] > rbenv version
2.4.6 (set by .ruby-version)
© www.soinside.com 2019 - 2024. All rights reserved.