Arch Linux – Using RVM with GVim Without Installing Ruby Binary

arch linuxpacmanruby

In Arch Linux, apparently gvim requires to install ruby as a dependency. However, if I want to work with RVM, then I don't need the binary ruby installed.

Can that cause problems? Can ruby be removed and gvim configured to use the RVM version of ruby that's installed?

Note that trying sudo pacman -Rs ruby outputs an error:

error: failed to prepare transaction (could not satisfy dependencies)
:: gvim: requires ruby

Any tips?

Best Answer

Option #1

You'll need to recompile gvim to remove the requirement. It's configurable when building it.

This post I wrote on my blog shows how to compile Ruby support in, but you could just as easily remove it. NOTE: this post is Fedora/RHEL specific so it's not a template of steps for you to follow, but just to show you that it is possible to recompile gvim with/without Ruby support if you so choose.

Incidentally I think the issue you're running into is that the package manger knows that gvim "requires" and is enforcing this when you try to remove it.

Option #2

You could override the package manager and "force" the removal if you know no other packages require it.

Option #3

A 3rd options would be to install the Ruby package, and RVM. When you setup RVM you're overriding your $PATH, so RVM's versions of Ruby are the precedent, even though you have Ruby installed as a package on the system.

So your RVM's Ruby should be the one that gvim is using anyways.

For example:

$ echo $PATH
/home/saml/apps/perl5/perlbrew/bin:/home/saml/apps/perl5/perlbrew/perls/perl-5.14.0/bin:/home/saml/.rvm/gems/ruby-1.9.2-p180/bin:/home/saml/.rvm/gems/ruby-1.9.2-p180@global/bin:/home/saml/.rvm/rubies/ruby-1.9.2-p180/bin:/home/saml/.rvm/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/brlcad/bin:/home/saml/bin:/usr/brlcad/bin

$ which ruby
~/.rvm/rubies/ruby-1.9.2-p180/bin/ruby

Here you can see that when ruby is invoked, my RVM version is the one getting picked up. Unless vim/gvim has the path to ruby hardcoded (I doubt this) then it's bound by the same search through your $PATH, so it will find the RVM ruby too.

Related Question