一、初識Ruby
Ruby對于程序員和極客并不陌生,這是一個20世紀90年代由日本牛人松本行弘(Yukihiro Matsumoto)開發(fā)的腳本語言,之后一直在開源領域默默發(fā)展。這個語言的特點是簡潔、優(yōu)雅,上手容易,代碼直觀,維護性好,所以深受程序員的追捧。不知不覺到了2016年,在全球編程語言排行榜上已經(jīng)處于前10名的位置。
對于這樣一個使用廣泛的語言,龍芯平臺能不能方便的支持呢?今天我們就從頭開始搭建Ruby的環(huán)境,試驗一下龍芯電腦好不好用。
2016年1月TIOBE編程語言排行榜
二、龍芯3B機器亮相
我們使用的機器是一臺龍芯3B迷你電腦。龍芯3B迷你電腦是首款國產(chǎn)商用8核處理器,推出之時在市場上引起了不小的轟動,性能足夠日常辦公使用,預裝了瀏覽器、Office、文件管理、影音播放等常用的軟件,開箱即用。
想要了解這款機器的信息可以訪問這個頁面“國貨的進步之作 龍芯3B迷你電腦上手體驗”(http://Desktops.pconline.com.cn/551/5512119.html)。
還可以看這里“大有進步-龍芯3B六核迷你電腦體驗之初印象”(http://www.loongsonclub.com/BBS/portal.php?mod=vIEw&aid=16)
龍芯3B迷你電腦
三、好馬配好鞍:龍芯社區(qū)操作系統(tǒng)Loongnix
有了這樣強勁的國產(chǎn)CPU電腦,一定要搭配優(yōu)秀的國產(chǎn)操作系統(tǒng)。在今天的實驗中,我們要嘗鮮的是龍芯開源社區(qū)版操作系統(tǒng)Loongnix。
Loongnix是由龍芯公司親自開發(fā)的,并且組織聯(lián)合產(chǎn)業(yè)鏈合作廠商、國際開源軟件社區(qū)及開源愛好者共同參與建設。社區(qū)以“開源、開放”的形式進行管理,設置內核、瀏覽器、Java、圖形、編譯工具等系列基礎軟件項目。既然是CPU公司自家產(chǎn)品,想必在龍芯基礎軟件方面的研制優(yōu)化成果將首先在社區(qū)版的Loongnix操作系統(tǒng)中集成和驗證。這樣的“優(yōu)質搭配”想不優(yōu)秀都難啊。
龍芯社區(qū)版操作系統(tǒng)Loongnix
四、下載源代碼
我們直接訪問Ruby主頁,下載最新版本ruby-2.3.0.tar.gz。文件只有17MB。
下載地址:http://www.ruby-LANg.org/en/downloads/
我們把這個文件通過U盤或者網(wǎng)絡(SSH、Ftp)等方式,傳送到龍芯機器上去。
五、編 譯
Linux上的自由軟件編譯方式都是大同小異,基本都是“解包 - configure - make - make install”的套路。Ruby也不例外,命令行都是極其簡單。下面我們就一步步來,不用被這些天書一樣的命令嚇倒,等你走完一遍流程之后就會發(fā)現(xiàn),在Linux上安裝軟件其實比windows上更簡潔方便。
1. 解包
$ cp ruby-2.3.0.tar.gz ~
$ cd ~
$ tar zxf ruby-2.3.0.tar.gz
$ cd ruby-2.3.0
2. 配置
$ ./configure
3. 編譯
$ make -j 8
下面就是等待編譯完成了。在此期間可以倒一杯水喝,或者活動一下身體。在龍芯3B上編譯大約需要20分鐘時間。
4. 安裝
# sudo make install
(這時候會提示輸入管理員密碼)
不出意外的話,上面的過程應該一切順利。
六、在龍芯上運行Ruby
激動人心的時刻終于到來了!我們先運行一下ruby命令,打印一下版本信息吧:
$ /usr/local/BIn/ruby -v
ruby 2.3.0p0 (2015-12-25 reVision 53290) [mips64el-linux]
看見了吧?版本標識里面鮮明的打印了“mips64el”,這個就是龍芯的指令集,而且是64位喲。
既然開始了就不要停下,再運行一下ruby自帶的測試例子吧。test_vector.rb聽上去應該是一個數(shù)組計算程序:
$ cd test/matrix
$ /usr/local/bin/ruby test_vector.rb
Loaded suite test_vector
Started
............................
Finished in 0.123432586 seconds.
----------------------------------------------------------------------------------------
28 tests, 86 assertions, 0 failures, 0 errors
100% passed
----------------------------------------------------------------------------------------
226.84 tests/s, 696.74 assertions/s
七、Ruby的“Hello World”
到目前為止,我們已經(jīng)干了不少事情,但是只差一件最重要的事,我們還沒有自己寫Ruby程序啊!這對于傲嬌的程序員是不能容忍的,來寫一個Ruby語言的“Hello World”吧!打開任何一個文本編輯器,你可以使用“神的編輯器”vim,也可以使用入門級的“文本編輯器”,編寫一個hello.rb文件,里面只有一行內容:
[hello.rb]
puts "Hello World!"
因為Ruby是腳本語言,所以不需要編譯,直接運行文本文件:
$ /usr/local/bin/ruby hello.rb
Hello World!
果然不出所料,真的打印出來了!
八、神奇的事豈止于此
朋友們看到現(xiàn)在可能已經(jīng)不耐煩了,搞了半天難道就為了打印幾個字符?當然不只是這些簡陋的功能了,只不過所有復雜的系統(tǒng)也是從簡單的開始。Ruby是平臺無關的語言,所有采用Ruby語言編寫的應用程序,都能夠在Ruby的虛擬機上運行了。所以這意味著龍芯平臺擁有了Ruby的全套軟件生態(tài),以往在X86平臺上搭建的服務器應用系統(tǒng),現(xiàn)在都能夠以“零代價”的方式遷移到龍芯平臺上來。想想都讓人覺得國產(chǎn)CPU大有希望啊!
由于現(xiàn)在Ruby的資源太多了,在此不可能一個一個都搭建起來,筆者只試驗了兩個較大規(guī)模的系統(tǒng),一個是redmine,是中國人開發(fā)的項目管理系統(tǒng);另一個是Casein,開源的內容管理系統(tǒng)。有興趣的朋友可以再找類似的系統(tǒng)搭建起來。
龍芯平臺上運行redmine項目管理系統(tǒng)
龍芯平臺上運行Casein內容管理系統(tǒng)
九、遇到問題怎么辦?
上面的文章是筆者搭建過程的記錄,朋友們按照這些操作命令也應該能夠搭建好Ruby環(huán)境。如果遇到意外情況,電腦提示錯誤,請首先檢查輸入的命令是否和示例完全相同。如果錯誤還是存在,實在無法解決,也不用著急,龍芯社區(qū)有官方的Bug服務門戶(http://bugs.loongnix.org/login_page.php),你可以把遇到的錯誤現(xiàn)象提交上去,會有龍芯團隊的人員給您專門解決哦。
龍芯官方的Bug提交平臺
十、總 結
筆者在不到一天的時間里不停的把玩龍芯3B電腦,總的感覺是運行穩(wěn)定,體驗流暢,系統(tǒng)清爽,沒有PC電腦上Windows的病毒軟件之類困擾,最適合做需要集中精力干正經(jīng)事的辦公工作,以及服務器之類要求高可靠、高安全的領域。
現(xiàn)在龍芯經(jīng)過10多年發(fā)展,早已形成了成熟的市場,軟件生態(tài)也在蓬勃發(fā)展,除了本文搭建的Ruby語言環(huán)境之外,所有主流的語言都已經(jīng)能夠支持,包括Java、PHP、python都是有成熟的解決方案。
何況去年龍芯發(fā)布新一代產(chǎn)品3A2000,性能比3B又高了2倍,萬眾期待。相信用不了多久,龍芯CPU就可以在開放市場一較高低。