我想下載一個 gem,而不安裝給定 gem 所需的所有 gem。
專門針對 Rails 3 gem。它有很多依賴項,我需要將其安裝在目前沒有 ruby/rake/rails 軟體的封閉伺服器上。
任何線索都會很棒,因為點擊 rubygems.org 很乏味。
好吧,讓我澄清一下。我想要的是這份工作:
gem install Rails --僅下載
這將解決我的問題,因為然後我可以將生成的寶石刻錄到光碟上並將它們移動到我無法訪問互聯網的伺服器上。
答案1
若要下載單一gem,請使用(以loudmouth gem為例):
gem fetch loudmouth
Fetching: loudmouth-0.2.4.gem (100%)
Downloaded loudmouth-0.2.4
下載 Rails 3 應用程式依賴的所有 gem,運行:
bundle package
這將下載所有 gem(及其依賴項)並將它們放入供應商/快取中(不安裝它們)。
然後,您可以將供應商/快取中的所有寶石刻錄到 CD 上,並以實體方式將其帶到另一台無需網路存取的伺服器上。
答案2
好吧,我不想回答我自己的問題,但我認為這最有可能是我的問題的解決方案。
- find network enabled machine
- install rails and all needed gems using RubyGems.
- tar/zip /usr/lib[64]/ruby/gem/1.9.1/cache/*.gem
- transport tar file to non-networked computer.
這些 gem 快取檔案的位置非常有用。如果我的連網機器上有大量寶石並且不想傳輸我會使用的所有寶石
> bundle list
顯示應用程式所需的特定寶石。
-丹尼爾
答案3
我將建立一個本機 RubyGems 伺服器,其中包含應用程式所需的所有 gem,包括 Rails 及其相依性。
基本文件在這裡:
這篇部落格文章展示如何設定一個內部伺服器,您可以將 Gems 傳送到該伺服器以進行自動索引:
答案4
不幸的是,您無法解決依賴性問題。需要它們是有原因的;嘗試在沒有所需依賴項的情況下安裝 Rails 將會導致很多問題(如果 Rails 確實運行的話)。
您沒有具體說明關閉的含義。如果您的意思是關閉,因為您無法安裝系統範圍的軟體,請查看右室VM,該軟體可讓您建立獨立的 Ruby 環境。如果伺服器沒有連接到互聯網,您也可以在另一台伺服器上進行設定並將其移過來。看看它,看看這是否對您有幫助。