gem常用命令
gem -v # 查看RubyGems軟體的版本gem help #顯示RubyGem使用協助gem help example #列出RubyGem命令一些使用範例gem install [gemname] # 安裝指定gem包,程式先從本機尋找gem包並安裝,如果本地沒有,則從遠程gem安裝。gem install -l [gemname] # 僅從本機安裝gem包gem install -r [gemname] # 僅從遠程安裝gem包gem install [gemname] --version=[ver] # 安裝指定版本的gem包gem uninstall [gemname] # 刪除指定的gem包,注意此命令將刪除所有已安裝的版本gem uninstall [gemname] --version=[ver] # 刪除某指定版本gemgem update --system # 更新升級RubyGems軟體自身gem update [gemname] #更新所有|指定已安裝的gem包gem list # 查看本機已安裝的所有gem包 #顯示RubyGem使用協助
更換淘寶鏡像
由於國內網路原因(你懂的),導致 rubygems.org 存放在 Amazon S3 上面的資源檔間歇性串連失敗。這裡要更換預設鏡像為淘寶的鏡像。
gem sources --remove https://rubygems.org/gem sources -a https://ruby.taobao.org/gem sources -l*** CURRENT SOURCES ***https://ruby.taobao.org# 請確保只有 ruby.taobao.org
使用bundler管理多版本的Gem
有了rbenv來管理多版本的ruby環境,我們還需要一個能管理多版本gem(比如rails)的工具,那就是bundler了,項目背景不細說了,需要瞭解的直接到官網,這裡只講一些實際使用經驗
安裝:
使用:
mkdir app1; cd app1;echo "source 'https://ruby.taobao.org/'" > Gemfileecho "gem 'rails,'4.1.0'" >> Gemfilebundle install
上面代碼在app1下安裝了rails 4.1.0,使用bundle exec rails -v查看目前的目錄下使用的rails版本,顯示內容應該為Rails 4.1.0,同樣此時通過bundle exec rails new . --force覆蓋原來Gemfile,此時的app使用的rails版本為4.1.0
mkdir app2; cd app2;echo "source 'https://ruby.taobao.org/'" > Gemfileecho "gem 'rails,'3.2.13'" >> Gemfilebundle install
上面代碼建立了第二個app2檔案夾,並通過bundler安裝了rails 3.2.13 同樣通過bundle exec rails new . --force可以產生基於rails 3.2.13版本的應用
安裝了以上兩個版本後,通過gem list --local可以看到rails有兩個版本,顯示為rails (4.1.0, 3.2.13),bundler會智能的判斷每個項目的rails版本,以確保應用的正確運行,但前提是通過使用bundle exec命令來執行原來得命令,例如:
bundle exec rails sbundle exec rake db:create...