为什么当我从 Ubuntu Dash 与 Ubuntu Terminal 启动 Sublime Text 3 时无法构建 Ruby 代码

为什么当我从 Ubuntu Dash 与 Ubuntu Terminal 启动 Sublime Text 3 时无法构建 Ruby 代码
  • ruby -v:ruby 2.2.2p95(2015-04-13 修订版 50295)[x86_64-linux]
  • which ruby:/home/iuser/.rbenv/shims/ruby
  • rails -v:Rails 4.2.3
  • subl -v: Sublime Text 构建版本 3126
  • Ubuntu:Ubuntu 16.04.1 LTS

无论我从哪个目录启动 Sublime Text 3,只要我使用subl终端启动它,我就可以构建任何 Ruby 代码,Ctrl + B即使设置是“工具”>“构建系统”>“自动”。

但是,当我从 Ubuntu Dash 启动相同的 Sublime Text 3 时,我无法构建 Ruby 代码,并且出现以下错误:

/bin/bash: ruby: command not found
[Finished in 0.0s with exit code 127]
[shell_cmd: ruby "/home/iuser/Desktop/1.rb"]
[dir: /home/iuser/Desktop]
[path:/home/iuser/bin:/home/iuser/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin]

即使$PATH返回:

bash: /home/iuser/.rbenv/plugins/ruby-build/bin:/home/iuser/.rbenv/shims:/home/iuser/.rbenv/bin:/home/iuser/bin:/home/iuser/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:

我能够通过创建一个指向 rbenv 的自定义构建系统,然后更改 Sublime Text 3 Tools > Build System > MyCustomBuild (http://snakelab.cc/2014/12/10/sublime_3_and_rbenv.html

我的问题是:

  1. 为什么我需要创建一个自定义构建系统,为什么它不像从终端启动的 Sublime Text 3 那样选择 rbenv?

  2. 我怎样才能进行更改,以便无论从哪里启动 Sublime Text 3,即使构建系统设置为自动,它也始终会构建 ruby​​ 代码?

答案1

谢谢穆鲁,我能够解决这个问题

最初我按照以下方式进行配置:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

正确的方法在于回显到 ~/.profile 而不是 ~/.bashrc:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
echo 'eval "$(rbenv init -)"' >> ~/.profile
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.profile
source ~/.profile

相关内容