我正在尝试使用ruby创建一个CLI工具。
我的工具需要捆绑一些库(log4r,...)。因此,当我切换我的ruby版本(2.0.0 - > 2.1.2)或切换gemset时,会出现问题,某些gem不会安装在新的ruby环境中。
那么我怎样才能使我的应用程序像vagrant
一样工作,哪些工作在我正在使用的每个版本的ruby中?
答案 0 :(得分:0)
如果您将应用程序打包为Gem,则可以包含描述您的应用程序的Gemspec。您可以指定的其中一项是its runtime dependencies;当用户运行gem install myapp
时,gem
命令将确保它包含您指定的所有内容(如log4r)。
如果没有Rubygems,这将更难实现。您可以将应用程序与已定义的Ruby版本及其所有要求({3}}打包在一起 - 但这会使您的应用程序下载量更大,并且意味着您需要维护更多。如果您想在系统范围内安装应用程序并使其适用于每个Ruby环境,那么这将是一项艰苦的工作。让gem
应用程序安装您的应用程序(无论是在系统范围内,还是通过that's what Vagrant does / rbenv)并让它为您管理您的依赖项会好得多。 rvm和default gems plugin for rbenv有助于管理此问题。