在rvm中切换ruby版本时Ruby命令行工具崩溃

时间:2014-08-31 11:41:16

标签: ruby command-line-interface

我正在尝试使用ruby创建一个CLI工具。 我的工具需要捆绑一些库(log4r,...)。因此,当我切换我的ruby版本(2.0.0 - > 2.1.2)或切换gemset时,会出现问题,某些gem不会安装在新的ruby环境中。 那么我怎样才能使我的应用程序像vagrant一样工作,哪些工作在我正在使用的每个版本的ruby中?

1 个答案:

答案 0 :(得分:0)

如果您将应用程序打包为Gem,则可以包含描述您的应用程序的Gemspec。您可以指定的其中一项是its runtime dependencies;当用户运行gem install myapp时,gem命令将确保它包含您指定的所有内容(如log4r)。

如果没有Rubygems,这将更难实现。您可以将应用程序与已定义的Ruby版本及其所有要求({3}}打包在一起 - 但这会使您的应用程序下载量更大,并且意味着您需要维护更多。如果您想在系统范围内安装应用程序并使其适用于每个Ruby环境,那么这将是一项艰苦的工作。让gem应用程序安装您的应用程序(无论是在系统范围内,还是通过that's what Vagrant does / rbenv)并让它为您管理您的依赖项会好得多。 rvmdefault gems plugin for rbenv有助于管理此问题。