2016-03-15 56 views
-1

我们有一个安装了一堆宝石的FreeBSD服务器。 FreeBSD上的Gems很挑剔,而Bundler不在这台机器上工作。有没有办法在系统`gem`(1.8)到`gem19`上安装所有的rubygems?

我有两个问题,都可能解决我的问题。假设另一个系统安装了gem19宝石,我们可以在不使用Gemfile的情况下打包它们吗? (有捆绑器,但没有gemfile)?

或者我想要gem19安装已安装在系统上的所有gem,该系统是安装有Ruby 1.8的gem

+0

您可以使用'gem list --no-version'获取一台机器上的宝石列表,将该输出重定向到一个文件,然后将该文件复制到另一台机器上并运行'xargs gem install --conservative < list_of_gems'然后将这些版本的当前版本加载到你当前的系统中。 Ruby 1.8非常老,所以我希望这个任务的一部分升级到Ruby 2.2+。或者,使用该宝石列表来播种你的Gemfile。如果你想在两台机器上保持相同的版本,你甚至可以放弃'--no-version',但是由于旧版本,错误,漏洞等原因可能会导致问题。 –

+0

非常酷。不幸的是,我遇到的一个问题是我们的计算机无法连接到rubygems,所以我需要能够将当前位于gems文件夹中的文件添加到gem19 – jQwierdy

+0

嘿@theTinMan我是好奇,如果两个系统是相同的芯片组,操作系统,红宝石变量。复制'/ usr/local/lib/ruby​​/gems/1.9 /'文件夹是否有缺点? – jQwierdy

回答

0

我最终什么事做了简单地做一个rsync计算机一个与宝石,并其所需的宝石。

我用: scp A:/usr/local/lib/ruby/gems/1.9 /1.9_A然后sudo rsync -avr 1.9_A B:/usr/local/lib/ruby/gems/1.9

-a归档模式,归档模式允许递归地拷贝文件,同时也保留了符号链接,文件权限,用户&组所有权和时间戳

-v详细列出变化(不需要)

-r递归,我发现这实际上是多余的时候加上-a o ption。

相关问题