SSブログ

MacPortsの替わりに、HomeBrewを入れてみた。 [MacOSX]

MacPortsに問題があり過ぎなので、HomeBrewに鞍替えしようとしました。MacPortsをアンインストールするのもかなり時間がかかった。何でディレクトリを削るだけなのに、こんなに時間がかかるのかと驚きだ。最後まで食えない奴だったな、MacPorts。

ちょっと前に全部新しくしたんだけど、他のリポジトリがあるならそっちの方がいいはずだ、と思わせるくらいの状態だった。使えない事はないのだが、不具合を上げているのに解決してますを連発。こっちは問題が多発しているから、それを教えてあげているのに、しかも拙い英語で書いてやってるのに、まともに対応してくれない。掲示板にはやたらそういうバグが報告されているし、大体が解決済みだと書いてある怠けぶり。別にフリーソフトなんだから、ある程度は仕方ないとは思うけど、そんなんじゃ誰も使わなくなるよ、っていうあしらいぶり。


 
今回はここを見て適当にやった。というか、Xcode入れる事しかしてないけど動いちゃった。
http://blog.hifumi.info/mac/mac-%E3%83%87-homebrew-%E3%83%8E%E3%82%B9%E3%82%B9%E3%83%A1/#migration_macports
何か決定的な間違いをしてなけりゃいいけどね。


HomeBrewにはXcode4.6が必要だよ、とワーニングがあったので、nmapのインストールを止めて、XcodeをApp Storeからアップデートをかける。コンパイルしちゃうから、あとでバイナリ互換が取れなくなると嫌なので、環境は言われた通りに揃えた方がいい。にしても、Xcodeのインストールは時間がかかるな。


本家はここ。
http://mxcl.github.com/homebrew/
インストール方法はコマンドをターミナルにコピペして、動作させるだけ。勝手に入れてくれるので、頭を使わないで楽だ。


終わったので、nmapのインストール。brew install nmap でやったけど、MacPortsと同じバイナリのリポジトリじゃなくて、自分のところの環境を使うというのは本当らしく比較的コンパイルには時間がかからなかった。いや、それでも時間は結構かかるんだけどね。MacPortsよりかはマシかな?という程度。

/usr/local/Cellar/ にインストールされるみたい。MacPortsは/opt/local/ とかに入っていた気がするが、場所はどっちでもいいや。いざという時にわかればいいし、whichコマンドでどこにあるかは嫌でも分かるし。Macが持っているツールを使うという事で、依存パッケージをやたらコンパイルしなきゃいけないMacPortsのように、無駄なCPUパワーと時間を浪費する必要がない。

にしても、./configure にやたら時間がかかるのはなぜでしょうか。ファイルを解凍している表示がないので、./configure の表示の時にやってるのかもしれない。make && make install とかは妙に速かったりするのですが、もしかして、MacPortsと同様にやたら依存関係の処理に時間がかかってるのかもしれない。

もしかしたらAPTやYUMみたいに、バイナリのリポジトリかと思ったけど、結局はそこのところはMacPortsと同じなんですね。そんなに環境がマシンごとに変わるとは思えないから、バイナリをリリースしても何の問題もないと思うんですが、ソースコードのアーカイブファイルも開発している本家から取ってきているから、それを期待するのは酷なんでしょう。

なんかRubyでできているというのを本家サイトで見て、ちょっと親近感が湧いた。ソースが書いてあって、それの意味が分かるってのはいいですね。別にRubyを知らなくても何となく分かると思います。やっぱRubyやっててよかったと思ったり。


やってて、マズいと思った事。
MacPortsで何を入れていたんだか確かめずにアンインストールしちゃったこと。
まだ全然コマンドライン操作を習得していないこと。APTとかと同じだったら楽なのに。



使いそうなコマンドはちょっと拾っとくか。ってかmanまんまだけど

コマンド 内容
brew install まんまインストール。
brew remove アンインストール
brew list インストールしたもの一覧。
brew search パッケージの検索。正規表現が使える。それが何かは説明がない
brew update HomeBrew本体の更新。
brew doctor 環境の問題をあげつらう。初期状態でもザラザラ出てくる(黙ってやってくれればいいのに)



brew doctorのワーニングは全部取っておいた方がいいんだろうなぁ。
$ brew search|wc -c

ん〜今は、20460パッケージあるんですね。これだけあれば、MacPortsと比較しても問題ないんでしょう。しかし、今まで何を入れていたかが確認しなかったのが悔やまれる。slコマンドとかは入れてるの覚えてるのに実用的なコマンドは何入っていたか忘れた。

あ、TimeMachineつかえばディレクトリで分かるか…。ふむ…。
色々入れてる中で要らないものも結構入っとる。bzip2, bunzip2, rsync, perl, pythonなどは重複していて、これらは多分、Macに入っているものでいいのだろう。どっちにせよ、bzip2とrsync以外は直接使う事もない。その他、入れた覚えのないパッケージで埋まっており、MacPortsにきれいサッパリ別れを告げられたのはいい機会であった。


でもね、アンインストールの方法をやっても、パスとか残ってるのね。それと、参考にしたサイトの公式サイトに従いますと書いてある、rmのコマンドの下りは、改行に\が消えているのでコピペしてもなんも起こりません。我慢しないで公式サイトに行きましょう。僕みたいに改行文字とって一行にするとか手間をかけても誰も褒めてくれません(泣)。
http://guide.macports.org/#installing.macports.uninstalling

ログアウト、ログインで、誤った方向に向いていたパスの設定とかは消えて、MacPortsと重複して入れたtreeコマンドなどはきちんとHomeBrewに向いて使えるようになった。それまで、/opt/local/ にあったはずのMacPortsの方を見に行って、ないとか言われてたんだよね。こういう設定は本来はどうやって変えればいいんでしょうね。リブートまではしてないけど、ちょっと安易にやっちゃった。

/opt/local/ 以下にあるパスへの設定は残った。手動でパスを貼ったらしく、.bashrcとかに設定があるかなと思ったんだけど、そういう設定ファイルはホームディレクトリにはなかった。え〜UNIXは基本テキストファイルじゃないの?と思ったが、環境設定がどこにも見つからない。やっぱり、それはコマンドラインで行なわないといけないらしい。

/etc/profileから/usr/libexec/path_helperが動いているのは分かった。man path_helperで見てみたら、その前に見ていたファイル、/etc/paths と、/etc/paths.d/50-x11に分散している事は分かった。だから/opt/local/ へのパスの設定なんて自分からやってないから、何を買えたらいいか全然分からなかったのですが、最終的には~/.profile に多重に定義されていて、スゴく嫌な感じでした。インストールごとに追加されていたらしく、
 export PATH=/opt/local/bin:/opt/local/sbin:$PATH

という記述が4つもあってウンザリした。なんて筋の悪い実装なんだ。そりゃ$PATHにやたら重複して出るわな。消しちゃっても良かったんだが、なぜかコメントアウトして醜体を残した。いや、本当に消しちゃっていいんだけど、もしかしたらMacPortsを戻すかもしれないからね〜。でも、一つだけ残しとけばいいんだよね、普通に考えれば。まぁいいや。放置する。

もうport関係のパスは一切出てこなくなってうれしい限り。もしかして、バイナリか?とか、再起動したら消えるのか?とか、思ってしまった深夜の作業が恨めしい。解決したので寝ます。macにはホームディレクトリにやたら「.」で始まる設定ファイルがあって、/etcにもちょっとLinuxとは違う構成になっていたりして正直何が悪さしているんだか分からなかった。やっぱMacは特殊だけどUNIXなのでした。そしてMacPortsが更に逆恨みで印象悪化。HomeBrewが決定的に悪くない限り、MacPortsには戻ってやるもんかと思ったのでした。まぁMacPortsよりか悪い事はないでしょ。普通に運用していれば、ああにはならないよ、普通は。今から入れる人は、MacPortsじゃなくてHomeBrewがいいと思います。というか、マシだと思います。


愚痴が過ぎましたね。大体、Macに入っているものが多かったので、一気にダイエットできた感じ。
結局入れたものは次の通り。

 swftools
 tree
 nmap
 wget

あとBitTorrentのクライアントが入ってたんだけど、入れるかどうか検討中。Macのアプリがあれば、それを使った方がMacのシステム的に楽できる(ブラウザのクリックで連動する)ので、GUIなアプリを入れた方がいいんじゃないか、と思ったり。

同様に入れるのを見送ったもの。

 gem
 mysql
 svn
 unrar

使うかどうかよく分かんなかったし、mysqlとか常駐させておいたらメモリ食いそうだしね。まぁ必要になったら入れるんだろうけど、MySQLはOracleの持ち物になってしまったので、永遠にバイバイかもしれません。

こう見ると、要らないものがたくさん入っていたもんだなと思わざるを得ません。MacPortsは付随するパッケージが多くて、依存パッケージがダラダラ入ってた(何が入ってたか直接見た)。直接、ディレクトリでも見ないと、意図してコマンド打って確かめもしなかったんだなぁとちょっと反省。いや、MacPortsが冗長すぎるのが悪いんだけどね…。

タグ:homebrew
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。