2016-03-15 54 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。

相關問題