What have you found for these years?

2009-03-02

arch ruby19 with abs

先安裝 abs:
> sudo pacman -S abs

如果要灌官方的 pkg, 更新 abs db:
> sudo abs

不過 ruby 1.9 不在官方裡,在 AUR 裡:
http://aur.archlinux.org/packages.php?ID=23973

我們會需要那個 PKGBUILD, 大概類似 gentoo 的 ebuild 吧

建個目錄來 build 吧:
> mkdir ~/ruby19
> cd ~/ruby19
> wget http://.../PKGBUILD

現在這個目錄有 PKGBUILD 了,可以檢查一下,
因為這等於是整個 building 的 script.
也可以檢查一下一些 abs 的 flag 設定:

> sudo vim /etc/abs.conf

檢查完之後,就可以開始 build 了:
> makepkg
...會先自動下載 source, 然後 configure + make
當然其他 pkg 可能不是用 configure + make, 至少 ruby 1.9 是。

build 完就可以用 pacman 安裝了:
> sudo pacman -U ruby19-1.9.1-1-x86_64.pkg.tar.gz

這樣當然以後可以用 pacman 的操作管理 ruby19.
或是還有 fakeroot 的安裝方式,這裡就不寫了。(其實是我沒試 XD)

其他沒有記載的,請參考 arch 自己的 wiki, 非常清楚詳細。
http://wiki.archlinux.org/

沒意外的話以後我自己灌 linux 大概就都用 arch 吧。
有個良好 compile from source 的 package management,
覺得還是非常必要的。個人喜歡 macports, 雖然有時候有點問題...
而 bsd 的 port 嘛,我是沒用過 *bsd, 不過感覺 linux 還是先進些。
之前看過不少東西,發現都是 linux only 的。

至於 gentoo, emerge 的用法我不太習慣,而且之前對他印象很差,
他改過 ruby 不知道哪裡,使得不用 require rubygems 就可以
require 安裝好的 gem, 看起來是好事,但我升級 rubygems 時就爛了。
產生一些很奇怪的狀況,例如怎麼樣都讀不到正確的 gem ......
後來怎麼解決有點忘了,好像是整個重灌吧?搞很久覺得滿不爽的。

而像 arch 平常用 pacman 灌 binary, 而需要 tune 時改用 abs,
彈性與方便性都不錯。至於 ubuntu, fedora 那些就別提了,感覺很差...
debian 沒用過,其他比較少見的如 slakeware, open suse, 等,
也都沒用過。感覺 arch 是比較合我胃口一點,方便性與彈性都不錯。

ref:
一些 arch 與其他 distribution 比較(也有 *BSD):
http://wiki.archlinux.org/index.php/Arch_vs_Others

(對不起,我承認 pacman 這個名字對我滿有吸引力的 XD)
Pacman
http://wiki.archlinux.org/index.php/Pacman

ABS, the Arch Build System
http://wiki.archlinux.org/index.php/ABS

AUR, the Arch User-community Repository
http://wiki.archlinux.org/index.php/AUR_User_Guidelines

4 retries:

蹏擘 said...

hi,我利用yaourt,安装了ruby-svn。

但是,之前的ruby-1.8还在。并且新版本的ruby默认都成了

ruby19

gem19

等等
请问两个版本的ruby这种情况如何解决?

godfat 真常 said...

你希望的是?只要一個叫 ruby 的,然後版本是 1.9 嗎?
如果是這樣的話,改 PKGBUILD, 把裡面的

--program-suffix=19

拿掉,就不會有多餘的 19

蹏擘 said...

哦,我试试。谢谢

请问你在archlinux用什么写ruby'程序呢


我用的vim,可是没有智能提示,我也不会配置。。。如果你用vim的话,能不能共享一份?

godfat 真常 said...

不客氣

編輯器我是都用 TextMate 啦 @_@b
都是寫好之後才上傳,或是 diff 過去再 apply
沒有真的在用 terminal 寫程式的,不熟悉 @@

Post a Comment

All texts are licensed under CC Attribution 3.0