Ruby中g(shù)em包管理器的用法及用bundler來(lái)管理多版本的gem
gem常用命令
gem -v # 查看RubyGems軟件的版本 gem help #顯示RubyGem使用幫助 gem help example #列出RubyGem命令一些使用范例 gem install [gemname] # 安裝指定gem包,程序先從本機(jī)查找gem包并安裝,如果本地沒(méi)有,則從遠(yuǎn)程gem安裝。 gem install -l [gemname] # 僅從本機(jī)安裝gem包 gem install -r [gemname] # 僅從遠(yuǎn)程安裝gem包 gem install [gemname] --version=[ver] # 安裝指定版本的gem包 gem uninstall [gemname] # 刪除指定的gem包,注意此命令將刪除所有已安裝的版本 gem uninstall [gemname] --version=[ver] # 刪除某指定版本gem gem update --system # 更新升級(jí)RubyGems軟件自身 gem update [gemname] #更新所有|指定已安裝的gem包 gem list # 查看本機(jī)已安裝的所有g(shù)em包 #顯示RubyGem使用幫助
由于國(guó)內(nèi)網(wǎng)絡(luò)原因(你懂的),導(dǎo)致 rubygems.org 存放在 Amazon S3 上面的資源文件間歇性連接失敗。這里要更換默認(rèn)鏡像為淘寶的鏡像。
gem sources --remove https://rubygems.org/ gem sources -a https://ruby.taobao.org/ gem sources -l *** CURRENT SOURCES *** https://ruby.taobao.org # 請(qǐng)確保只有 ruby.taobao.org
使用bundler管理多版本的Gem
有了rbenv來(lái)管理多版本的ruby環(huán)境,我們還需要一個(gè)能管理多版本gem(比如rails)的工具,那就是bundler了,項(xiàng)目背景不細(xì)說(shuō)了,需要了解的直接到官網(wǎng),這里只講一些實(shí)際使用經(jīng)驗(yàn)
安裝:
gem install bundler
使用:
mkdir app1; cd app1; echo "source 'https://ruby.taobao.org/'" > Gemfile echo "gem 'rails,'4.1.0'" >> Gemfile bundle install
上面代碼在app1下安裝了rails 4.1.0,使用bundle exec rails -v查看當(dāng)前目錄下使用的rails版本,顯示內(nèi)容應(yīng)該為Rails 4.1.0,同樣此時(shí)通過(guò)bundle exec rails new . --force覆蓋原來(lái)Gemfile,此時(shí)的app使用的rails版本為4.1.0
mkdir app2; cd app2; echo "source 'https://ruby.taobao.org/'" > Gemfile echo "gem 'rails,'3.2.13'" >> Gemfile bundle install
上面代碼創(chuàng)建了第二個(gè)app2文件夾,并通過(guò)bundler安裝了rails 3.2.13 同樣通過(guò)bundle exec rails new . --force可以生成基于rails 3.2.13版本的應(yīng)用
安裝了以上兩個(gè)版本后,通過(guò)gem list --local可以看到rails有兩個(gè)版本,顯示為rails (4.1.0, 3.2.13),bundler會(huì)智能的判斷每個(gè)項(xiàng)目的rails版本,以確保應(yīng)用的正確運(yùn)行,但前提是通過(guò)使用bundle exec命令來(lái)執(zhí)行原來(lái)得命令,例如:
bundle exec rails s bundle exec rake db:create ...
相關(guān)文章
Ruby的字符串與數(shù)組求最大值的相關(guān)問(wèn)題討論
這篇文章主要介紹了Ruby中的字符串與數(shù)組求最大值的相關(guān)問(wèn)題,文中還提到了sort排序方法的相關(guān)用法,需要的朋友可以參考下2016-03-03使用Ruby實(shí)現(xiàn)簡(jiǎn)單的事物驅(qū)動(dòng)的web應(yīng)用的教程
這篇文章主要介紹了使用Ruby實(shí)現(xiàn)簡(jiǎn)單的事物驅(qū)動(dòng)的web應(yīng)用的教程,本文來(lái)自于IBM官方技術(shù)文檔,需要的朋友可以參考下2015-04-04解析proxy代理模式在Ruby設(shè)計(jì)模式開(kāi)發(fā)中的運(yùn)用
這篇文章主要介紹了proxy代理模式在Ruby設(shè)計(jì)模式開(kāi)發(fā)中的運(yùn)用,通過(guò)代理模式以客戶透明的形式可以動(dòng)態(tài)地為目標(biāo)對(duì)象加以行為控制,需要的朋友可以參考下2016-04-04Ruby的面向?qū)ο蠓绞骄幊虒W(xué)習(xí)雜記
Ruby是具有面向?qū)ο筇匦缘木幊陶Z(yǔ)言,這里整理了一些Ruby的面向?qū)ο蠓绞骄幊虒W(xué)習(xí)雜記,包括類與方法等基本的面向?qū)ο笠氐闹R(shí),需要的朋友可以參考下2016-05-05