将 RVM 与 gvim 结合使用,无需安装 ruby​​ 二进制文件

将 RVM 与 gvim 结合使用,无需安装 ruby​​ 二进制文件

在 Arch Linux 中,显然gvim需要安装 ruby​​ 作为依赖项。但是,如果我想使用 RVM,则不需要安装二进制 ruby​​。

这会引起问题吗?是否可以删除 ruby​​ 并将 gvim 配置为使用已安装的 RVM 版本的 ruby​​?

请注意,尝试 sudopacman -Rs ruby会输出错误:

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

有小费吗?

答案1

选项1

您需要重新编译gvim才能删除该要求。它在构建时是可配置的。

我在博客上写的这篇文章展示了如何编译 Ruby 支持,但您也可以轻松地将其删除。笔记:gvim这篇文章是针对 Fedora/RHEL 的,因此它不是供您遵循的步骤模板,而只是向您展示,如果您选择的话,可以在有/没有 Ruby 支持的情况下重新编译。

顺便说一句,我认为您遇到的问题是包管理器知道gvim“需要”,并且当您尝试删除它时会强制执行此操作。

选项#2

如果您知道没有其他软件包需要它,您可以覆盖软件包管理器并“强制”删除。

选项#3

第三个选项是安装 Ruby 包和 RVM。当您设置 RVM 时,您将覆盖 $PATH,因此 RVM 的 Ruby 版本是先例,即使您已将 Ruby 作为软件包安装在系统上。

所以你的 RVM 的 Ruby 应该是正在使用的那个gvim

例如:

$ 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

在这里您可以看到,当ruby被调用时,我的 RVM 版本就是被选取的版本。除非vim/gvim有硬编码的路径ruby(我怀疑这一点),否则它会通过您的相同搜索绑定$PATH,所以它也会找到RVM ruby​​。

答案2

你可以使用Arch的ABS(Arch Build System)重新配置gvim包并删除Ruby依赖。 Arch Wiki 有一个关于 ABS 的非常详细的页面。

完成此操作后,您可能需要添加IgnorePkg = gvim到您的/etc/pacman.conf文件中,以防止 pacman 在您下次更新系统时覆盖您的自定义版本。

相关内容