我有兩個版本的紅寶石寶石。如何製作一個特定的寶石版本作爲默認?
json (default: 2.0.2, 1.8.6)
這裏,最新版本設置爲默認值;但我需要json 1.8.6
設置爲默認值。無論如何,要將舊版本的gem設爲默認版本?因爲我無法卸載默認的json版本。需要在可用的寶石版本之間切換。
我有兩個版本的紅寶石寶石。如何製作一個特定的寶石版本作爲默認?
json (default: 2.0.2, 1.8.6)
這裏,最新版本設置爲默認值;但我需要json 1.8.6
設置爲默認值。無論如何,要將舊版本的gem設爲默認版本?因爲我無法卸載默認的json版本。需要在可用的寶石版本之間切換。
添加
gem 'json', '1.8.6'
您Gemfile
或終端執行
gem install 'json' -v 1.8.6 # may require sudo if you use system ruby
。
我已經安裝了1.8.6;但我仍然試着這樣做。沒有運氣:( –
所以,如果你沒有任何可移植性的擔憂,就像'require'absolute/path/to/gems/ruby-2.3.1/gems/json-1.8.6'' – marmeladze
did not work :( 無法加載這樣的文件 - /Users/%username%/.rvm/gems/ruby-2.4.0/gems/json-1.8.6(LoadError) –
A Gemfile
是必須的,但還不夠。你也應該改變線
require 'json'
到
require 'bundler/setup'
Bundler.require :default
這將需要在你的Gemfile
,如果沒有group
指定的所有寶石。
從技術上講,這將使用'Gemfile.lock' –
添加這是你的Gemfile
gem 'json', '1.8.6'
現在在命令行中運行這個
bundle update
這應該設置你的版本,你需要
它doesnt工作;因爲我有json 2.0.2已經安裝,它設置爲默認 –
btw我已經試過這個 –
由於您使用RVM來管理你的Ruby版本,正如你在評論中所說的那樣,有一個簡單的解決方案:爲這個應用程序創建一個私有包,並只安裝你需要的這個包中的gem版本。
這是你可以怎麼做:
1)輸入您的應用程序的目錄;
2)鍵入以下命令
rvm use [email protected]_app_name --ruby-version --create
(我假設你正在使用Ruby 2.4.0。如果這不是您的版本,在上面的命令,因此替換它,請。)
3)安裝捆綁寶石
gem install bundler
4)確保您的Gemfile聲明你所需要的寶石的版本。在這種情況下,它必須有行:
gem "json", "1.8.6"
5)現在運行
bundle install
和你做!
警告:此過程將確保json gem
將版本1.8.6。但是,如果您安裝的其他寶石需要更新版本的json gem
,您可能會遇到問題bundle install
。在這種情況下,你必須以其他方式解決這個衝突。
要了解有關不同應用的不同捆綁包的更多信息,請閱讀this。
我希望這會有所幫助。
你使用** rvm **來管理你的ruby版本嗎? –
@EddeAlmeida是的,我使用RVM;無論如何通過它? –
當然。您可以爲此應用程序創建一個專用包,並只安裝您需要的寶石。 –