2015-10-13 127 views
1

我需要安裝紅寶石沒有互聯網接入。由於ruby-build文檔建議我可以通過指定環境變量RUBY_BUILD_MIRROR_URL來更改鏡像URL。我這樣做,雖然它看起來在我的本地回購紅寶石它仍然嘗試連接到在線回購安裝yaml如何通過rbenv/ruby​​-build在本地安裝ruby?

env RUBY_BUILD_MIRROR_URL=http://10.10.161.39/platforms/common/ruby-2.0.0-p247.tar.gz#3e71042872c77726409460e8647a2f304083a15ae0defe90d8000a69917e20d3 /opt/rbenv/bin/rbenv install 2.0.0-p247 
Downloading yaml-0.1.6.tar.gz... 
-> http://10.152.161.39/platforms/proteus/common/ruby-2.0.0-p247.tar.gz#3e71042872c77726409460e8647a2f304083a15ae0defe90d8000a69917e20d3/7da6971b4bd08a986dd2a61353bc422362bd0edcc67d7ebaac68c95f74182749 
-> http://pyyaml.org/download/libyaml/yaml-0.1.6.tar.gz 
error: failed to download yaml-0.1.6.tar.gz 

BUILD FAILED (RedHatEnterpriseServer 5.10 using ruby-build 20150928) 

我試着放置yaml-0.1.6.tar.gz文件但是我的本地回購沒什麼區別,除了它會失敗,因爲在URL提供的sha2校驗是ruby-2.0.0-p247.tar.gz文件。

如何安裝紅寶石離線與rbenv

更新1

我發現,你可以修改查找配置文件指向本地鏡像代替。即:/opt/rbenv/plugins/ruby-build/share/ruby-build/2.0.0-p247

install_package "yaml-0.1.6" "http://10.10.161.39/platforms/common/yaml-0.1.6.tar.gz#7da6971b4bd08a986dd2a61353bc422362bd0edcc67d7ebaac68c95f74182749" --if needs_yaml 
install_package "openssl-1.0.1p" "ttp://10.10.161.39/platforms/common/openssl-1.0.1p.tar.gz#bd5ee6803165c0fb60bbecbacacf244f1f90d2aa0d71353af610c29121e9b2f1" mac_openssl --if has_broken_mac_openssl 
install_package "ruby-2.0.0-p247" "http://10.10.161.39/platforms/common/ruby-2.0.0-p247.tar.gz#3e71042872c77726409460e8647a2f304083a15ae0defe90d8000a69917e20d3" 

有沒有更好的辦法或者是這是前進的最好方式?

+0

你知道如何去做嗎? 我現在正在嘗試,並將ruby-2.3.1.tar.bz2移動到機器後,我有點卡住了 –

+0

是的,它確實工作。我將添加一些步驟作爲答案。 – kaizenCoder

回答

1

因此,這裏是我如何得到它的工作:下載文件的

更新的內容/opt/rbenv/plugins/ruby-build/share/ruby-build/<ruby-version>指向您的本地回購。

您還會注意到每個文件在URL中的'#'符號後面有一個長哈希值。例如:

install_package "yaml-0.1.6" "http://10.10.161.39/platforms/common/yaml-0.1.6.tar.gz#7da6971b4bd08a986dd2a61353bc422362bd0edcc67d7ebaac68c95f74182749" --if needs_yaml

該散列值是將rbenv用於驗證它是否是預期的文件中的文件中的sha256sum

因此,您需要通過運行sha256sum <filename>並附加到URL路徑中的每個文件來生成值。

填寫以下例子:

install_package "yaml-0.1.6" "http://10.10.161.39/platforms/common/yaml-0.1.6.tar.gz#7da6971b4bd08a986dd2a61353bc422362bd0edcc67d7ebaac68c95f74182749" --if needs_yaml 
install_package "openssl-1.0.1p" "ttp://10.10.161.39/platforms/common/openssl-1.0.1p.tar.gz#bd5ee6803165c0fb60bbecbacacf244f1f90d2aa0d71353af610c29121e9b2f1" mac_openssl --if has_broken_mac_openssl 
install_package "ruby-2.0.0-p247" "http://10.10.161.39/platforms/common/ruby-2.0.0-p247.tar.gz#3e71042872c77726409460e8647a2f304083a15ae0defe90d8000a69917e20d3" 

在上面我們的例子中有在http://10.10.161.39/platforms/common一個專門的存儲服務器。如果你的軟件包在本地可用,你將需要指向本地路徑並驗證它是否工作。