我是ruby gems的新手,我想知道..如果我使用Ruby gems的API编写脚本然后我将脚本导出到服务器以便在那里运行,我是否必须安装服务器上的宝石?有没有办法让我将它捆绑到我刚刚运行的1个文件中? (像Java jar)
答案 0 :(得分:2)
只需将您的gem包含在您的gem文件中,然后当您在服务器上部署并运行bundle install
时,它将获得您的所有依赖项,包括您的gem
答案 1 :(得分:2)
bundle package
会将您的所有宝石打包到您的rails应用中。
答案 2 :(得分:1)
Bundler会为你安装你的gem,但它不包含你脚本中的gem。 如果你没有很多依赖项,你可以尝试简单地将gem解压缩到一个文件夹中,你必须要求gem跟随你的相对路径,主要问题是你的某些gem必须编译本机代码(如hpricot)。 使用
gem unpack GEMNAME
进入您的脚本文件夹,然后在您的代码中找到要求的主文件(通常在lib目录中进入解压缩的gem)。 这项工作很容易只针对没有链依赖的简单宝石。
答案 3 :(得分:0)
我通常只是在我的应用程序中创建一个供应商目录并在那里提取你的宝石。 gem unpack gem_name
会为您完成,或者您可以使用Rails'rake gem:unpack GEM=gem_name
。
Bundler是另一个很好的解决方案,但是如果你只想要一个快速而肮脏的解决方案,那么只需将gem解压缩到你的应用程序中并完成它。