2015-09-27 93 views
0

底線是,rbenv沒有墊片。我已經窮盡了可能是問題的想法。幾天後,我的頭撞到牆上修復但無濟於事,我認爲該是尋求幫助的時候了。Rbenv沒有正確地使用墊片和墊片

我試圖從RVM切換到rbenv,所以這顯然可能是一個因素在這裏。任何想法/幫助將會很棒。

這裏發生了什麼:

[09:38] ~ $ gem install pry 
Fetching: pry-0.10.2.gem (100%) 
Successfully installed pry-0.10.2 
1 gem installed 

[09:39] ~ $ rbenv rehash 

[09:40] ~ $ pry 
bash: pry: command not found 

[09:40] ~ $ rbenv which pry 
rbenv: pry: command not found 

[09:40] ~ $ which pry 
which: no pry in (/home/caveman/.rbenv/plugins/ruby-build/bin:/home/caveman/.rbenv/shims:/home/caveman/.rbenv/bin:/home/caveman/.rbenv/shims:/home/caveman/.rbenv/bin:/home/caveman/.rbenv/plugins/ruby-build/bin:/home/caveman/.rbenv/shims:/home/caveman/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl) 

[09:41] ~ $ ~/.gem/ruby/2.2.0/bin/pry 
[1] pry(main)> puts "I'm working now" 
I'm working now 

[09:43] ~ $ gem list | grep pry 
pry (0.10.2) 

這裏是我的寶石環境:

[09:44] ~ $ gem env 
RubyGems Environment: 
    - RUBYGEMS VERSION: 2.4.8 
    - RUBY VERSION: 2.2.0 (2014-12-25 patchlevel 0) [x86_64-linux] 
    - INSTALLATION DIRECTORY: /home/caveman/.gem/ruby/2.2.0 
    - RUBY EXECUTABLE: /home/caveman/.rbenv/versions/2.2.0/bin/ruby 
    - EXECUTABLE DIRECTORY: /home/caveman/.gem/ruby/2.2.0/bin 
    - SPEC CACHE DIRECTORY: /home/caveman/.gem/specs 
    - SYSTEM CONFIGURATION DIRECTORY: /home/caveman/.rbenv/versions/2.2.0/etc 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-linux 
    - GEM PATHS: 
    - /home/caveman/.gem/ruby/2.2.0 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - "gem" => "--no-document" 
    - REMOTE SOURCES: 
    - https://rubygems.org/ 
    - SHELL PATH: 
    - /home/caveman/.rbenv/versions/2.2.0/bin 
    - /usr/lib/rbenv/libexec 
    - /home/caveman/.rbenv/plugins/ruby-build/bin 
    - /home/caveman/.rbenv/shims 
    - /home/caveman/.rbenv/bin 
    - /home/caveman/.rbenv/shims 
    - /home/caveman/.rbenv/bin 
    - /home/caveman/.rbenv/plugins/ruby-build/bin 
    - /home/caveman/.rbenv/shims 
    - /home/caveman/.rbenv/bin 
    - /usr/local/sbin 
    - /usr/local/bin 
    - /usr/bin 
    - /usr/lib/jvm/default/bin 
    - /usr/bin/site_perl 
    - /usr/bin/vendor_perl 
    - /usr/bin/core_perl 

這裏是我的.bashrc文件:

[09:46] ~ $ cat .bashrc 
# If not running interactively, don't do anything 
[[ $- != *i* ]] && return 

# If I don't set this, gem reverts back to nonexistent RVM directory. 
export GEM_HOME=$(ruby -e 'print Gem.user_dir') 
export GEM_PATH=$(ruby -e 'print Gem.user_dir') 

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

這裏是.bash_profile文件:

[09:52] ~ $ cat .bash_profile 

[[ -f ~/.bashrc ]] && . ~/.bashrc 

source ~/.profile 

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

回答

0

我懷疑你的.bashrc是問題所在。它不應該包含:

# If I don't set this, gem reverts back to nonexistent RVM directory. 
export GEM_HOME=$(ruby -e 'print Gem.user_dir') 
export GEM_PATH=$(ruby -e 'print Gem.user_dir') 

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

我的〜/ .bashrc,〜/ .profile文件和〜/ .bash_profile中的文件,只有最後一次有配置rbenv:

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

所創建的時候我安裝了rbenv,它與我使用rbenv的其他系統的設置相匹配,其中包括以前安裝了RVM的一些系統。

您的雙路徑任務看起來像罪魁禍首。比較PATH我的系統,以你的,這是由gem env上市:

- /Users/ttm/.rbenv/versions/2.2.3/bin 
- /Users/ttm/.rbenv/libexec 
- /Users/ttm/.rbenv/plugins/ruby-build/bin 
- /Users/ttm/.rbenv/plugins/rbenv-whatis/bin 
- /Users/ttm/.rbenv/plugins/rbenv-vars/bin 
- /Users/ttm/.rbenv/plugins/rbenv-use/bin 
- /Users/ttm/.rbenv/plugins/rbenv-update/bin 
- /Users/ttm/.rbenv/plugins/rbenv-update-rubies/bin 
- /Users/ttm/.rbenv/plugins/rbenv-gemset/bin 
- /Users/ttm/.rbenv/plugins/rbenv-env/bin 
- /Users/ttm/.rbenv/plugins/rbenv-each/bin 
- /Users/ttm/.rbenv/shims 
- /Users/ttm/.rbenv/bin 

同樣,我which pry回報:

/Users/ttm/.rbenv/shims/pry 

使用rbenv的env plugin顯示:

RBENV_VERSION=2.2.3 
RBENV_GEMSET_ALREADY=yes 
RBENV_ROOT=/Users/ttm/.rbenv 
RBENV_HOOK_PATH=:/Users/ttm/.rbenv/rbenv.d:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks:/Users/ttm/.rbenv/plugins/rbenv-default-gems/etc/rbenv.d:/Users/ttm/.rbenv/plugins/rbenv-gemset/etc/rbenv.d:/Users/ttm/.rbenv/plugins/rbenv-readline/etc/rbenv.d:/Users/ttm/.rbenv/plugins/rbenv-vars/etc/rbenv.d 
PATH=/Users/ttm/.rbenv/versions/2.2.3/bin:/Users/ttm/.rbenv/libexec:/Users/ttm/.rbenv/plugins/ruby-build/bin:/Users/ttm/.rbenv/plugins/rbenv-whatis/bin:/Users/ttm/.rbenv/plugins/rbenv-vars/bin:/Users/ttm/.rbenv/plugins/rbenv-use/bin:/Users/ttm/.rbenv/plugins/rbenv-update/bin:/Users/ttm/.rbenv/plugins/rbenv-update-rubies/bin:/Users/ttm/.rbenv/plugins/rbenv-gemset/bin:/Users/ttm/.rbenv/plugins/rbenv-env/bin:/Users/ttm/.rbenv/plugins/rbenv-each/bin:/Users/ttm/.rbenv/shims:/Users/ttm/.rbenv/bin:/Users/ttm/.pyenv/shims:/Users/ttm/.pyenv/bin:/Users/ttm/perl5/perlbrew/bin:/Users/ttm/perl5/perlbrew/perls/perl-5.18.1/bin:/Users/ttm/bin:/usr/local/mysql-5.6.16-osx10.7-x86_64/bin:/Users/ttm/libsmi/bin:/usr/local/git/bin:/usr/local/bin:/Library/PostgreSQL/9.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin 
RBENV_SHELL=bash 
RBENV_DIR=/Users/ttm 
RUBYLIB=/Users/ttm/.rbenv/rbenv.d/exec/gem-rehash: 

我會請執行以下步驟:

  1. 修改〜/ .bashrc和其他文件,刪除引用rbenv和/或RVM的所有行。 RVM使用所有三個init文件,加上.zshrc,而rbenv似乎只接觸〜/ .bash_profile。
  2. 關閉終端會話。重新打開它。
  3. 確認PATH沒有對RVM和rbenv的所有引用。
  4. 按照Installation說明重新安裝rbenv。它不會覆蓋當前的安裝,而是會重新安裝對〜/ .bash_profile的更改。
  5. 再次關閉終端會話並重新打開它。

rbenv現在應該正確初始化。

+0

@TinMan你是男人。你的建議就像一個魅力。我現在免費使用RVM。需要注意的是,我還從github中重新安裝了rbenv,而不是從Arch Linux的AUR中安裝。獲得的教訓 - 如果可以的話,最好直接從維護人員那裏安裝。再次感謝。 – binarymason

+0

維護人員比互聯網上的隨機博主知道更多的東西是如何工作的。我們經常會看到用於安裝這些東西的過時或超出上下文方向,導致安裝不良。我很高興它爲你工作。查看github頁面上提到的rbenv的各種插件。我發現有幾個很有用。 –