What have you found for these years?

2008-01-25

我居然亂搞系統...

簡單地說就是亂刪一堆東西,最後整個有問題,只好一堆東西都重灌...
要是 svk 不趕快弄起來,很多工作就別做了 XD

不過這樣亂搞一通,又更加強我覺得 ruby 是最好的 scripting language 的感覺。
首先看目錄結構:

> ls /opt/local/lib/ruby/
1.8 gems site_ruby vendor_ruby

1.8 是 standard library.
gems 是透過 rubygems 安裝的東西
site_ruby 是你自己安裝的東西
vendor_ruby 是 package management 安裝的東西

我猜這可能是學習自 perl 的,因為:

> ls /opt/local/lib/perl5/
5.8.8 vendor_perl

現在少了 site_perl, 因為我整個重灌了 囧
用這麼殘忍的動作:
> rm -R /opt/local/lib/perl5

我猜 site_perl 裡是放用 cpan 或其他方法灌的東西。
我覺得他沒 ruby 好的地方,第一個就是少了像 cpan 的目錄,
像 gems 這樣。第二個倒是重要得多,cpan 好像沒有 uninstall 的命令?
上次我在找一些工具,用 cpan 灌了些東西,然後我不知道到底要怎麼移除?
尤其是那啥 lwp 之類的東西,居然把我的 head 這個程式蓋掉了.......
拜託,那也太誇張了。不過這一方面也是 Mac OS 10 的錯,他預設的
filesystem 居然是 case-insensitive 的,結果就這樣掛掉了。
(我要怎麼轉成 case-sensitive 的啊? >_<)

後來找到幾個程式可以砍 cpan 灌的東西,跑了之後果然恢復正常了。
但是隨便找來的東西拿來跑,還是有點怕怕的。還有後來弄了些 PDF 的東西,
而我也實在懶得再去找砍掉的方法了...

所以我的 site_perl 裡就一堆垃圾。剛才因為看不順眼,砍了一堆。
結果有些東西就死掉惹 XD 心想果然不該亂砍的。弄了半天搞不定,
就乾脆全部砍掉重練算了。sudo port uninstall perl5.8
結果 /opt/local/lib/perl5 裡果然有一堆垃圾,跟 port 無關的。

現在全部重建,就希望不要再用 cpan 灌東西了,不能移除感覺很差。
重建順序大概是:
> sudo port install perl5.8
> sudo port install subversion-perlbindings
> sudo port install svk

然後就會在 vendor_perl 裡灌入很多東西,這我都可以透過 port 移除,這樣很好。
不過 port 還是有點問題,常常會碰到奇怪的問題,這時候需要:
> sudo port deactivate perl5.8
> sudo port install svk
> sudo port activate perl5.8
> sudo port install svk

這個動作要重複多做幾次,我也不曉得為什麼,
反正現在看起來正常,在 build svk 了 -_-b
只是怎麼 build 那麼久?svk 究竟是用什麼寫的啊?
(我錯了,其實是卡死在 cpan 裡... 需要先手動設定一次 cpan @@)

然後我就覺得 ruby 的套件管理,rubygems, 實在太厲害了。
我現在是這樣搞的:
> sudo port install rb-rubygems
這樣會安裝 0.9.4, 太老了,而且會灌在 vendor_ruby 裡面。
要升級很簡單:
> sudo gem update --system
或是
> sudo gem install rubygems-update
這樣就會在 site_ruby 裡面灌入新版 rubygems.
好戲在這:
> sudo mv /opt/local/bin/gem gem.bak
> sudo mv /opt/local/bin/update_rubygems update_rubygems.bak
備份這兩個執行檔,接著:
> sudo port uninstall rb-rubygems

沒錯!砍掉 rubygems 啊哈哈哈。
vendor_ruby 裡的 rubygems, 也就是 0.9.4 的會被砍掉。
然後再把剛剛的 gem.bak 和 update_rubygems.bak 搬回來。
這麼做是因為 uninstall rb-rubygems 會砍掉那兩個執行檔。

於是我就有個用 rubygems 安裝的 rubygems 了 XD

還能降級:

> sudo gem install rubygems-update -v 0.9.5
> gem list rubygems-update

*** LOCAL GEMS ***

rubygems-update (1.0.1, 0.9.5)

> irb -r rubygems
irb(main):001:0> gem 'rubygems-update', '=0.9.5'
=> true
irb(main):002:0> load 'rubygems.rb'
=> true
irb(main):003:0> respond_to? :require_gem
=> true
irb(main):004:0> Gem::RubyGemsVersion
=> "1.0.1"

這個原因是 rubygems 內部是用 require, 而不是 load,
所以很多東西沒有重讀。至少 require_gem 可以回來就是了。
如果這樣還是會碰到問題的話,可能就不能先 require 'rubygems',
而要先想辦法把 rubygems-update 0.9.5 require 起來。

接著當然就會想看看 python 是怎麼處理的?

> ls /opt/local/lib/python25
...
五百多個東西 XD

所以結論是還是 ruby 好 @_@b
不過 python 的套件管理程式不知道是誰?
不可否認的是 perl 和 python 資源都還遠遠多於 ruby 也是真的。

乾脆 python25 也重灌好了,啊哈哈哈哈

半夜不知道發什麼神經,中了系統升級的毒... 明明明天還要早起搞別的... >_<

3 retries:

Plumm said...

亂搞是人的天性呀...不知道發什麼神經正是正常的表現呀....

godfat 真常 said...

所以正常人都不是正常人對嗎? XD

Plumm said...

一般正常人個性或多或少有帶有一些被壓抑的...所以正常人通常會需要發洩的管道的...

Post a Comment

All texts are licensed under CC Attribution 3.0