學習ruby最好的方法就是下載源碼包,里面帶有sample和test,是入門學習的最好實例。
我下載的是2.1.0版本,首先./configure,然后make,sudo make install。從common.mk文件中可看出,包含有兩類test:test和test-all,test主要是對sample/test.rb進行測試,test-all用於對test文件夾中的用例進行測試。
在make test-all過程中,提示未找到zlib,需要通過gem下載,下面就復習一下gem的語法
gem相關命令使用 1.顯示gem的幫助和版本 gem –h/--help #顯示gem的幫助 gem –v /--version #顯示gem的版本號 2. 列出遠程庫的所有可用軟件 gem query --remote # 短命令: gem q -r 你可以看到一個關於遠程主機上所有軟件的詳細列表。 3. 查找遠程主機上的特定軟件 gem query --remote --name-matches doom # 短命令: gem q -rn doom 你將看到一個匹配doom的詳細列表。 gem list –remote --d #用子命令list列出遠程安裝的gems 4.1 安裝一個遠程軟件 gem install --remote progressbar # 短命令: gem i -r progressbar –y 遠程安裝progressbar到你的主機,-y的意思是無條件的安裝依賴包 gem install rails –remote #從遠程服務器安裝rails包,其中rails可以被替換成任何一個gem list –remote –d中顯示的軟件包 4.2 安裝軟件的特定版本 gem ins -r progressbar-0.0.3 安裝progressbar的0.0.3版本 gem ins -r progressbar --version '> 0.0.1' 將安裝progressbar的大於0.0.1的最新版本 5. 查看一個已安裝的軟件 gem specification progressbar # 短命令: gem spec progressbar 你會看到關於已安裝的包progressbar的詳細信息。 6. 卸載一個軟件 gem uninstall progressbar 卸載了progressbar 7.1 將所有安裝的軟件列表 gem query --local # 短命令: 'gem q -l' 7.2 查看某個已安裝的軟件 gem query --local --name-matches doom # 短命令: 'gem q -ln doom' 或:gem list --local 7.3 需要注意的安裝方法 gem ins rake 會先嘗試本地安裝,如果本地沒有就會遠程下載。 gem list -b ^C 列出本地和遠程的以C開頭的軟件 8. 瀏覽所有安裝的軟件和它們的說明文檔 gem_server 會生成一個web服務器,打開http://localhost:8808 就可以看到一個html詳細列出了你需要的信息。 9. 使用配置文件 gem: --gen-rdoc --run-tests 如果你想安裝軟件后總是生成它們的文檔和運行單元測試,你可以在配制文件里寫上相關的命令,配置文件名是.gemrc,在主目錄里。 10. 構建gem包 gem build package.gemspec #運用bulid子命令構建gem包
參考自園中麥子加菲的博客
下載gem之前,首先將gem的源更換為淘寶網,步驟如下
$ gem sources --remove https://rubygems.org/ $ gem sources -a http://ruby.taobao.org/ $ gem sources -l *** CURRENT SOURCES *** http://ruby.taobao.org
當執行到gem sources -a http://ruby.taobao.org/時報錯:
ERROR: While executing gem ... (NameError)
uninitialized constant Gem::RemoteFetcher::Zlib
原因是下載列表時需要zlib庫,而ruby中沒有帶這個庫,想將源換回之前的庫gem sources -a https://rubygems.org/又報錯:
ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
因此必須安裝zlib,從zlib.net網站下載源碼包,編譯安裝后進入ruby源碼文件夾,安裝ruby自身提供的zlib包
$cd ext/zlib
$ruby ./extconf.rb
$make
$make install
然后再執行gem sources -a http://ruby.taobao.org/,源更改成功