![为什么当我从 Ubuntu Dash 与 Ubuntu Terminal 启动 Sublime Text 3 时无法构建 Ruby 代码](https://linux22.com/image/996665/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BD%93%E6%88%91%E4%BB%8E%20Ubuntu%20Dash%20%E4%B8%8E%20Ubuntu%20Terminal%20%E5%90%AF%E5%8A%A8%20Sublime%20Text%203%20%E6%97%B6%E6%97%A0%E6%B3%95%E6%9E%84%E5%BB%BA%20Ruby%20%E4%BB%A3%E7%A0%81.png)
ruby -v
:ruby 2.2.2p95(2015-04-13 修订版 50295)[x86_64-linux]which ruby
:/home/iuser/.rbenv/shims/rubyrails -v
:Rails 4.2.3subl -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)
我的问题是:
为什么我需要创建一个自定义构建系统,为什么它不像从终端启动的 Sublime Text 3 那样选择 rbenv?
我怎样才能进行更改,以便无论从哪里启动 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