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



我正在尝试用ruby制作一个CLI工具。我的工具需要一些捆绑包中的库(log4r,…)。所以当我切换我的ruby版本(2.0.0->2.1.2)时,或者当切换gemset时,一些gem没有安装在新的ruby环境中,就会出现问题。那么,我如何让我的应用程序像vagrant一样工作,它适用于我使用的每个版本的ruby?

如果将应用程序打包为Gem,则可以包含描述应用程序的Gemspec。您可以指定的一件事是它的运行时依赖关系;当用户运行gem install myapp时,gem命令将确保它包含您指定的所有内容(如log4r)。

如果没有Rubygems,实现这一目标将更加困难。您可以将您的应用程序与定义版本的Ruby及其所有需求一起打包——这就是Vagrant所做的——但这会使您的应用软件下载量更大,意味着您需要维护更多内容。如果你想在系统范围内安装你的应用程序,并让它在每个Ruby环境中都能工作,这将是一项艰巨的工作。最好让gem应用程序安装您的应用程序(无论是在系统范围内,还是通过rbenv/rvm),并让它为您管理依赖关系。rbenv和rvm-gemset有一个默认的gems插件来帮助管理它。

最新更新