GUI世代のためのCUI入門以前 ー MacPorts導入方法

Macは使うけどTerminal.appはあまり開かない、というプログラマーがいるとすれば、それはあまりに勿体無いです。
最近、AppleCUIからの脱却を図ろうとしている、なんて話も聞きますが、CUIは使いこなせば強力な武器になりますし、なにより蓄積された膨大な遺産があります。これを使わない手はありません。

なにはともあれ昨日紹介したiTermに続き、CUI厨を増やすが如く、今日はMacPortsを紹介します。


日本のMacPorts Wikihttp://macwiki.sourceforge.jp/wiki/index.php/MacPorts)によると

MacPorts http://www.macports.org/MacOSX 上で利用可能なパッケージシステムの一つで、 主に UNIX 向けに開発されたオープンソース・ソフトウェアを手軽にインストールすることができます。

だそうです。つまり、コマンドでプログラムを簡単にインストールすることができるパッケージ管理システムなんですが…とは言われてもわからないと思いますので、ひとつプログラムを使えるところまで今日は説明したいと思います。




1. MacPorts本体のダウンロード

MacPorts - http://www.macports.org/ から本体をダウンロードしてきます。ダウンロードページは、トップページの画面右上の「Download」から移動できます。
移動したら、「Mac OS X Package (.pkg) Installer」の項目の中の、「Snow Leopard」「Leopard」「Tiger」から自分の環境のリンクを開き、dmgファイルをダウンロードします。

2. インストール

ダウンロードが終ったら、dmgファイルをダブルクリックしてマウントします。マウントするとpkgファイルが表示されるので、これをダブルクリックします。あとはそのままサクサクと進めていけばインストールが完了するはずです。


3. 確認

インストールが完了したら、ちゃんとインストールされているかを確認します。
Terminal.app、またはiTermなどを開き、

$ port -v

と入力してエンターを押してみてください。以下のような文字が出力される筈です。

MacPorts 1.8.1
Entering interactive mode... ("help" for help, "quit" to quit)
[Sites/test] >

もし "command not found: port" と言われたら、

$ /opt/local/bin/port -v

としてみてください。これで駄目なようなら、もう一度インストールを試してみてください。


4. selfupdate

MacPortsを使い始める前にselfupdateをする必要があります。これは、MacPorts自身とプログラムのリストを更新します。

$ sudo port selfupdate
5. プログラムをインストールしてみる

今回は "pstree" をインストールしてみます。Pstree - http://www.linux.or.jp/JM/html/psmisc/man1/pstree.1.html
pstreeは動作中のプロセスツリーを表示してくれるものです。

まずはプログラムが存在するか確認します。

$ port search pstree

すると、こんな風に表示されるはずです。

pstree @2.32 (sysutils)
    pstree shows the output of the ps command as a tree

次に、これは今回はあまり必要ないですが、インストールする際に使用するオプションを調べることができます。

$ port variants pstree
pstree has the variants:
   universal: Build for multiple architectures

ではインストールをしてみます。インストールは以下のようにします。

$ sudo port install pstree
--->  Computing dependencies for pstree
--->  Fetching pstree
--->  Attempting to fetch pstree-2.32.tar.gz from http://distfiles.macports.org/pstree
--->  Verifying checksum(s) for pstree
--->  Extracting pstree
--->  Configuring pstree
--->  Building pstree
--->  Staging pstree into destroot
--->  Installing pstree @2.32_0
--->  Activating pstree @2.32_0
--->  Cleaning pstree

特にエラーも出ていないので、多分インストールは成功したはずです。試しに

$ pstree

としてみると色々出てくるはずです。

-+= 00001 root /sbin/launchd
 |--= 00010 root /usr/libexec/kextd
 |--= 00011 root /usr/sbin/notifyd
 |--= 00012 root /usr/sbin/diskarbitrationd
 |--= 00013 root /usr/libexec/configd
 |--= 00014 root /usr/sbin/syslogd
 |--= 00015 root /usr/sbin/DirectoryService
 |--= 00016 daemon /usr/sbin/distnoted
 |--= 00020 _usbmuxd /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/
 |--= 00023 root /usr/sbin/securityd -i
 |--= 00025 root /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.fr
 |--= 00026 _mdnsresponder /usr/sbin/mDNSResponder -launchd
 |--= 00027 tamaki /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindo
 |--= 00028 root /usr/sbin/KernelEventAgent
 |--= 00030 root /usr/libexec/hidd
 |--= 00031 root /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/
 |--= 00033 root /sbin/dynamic_pager -F /private/var/vm/swapfile
 |--= 00038 root /usr/sbin/blued
 |--= 00039 root autofsd
 |--= 00044 root /System/Library/CoreServices/coreservicesd
 |--= 00056 _windowserver /System/Library/Frameworks/ApplicationServices.framework/Framew
 |--= 00064 root /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/cvmsSer
 |--= 00075 _coreaudiod /usr/sbin/coreaudiod

MacPortsを使えば、例えばウェブサーバーの環境作りなんかもかなり簡単に行うことができます。
Apache PHP MySQL MacPorts」でググると大量の情報が見つかります。
これを期にCUI生活を始めてみてはいかがでしょうか。