YaST2 的菜单无法使用

我的情况,跟 [YaST 在更新之后出错) 有些像,也是 yast2 界面可以打开,但里面的菜单点击均无反应。

但 /var/log/YaST2/y2log 文件中的错误信息跟他不太一样,我的如下:

2014-05-21 13:27:08 <3> linux-59yn.site(2889) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):25 cannot require yast:ruby lib version (2.1.2) doesn't match executable version (2.1.1) at /usr/lib/ruby/2.1.0/i586-linux-gnu/rbconfig.rb:7:in `<module:RbConfig>'
2014-05-21 13:27:08 <1> linux-59yn.site(2889) [liby2] genericfrontend.cc(main):575 Launched YaST2 component 'y2base' 'sw_single' 'qt'
2014-05-21 13:27:08 <1> linux-59yn.site(2889) [ui-component] YUIComponentCreator.cc(createInternal):124 Creating UI component for ""
2014-05-21 13:27:08 <1> linux-59yn.site(2889) [liby2] genericfrontend.cc(main):764 YAST_IS_RUNNING is yes
2014-05-21 13:27:08 <3> linux-59yn.site(2889) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):25 cannot require yast:cannot load such file -- fast_gettext at /usr/lib/ruby/vendor_ruby/2.1.0/yast/i18n.rb:1:in `require'
2014-05-21 13:27:08 <1> linux-59yn.site(2889) [liby2] genericfrontend.cc(main):778 Finished YaST2 component 'y2base'
2014-05-21 13:27:08 <1> linux-59yn.site(2889) [liby2] genericfrontend.cc(main):783 Exiting with client return value 'false'

我曾用 rbenv 安装过多个版本的 ruby。同时有不小心卸载 ruby 导致整个 kde 桌面坏掉的经历。

当前系统版本是 13.2 milestone 0 - 上回没注意升级的。

ruby -v

的结果是 ruby 2.0.0p247 (2013-06-27) [i586-linux],尝试过安装高版本的 ruby,均没有效果。

/usr/lib/ruby 目录现在的结构如下:

  • 2.0.0
  • 2.1.0
  • gems
  • site_ruby
  • vendor_ruby

请问各位是否有类似经验,需要怎么处理。多谢啦。

卸载高版本的 ruby 试一试,应该是 ruby 的版本不对。最关键的是你不是通过软件管理来安装 ruby 的,把 rbenv 什么的都卸载掉试试。

删掉 rbenv 的方法也有试过; ruby 2.0.0p247 是卸载高版本 ruby 后的结果,之前还装过最新的稳定版本 2.1.2。

似乎不管我怎样换 ruby 版本,

[Y2Ruby] binary/Y2RubyUtils.cc(y2_require):25 cannot require yast:ruby lib version (2.1.2) doesn’t match executable version (2.1.1) at /usr/lib/ruby/2.1.0/i586-linux-gnu/rbconfig.rb:7:in `module:RbConfig

这个错误总会在,只是 ruby lib version 与 executable version 有时会变化。

我的设想是,是否可以通过更改 rbconfig.rb 文件这种方式统一版本,来绕开上面的错误。但没有这方面的经验,所以不敢轻易乱改,网上这块的资料也非常少。

先用 rbenv 删掉 rbenv 安装的 ruby,再卸载 rbenv,然后重新安装源里提供的 ruby 试试呢?

总之就是把 ruby 还原到系统原来的样子。那个 /usr/lib/ruby/2.1.0 肯定是没有的。可以删除。 gems 、 site_ruby、vendor_ruby 下的 2.1.0 也是。

不放心可以先备份。

最后折腾得有点过头,把 grub 都玩坏,所以重装了 openSUSE - 最糟糕的解决办法。

我感觉 YaST 换 ruby 是个败招…… 是话说我觉得应该用 python,只需要弄清楚 python2 和 python3 就没大问题了。

Ruby 有很多开发者装 RVM 和 N 个版本,很容易影响到 YaST 的。

YaST 我只是感觉很卡。。。