Beginning OS X 10.5/インフラ整備編

出典: Beginning OS X

Beginning OS X 10.5 > インフラ整備編

目次

[編集] OS X のインストール

OS X のクリーンインストールをおこなうには、OS X のインストールディスクを挿入して C を押しながらブートする。インストーラが起動するので、パーティションを編集するなどしたのち、インストーラの指示に従って作業をおこなう。

Mac OS X 10.5 Leopard を旧環境に上書きインストールするのは極力避けたほうがよいが、万一そうせざるを得ないのであれば、既存の MacPorts は事前にアンインストールしておくこと。また、MacPorts 以外のパッケージシステムを利用していたのなら、それらもアンインストールしておくのがよい。パッケージシステムの混用は推奨されない

OS のインストール後にはソフトウェア・アップデートも忘れずに実施し、常に最新の状態に保つこと。

[編集] 基本的なデーモン

[編集] ntpd

メニューバーの右にある時計表示をクリックするか、「システム環境設定」の中から選択し、「日付と時刻」のウインドウを開く。

この中に「日付と時刻を自動的に設定」のチェックボックスが見つかるので、これをチェック。以上で ntpd が立ち上がる。(デフォルトでチェックが入っていることもある)

サイトで独自に NTP サーバを立ち上げている場合には、サーバ名の欄を適当なものに書き換える。NTP サーバが複数ある場合には、スペースで区切って書き入れること。

NTP サーバとの同期に関する状況は「ntpq -pn」で確認することができる。

[編集] sshd

sshd を立ち上げる必要があれば、「システム環境設定」の中から「共有」のアイコンをクリックし、リモートログイン サービスを有効にする。

[編集] X11 と Xcode

[編集] X11.app

OS X 10.5 に添付の X11 (X11 2.0) には多数のバグとセキュリティホールが存在するため、最新版にアップデートする必要がある。

Xquartz project から最新のパッケージを入手し、インストールしておくこと。

[編集] Xcode 3

アップルのサイトから最新の Xcode (または iPhone SDK) を入手してインストール。入手するには ADC への登録 (無料) が必要。

インストールするコンポーネントはデフォルトのままで構わない。

[編集] 基本的なソフトウェア

[編集] Terminal.app

Terminal.app を起動後、メニューより「ターミナル」→「環境設定」を開き、以下の設定をおこなうと便利に使える。

  • 設定
    • テキスト
      • フォントはデフォルトの「等幅 Monaco レギュラー 10」から無闇に変えないほうが無難。(フォントサイズの変更程度ならば問題はないが、フェイスを入れ替えると記号類のグリフの桁処理がおかしくなる場合がある。)
      • 小さなサイズの文字が読み難ければ、「テキストをアンチエイリアス処理」にチェックを入れてみるのもよい。
    • シェル
      • シェルの終了時:ウインドウを閉じる
    • キーボード
      • 以下の文字列をシェルへ送信する
        • end : CONTROL+OPTION+[ [ F    ←3文字
        • home : CONTROL+OPTION+[ [ H
        • page down : CONTROL+OPTION+[ [ 6 ~    ←4文字
        • page up : CONTROL+OPTION+[ [ 5 ~
    • 詳細
      • Delete 押下時にはデフォルトで \e[3~ のエスケープシーケンスが送出される。このシーケンスが使えないホストに対して頻繁にログインするような場合 (かつ、ホスト側の設定で吸収しきれない場合) には、「Delete キーで Ctrl-H を送信」をチェックしておくとよい。

[編集] MacPorts

MacPorts のサイトから最新のソースを入手し、ビルドする。

$ cd
$ svn export http://svn.macports.org/repository/macports/tags/release_1_6_0
$ cd release_1_6_0/base/
$ ./configure
$ make
$ sudo make install

生成されたバイナリは /opt ディレクトリ配下にインストールされる。

MacPorts のインストール後には環境変数 PATH を一時的に書き換え、port コマンドを扱えるようにする。

$ export PATH=/opt/local/bin:$PATH
$ export MANPATH=/opt/local/share/man:$MANPATH

最後に、以下のコマンドを入力して MacPorts 本体および ports のデータベースを最新の状態に更新する。(-d はデバッグ出力を表示させるためのオプション)

$ sudo port -d selfupdate

[編集] libiconv

MacPorts では libiconv を cp932fix 付きで導入することができる。(オプション)

$ sudo port install libiconv +enable_cp932fix

[編集] X11 環境の整備

[編集] kinput2

日本語インプットメソッドとして kinput2 を導入する。 (Oct 26, 2007 現在、kinput2.macim は OS X 10.5 に未対応。)

$ sudo port install kinput2

依存関係により canna も導入される。canna はサーバなので、以下のコマンドで自動的に起動されるように設定しておく。

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.canna.plist

kinput2 を用いて実際に日本語を入力するには、environment.plist.xinitrc の設定が必要。

kinput2 のキーバインドに関して

MacPorts の kinput2 では、標準の Shift+Space や Control+o 以外に Command+Space も変換キーとして使えるようにしてある。

[編集] 基本的な設定ファイル

[編集] environment.plist

OS X ではユーザがログインした際に設定される環境変数を ~/.MacOSX/environment.plist 中に記述しておくことができる。

以下のようにして XMODIFIERS と LANG が適切に設定されるよう、plist ファイルを作成しておくとよい。

$ mkdir ~/.MacOSX
[~/.MacOSX/environment.plist]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>LANG</key>
    <string>ja_JP.UTF-8</string>
    <key>XMODIFIERS</key>
    <string>@im=kinput2</string>
</dict>
</plist>

environment.plist はユーザがデスクトップにログインした際、ログインシェルを起動する前に読み込まれる。リモートからの SSH ログイン時には読まれない。

再ログインすると設定が反映されているはずなので、次に進む前に正しく設定されているかどうかを確認しておくこと。

$ export
...
declare -x XMODIFIERS="@im=kinput2"
...

なお、LANG に関しては Terminal.app の設定項目にある「起動時に LANG 環境変数を設定」がチェックされている場合、シェルが起動するまでに書き換えられてしまうので、内容が違っていても無視して構わない。

参考: Technical Q&A QA1067 Setting environment variables for user processes

[編集] .bashrc

[~/.bashrc]
# If not running interactively, don't do anything
test -z "$PS1" && return

# Make bash check it's window size after a process completes
shopt -s checkwinsize

PS1='\u@\h\$ '

test -x /opt/local/bin/lv && alias less=/opt/local/bin/lv

(ブラウザからのコピー&ペーストの際、「\」の字が化けることがあるので注意。)

[編集] .bash_profile

[~/.bash_profile]
#umask 22

#ulimit -c unlimited
#ulimit -d unlimited
#ulimit -s 65532
#ulimit -u 532
#ulimit -n 10240

LANG=ja_JP.UTF-8; export LANG

PATH="/usr/bin:/usr/sbin:/bin:/sbin"
MANPATH="/usr/share/man"
test -d /usr/local && PATH=/usr/local/bin:/usr/local/sbin:$PATH &&
                      MANPATH=/usr/local/share/man:$MANPATH
test -d /usr/X11   && PATH=$PATH:/usr/X11/bin &&
                      MANPATH=$MANPATH:/usr/X11/man
test -d /opt       && PATH=/opt/local/bin:/opt/local/sbin:$PATH &&
                      MANPATH=/opt/local/share/man:$MANPATH
export PATH MANPATH

if test -x /opt/local/bin/emacs; then
    EDITOR=/opt/local/bin/emacs; export EDITOR
else
    EDITOR=/usr/bin/emacs; export EDITOR
fi

if test -x /opt/local/bin/lv; then
    PAGER=/opt/local/bin/lv; export PAGER
    LV="-E'$EDITOR +%d'"; export LV
else
    PAGER=/usr/bin/less; export PAGER
fi

BLOCKSIZE=k; export BLOCKSIZE

# include .bashrc if it exists
test -f ~/.bashrc && . ~/.bashrc

ちなみに、環境変数 LANG を .bash_profile と environment.plist の双方で設定している理由としては、

  1. ファインダー上からアプリケーションを直接起動したような場合にはログインシェルが介されず、.bash_profile が読まれないため。
    • たとえば gimp.app などの場合、LANG が未設定のままでは表示されるフォントが化ける等の問題が生じる。
    • 検証用のアプリケーションを用意したので、興味があれば試されたい。(ユニバーサルバイナリ/OS X 10.4 以降)
  2. リモートから SSH ログインをおこなった際などには environment.plist が読まれないため。

[編集] .inputrc

readline 対応のアプリケーションで delete を使った文字の削除が正常に機能するように設定。

[~/.inputrc]
"\e[3~": delete-char

(ブラウザからのコピー&ペーストの際、「\」の字が化けることがあるので注意。)

[編集] .emacs

[~/.emacs]
(set-language-environment "Japanese")
(setq default-buffer-file-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-clipboard-coding-system 'utf-8)
(prefer-coding-system 'utf-8)

;; In Zenitani's Carbon Emacs Package,
;; file-name-coding-system is set to utf-8m by default
(when (and (>= emacs-major-version 22)
           (eq file-name-coding-system nil))
  (set-file-name-coding-system 'utf-8))

;; workaround for IM issue in Carbon Emacs Package 20071106~
;; see http://homepage.mac.com/zenitani/emacs-e.html for more details
(when (featurep 'carbon-emacs-package)
  (setq default-input-method "MacOSX"))

(global-set-key "\C-h" 'delete-backward-char)
(global-set-key "\e[3~" 'delete-char)

;; Don't show the startup splash screen
(setq inhibit-startup-message t)

(ブラウザからのコピー&ペーストの際、「\」の字が化けることがあるので注意。)

C-h が効かない?

デフォルトの Emacs では、C-h は help に関連付けられているが、ここでは BackSpace キーの挙動を優先するため、delete-backward-char として再定義している。本来の help を使いたい場合には、C-h の代わりに F1 または M-x help を使うようにすること。このため、たとえば emacs tutorial を表示したい場合には、C-h t ではなく F1 t と打鍵する必要がある。

[編集] .xinitrc

X11.app から X11 を立ち上げた際には、~/.xinitrc が読み込まれ実行される。

/usr/X11/lib/X11/xinit/xinitrc をひな形として、自分の環境にあったスクリプトを用意する。

$ cp /usr/X11/lib/X11/xinit/xinitrc ~/.xinitrc
[~/.xinitrc]
...
if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

# start some nice programs

test -x /opt/local/bin/kinput2 && /opt/local/bin/kinput2 &


if [ -d /usr/X11/lib/X11/xinit/xinitrc.d ] ; then
...