**前陣子在Ubuntu想要升級Rails的版本失敗,於是想說重裝可以吧,就打下這行指令:
sudo gem install rails**
但系統卻無情地回報給我
ERROR: could not find gem rails locally or in a repository
即使我把gem從遠端抓回到local,想在本地端安裝,一樣失敗。
而且,查了一下rubygem裡倒底有什麼時
gem list
*** LOCAL GEMS ***
居然空空如也??
我是鬼打牆了嗎?查了一下source list也沒問題,而且這個升級動作,前陣子才在另一台機器上做過,究竟是怎麼一回事呢?
經過一連串的Google和偵錯動作,最後懷疑是網路的問題,而且是出在VirtualBox身上,因為之前可以成功升級時,是在Host機器上,後來連兩個虛擬的Linux都有這個問題。
最後,靈機一動,把VirtualBox的網路卡從NAT模式改成Bridge模式,居然就試成功了。
Rails成功地升到2.3.5了,淚光閃閃~
老實說,我對網路原理沒那麼熟,也不知道為什麼改成Bridge就行了,但是可以work,所以就記下來,以後如果有相同問題的苦主,可以免去我花的那些時間。
最後,請站上邦友們,如果有人知道這是怎麼一回事的話,還請指點一二
也許可以看一下他的online help,雖然是英文的。裡面對於他的NAT模式有比較詳細的解釋,另外第九章還有講到一些NAT模式的進階設定,也許可以參考。
NAT模式的網路要透過VirtualBox本身提供的一個router出去,不知道這中間是否有什麼問題產生。
網路上有一些討論在防火牆/proxy之後使用ruby gem的方法,也許也可以參考,不過VirtualBox的NAT好像並不是一個proxy。
不過你的問題我測不出來,無法再現...我猜twtw說的可能性比較大
前陣子在Ubuntu想要升級Rails的版本失敗,於是想說重裝可以吧
所以原來就曾有 rails ?
如果是這樣的話,有關 gem list 為何會是空的?
看是不是跟:[RoR] Rails 環境建置及更新問題 上的情況一樣?
是否原來ubuntu系統上的 rubygems 版本,曾裝過一些 gems,
之後若更新 rubygems 的話,
會造成之前的 gems 都不見了的狀況。
rubygems 從 1.2.x -> 1.3.x 之前裝的gems會不見
1.3.x -> 1.3.x 應是不受影響。