1. 程式人生 > >解除安裝rvm,解除安裝rvm安裝的ruby以及解決相關問題

解除安裝rvm,解除安裝rvm安裝的ruby以及解決相關問題

背景:系統為macos,自帶ruby版本較低,因為工具需要安裝flick程式

安裝flick時有報錯,但是最後也顯示安裝成功了,但是無法執行,

/usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': dlopen(/usr/local/lib/ruby/gems/2.3.0/gems/ffi-1.9.14/lib/ffi_c.bundle, 9): Library not loaded: /usr/local/opt/ruby/lib/libruby.2.3.0.dylib (LoadError)
  Referenced from: /usr/local/lib/ruby/gems/2.3.0/gems/ffi-1.9.14/lib/ffi_c.bundle
  Reason: image not found - /usr/local/lib/ruby/gems/2.3.0/gems/ffi-1.9.14/lib/ffi_c.bundle
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /usr/local/lib/ruby/gems/2.3.0/gems/ffi-1.9.14/lib/ffi.rb:6:in `rescue in <top (required)>'
	from /usr/local/lib/ruby/gems/2.3.0/gems/ffi-1.9.14/lib/ffi.rb:3:in `<top (required)>'
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /usr/local/lib/ruby/gems/2.3.0/gems/sys-proctable-1.1.1-universal-darwin/lib/darwin/sys/proctable.rb:2:in `<top (required)>'
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require'
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require'
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
	from /usr/local/lib/ruby/gems/2.3.0/gems/flick-0.3.2/lib/flick.rb:8:in `<top (required)>'
	from /usr/local/lib/ruby/gems/2.3.0/gems/flick-0.3.2/bin/flick:2:in `require_relative'
	from /usr/local/lib/ruby/gems/2.3.0/gems/flick-0.3.2/bin/flick:2:in `<top (required)>'
	from /usr/local/bin/flick:22:in `load'
	from /usr/local/bin/flick:22:in `<main>'

分析後覺得可能是ruby版本太低,需要升級ruby,這時走了彎路,從網上看升級ruby都需要用到rvm工具,所以裝了rvm,然後 rvm install 2.4.2,安裝了對應的ruby版本,然後安裝了flick,命令列執行flick也沒有問題,但是程式中執行時報錯:

/usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': incompatible library version - /Users/haier/.rvm/gems/ruby-2.4.2/gems/ffi-1.9.23/lib/ffi_c.bundle (fatal)
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /Users/haier/.rvm/gems/ruby-2.4.2/gems/ffi-1.9.23/lib/ffi.rb:6:in `rescue in <top (required)>'
	from /Users/haier/.rvm/gems/ruby-2.4.2/gems/ffi-1.9.23/lib/ffi.rb:3:in `<top (required)>'
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /Users/haier/.rvm/gems/ruby-2.4.2/gems/sys-proctable-1.2.0/lib/darwin/sys/proctable.rb:2:in `<top (required)>'
	from /Users/haier/.rvm/gems/ruby-2.4.2/gems/sys-proctable-1.2.0/lib/sys/proctable.rb:7:in `require_relative'
	from /Users/haier/.rvm/gems/ruby-2.4.2/gems/sys-proctable-1.2.0/lib/sys/proctable.rb:7:in `<top (required)>'
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require'
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require'
	from /usr/local/Cellar/ruby23/2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
	from /Users/haier/.rvm/gems/ruby-2.4.2/gems/flick-0.4.4/lib/flick.rb:8:in `<top (required)>'
	from /Users/haier/.rvm/gems/ruby-2.4.2/gems/flick-0.4.4/bin/flick:2:in `require_relative'
	from /Users/haier/.rvm/gems/ruby-2.4.2/gems/flick-0.4.4/bin/flick:2:in `<top (required)>'
	from /usr/local/bin/flick:22:in `load'
	from /usr/local/bin/flick:22:in `<main>'

提示lib庫衝突,仔細看發現有兩個版本的ruby,修改了預設ruby版本也沒有解決。於是按照下面文章的步驟解除安裝rvm和後來安裝的ruby:http://blog.csdn.net/maojudong/article/details/7918234

仔細刪除了所有的環境變數和資料夾,重新brew upgrade ruby, 安裝flick,再執行仍然報錯:

/usr/local/Cellar/ruby/2.5.0_2/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem flick (>= 0.a) with executable flick (Gem::GemNotFoundException)
	from /usr/local/Cellar/ruby/2.5.0_2/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
	from /usr/local/bin/flick:23:in `<main>'

然後按照下面步驟執行:

$ which flick

/usr/local/bin/flick

$ rm -rf /usr/local/bin/flick

$ which flick

$ gem list

$ gem uninstall flick -v 0.4.4

$ gem install flick

再執行就可以了