Yast modules not opening in 13.2 / ruby lib version doesn't match executable version

Hello!

I installed Opensuse 13.2 but kept /home intact.

I needed some packages in order to compile VIM. Nothing out of the ordinary, it was something I needed to add a couple of times before.

However, somewhere along the road Yast modules stopped opening.
I followed this http://stackoverflow.com/questions/3558656/how-can-i-remove-rvm-ruby-version-manager-from-my-system to make sure I don’t have RVM.

I downloaded the rubygem-fast_gettext-0.8.1-2.1.3.x86_64 rpm and installed it. The gem is not available to zypper. In the log it’s not used.


2014-11-06 10:06:22 <3> linux-nszq.site(3404) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):25 cannot require yast:ruby lib version (2.1.3) doesn't match executable version (2.1.2) at /usr/lib64/ruby/2.1.0/x86_64-linux-gnu/rbconfig.rb:7:in `&lt;module:RbConfig&gt;'
2014-11-06 10:06:22 &lt;1&gt; linux-nszq.site(3404) [liby2] genericfrontend.cc(main):575 Launched YaST2 component 'y2base' 'sw_single' 'qt'
2014-11-06 10:06:22 &lt;1&gt; linux-nszq.site(3404) [ui-component] YUIComponentCreator.cc(createInternal):124 Creating UI component for ""
2014-11-06 10:06:22 &lt;1&gt; linux-nszq.site(3404) [liby2] genericfrontend.cc(main):764 YAST_IS_RUNNING is yes
2014-11-06 10:06:22 &lt;3&gt; linux-nszq.site(3404) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):25 cannot require yast:cannot load such file -- fast_gettext at /usr/lib64/ruby/vendor_ruby/2.1.0/yast/i18n.rb:1:in `require'
2014-11-06 10:06:22 <1> linux-nszq.site(3404) [liby2] genericfrontend.cc(main):778 Finished YaST2 component 'y2base'
2014-11-06 10:06:22 <1> linux-nszq.site(3404) [liby2] genericfrontend.cc(main):783 Exiting with client return value 'false'


$ env | grep RUBY
:~$                     ( nothing ?! )


$ ruby
/usr/lib64/ruby/2.1.0/x86_64-linux-gnu/rbconfig.rb:7:in `&lt;module:RbConfig&gt;': ruby lib version (2.1.3) doesn't match executable version (2.1.2) (RuntimeError)
        from /usr/lib64/ruby/2.1.0/x86_64-linux-gnu/rbconfig.rb:5:in `<top (required)>'
        from /usr/lib64/ruby/2.1.0/rubygems.rb:8:in `require'
        from /usr/lib64/ruby/2.1.0/rubygems.rb:8:in `<top (required)>'
        from <internal:gem_prelude>:1:in `require'
        from &lt;internal:gem_prelude&gt;:1:in `<compiled>'

My repos:


zypper lr --details
#  | Alias                     | Name                               | Enabled | Refresh | Priority | Type   | URI                                                                               | Service
---+---------------------------+------------------------------------+---------+---------+----------+--------+-----------------------------------------------------------------------------------+--------
 1 | Atlassian HipChat         | Atlassian HipChat                  | Yes     | Yes     |   99     | rpm-md | http://downloads.hipchat.com/linux/yum/                                           |
 2 | home:XRevan86             | home:XRevan86                      | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/home:/XRevan86/openSUSE_13.2/           |
 3 | home:XRevan86:non-free    | home:XRevan86:non-free             | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/home:/XRevan86:/non-free/openSUSE_13.2/ |
 4 | openSUSE-13.2-0           | openSUSE-13.2-0                    | No      | No      |   99     | yast2  | hd:///?device=/dev/disk/by-id/scsi-0Generic_Flash_Disk_058F-part2                 |
 5 | repo-debug                | openSUSE-13.2-Debug                | No      | No      |   99     | NONE   | http://download.opensuse.org/debug/distribution/13.2/repo/oss/                    |
 6 | repo-debug-update         | openSUSE-13.2-Update-Debug         | No      | No      |   99     | NONE   | http://download.opensuse.org/debug/update/13.2/                                   |
 7 | repo-debug-update-non-oss | openSUSE-13.2-Update-Debug-Non-Oss | No      | No      |   99     | NONE   | http://download.opensuse.org/debug/update/13.2-non-oss/                           |
 8 | repo-non-oss              | openSUSE-13.2-Non-Oss              | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/13.2/repo/non-oss/                      |
 9 | repo-oss                  | openSUSE-13.2-Oss                  | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/13.2/repo/oss/                          |
10 | repo-source               | openSUSE-13.2-Source               | No      | No      |   99     | NONE   | http://download.opensuse.org/source/distribution/13.2/repo/oss/                   |
11 | repo-update               | openSUSE-13.2-Update               | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/update/13.2/                                         |
12 | repo-update-non-oss       | openSUSE-13.2-Update-Non-Oss       | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/update/13.2-non-oss/                                 |


zypper dup suggests that I remove dolphin and other packages, while fetching some ~700 MB of files, which is odd - I won’t do that :).

I ran zypper patch.


linux-nszq:~ # ls /usr/lib64/ruby/gems/2.1.0/gems/
fast_gettext-0.8.1  gem2rpm-0.10.1  rake-10.1.0  rdoc-4.1.0  ruby-dbus-0.11.0  test-unit-2.1.3.0

YaST should work fine with RVM since some time already.

I downloaded the rubygem-fast_gettext-0.8.1-2.1.3.x86_64 rpm and installed it. The gem is not available to zypper. In the log it’s not used.

It is available in the standard repo: (of course, as it is required by YaST)

zypper se -s  rubygem-fast_gettext
Loading repository data...
Reading installed packages...

S | Name                           | Type    | Version     | Arch   | Repository        
--+--------------------------------+---------+-------------+--------+-------------------
i | rubygem-fast_gettext           | package | 0.8.1-2.1.3 | x86_64 | openSUSE-13.2-1.28
v | rubygem-fast_gettext           | package | 0.8.1-2.1.3 | i586   | openSUSE-13.2-1.28
...

And it actually is mentioned in your log:

2014-11-06 10:06:22 <3> linux-nszq.site(3404) [Y2Ruby] binary/Y2RubyUtils.cc(y2_require):25 cannot require yast:cannot load such file – fast_gettext at /usr/lib64/ruby/vendor_ruby/2.1.0/yast/i18n.rb:1:in `require’

$ env | grep RUBY
:~$ ( nothing ?! )

That’s normal.

$ ruby
/usr/lib64/ruby/2.1.0/x86_64-linux-gnu/rbconfig.rb:7:in &lt;module:RbConfig&gt;': ruby lib version (2.1.3) doesn't match executable version (2.1.2) (RuntimeError) from /usr/lib64/ruby/2.1.0/x86_64-linux-gnu/rbconfig.rb:5:in <top (required)>’
from /usr/lib64/ruby/2.1.0/rubygems.rb:8:in require' from /usr/lib64/ruby/2.1.0/rubygems.rb:8:in <top (required)>’
from internal:gem_prelude:1:in require' from &lt;internal:gem_prelude&gt;:1:in

So here’s your problem.
13.2 comes with ruby 2.1.3:

ruby -v
ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux-gnu]

But the ruby executable you run seems to be version 2.1.2, which doesn’t match the installed ruby lib.

Please post the output of:

rpm -qi ruby
which ruby

No, it doesn’t, unless you have some conflicts.

It wants to remove the application Dolphin, and install the package dolphin instead I suppose.
In the end, just an upgrade.

If zypper dup wants to fetch ~700MB of files, you definitely need to run it.
Could it be that you originally installed RC1 or Beta1?
The repo URLs have been the same, that would explain that big of an update now, and a mismatch of packages.

I ran zypper patch.

Should suffice to keep your 13.2 final installation updated, but as written above, I suspect you don’t run 13.2 final yet.
You seem to have a mixture of 13.2 RC1 (or earlier) and 13.2 final.
So upgrade fully to 13.2 final, either by running “zypper dup” or “zypper up”.
If in doubt, please post the output.