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

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

ディスクのアクセス権の不一致に注意

ソフトウェア・アップデートをおこなうと、実際にインストールされているファイルやディレクトリのパーミッションとレシートとの間で何故か不一致の生じることがあるようだ。

この問題は「ディスクユーティリティ」から「ディスクのアクセス権を修復」することで修正できる。

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

[編集] ntpd

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

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

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

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

[編集] sshd

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

[編集] Xcode と X11

[編集] Xcode 3

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

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

[編集] Java Developer Package for Mac OS X 10.5 Update 10

db46 のビルド等に Java Developer Package for Mac OS X 10.5 Update 10 が必要となるため、アップルのサイトから入手してインストール。

Jun 29, 2011 現在、JDK のインストール後に JavaApplet が正常動作しなくなる問題がある。JDK のインストール後に JRE を再インストールすると回避できるようなので、とりあえずはこれで逃げている。

[編集] X11.app

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

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

X11User と X11SDK の不整合に注意

OS のソフトウェア/セキュリティ・アップデートをおこなうと、X11 が OS 標準のものに戻されてしまい、X11User と X11SDK の内容に不整合が生じてしまう。アップデート後には必ず XQuartz も再インストールしておくこと。その他、Xcode をインストールした際にも再インストールが必要とのこと。

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

[編集] 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 (BackSpace) 押下時にはデフォルトで BS (0x08) の制御文字が送出される。このキャラクタが使えないホストに対して頻繁にログインするような場合 (かつ、ホスト側の設定で吸収しきれない場合) には、「Delete キーで Ctrl-H を送信」をチェックしておくとよい。

[編集] MacPorts

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

$ mkdir ~/Sources
$ cd ~/Sources
$ svn export http://svn.macports.org/repository/macports/tags/release_2_0_3
$ cd release_2_0_3/base/
$ ./configure
$ make -j8
$ 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 +cp932fix

[編集] X11 環境の整備

[編集] kinput2

日本語インプットメソッドとして kinput2 を導入する。

$ sudo port install kinput2

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

$ sudo port load canna

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

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

MacPorts の kinput2 では、標準の Shift+Space や Control+o 以外に Command+Space も変換キーとして使えるようにしてあるのだが、XQuartz の或るバージョン以降からは正常動作しなくなってしまった。残念。(XQuartz 側の問題)

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

[編集] 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 LANG="ja_JP.UTF-8"
...
declare -x XMODIFIERS="@im=kinput2"
...

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

参考:

[編集] .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/X11   && PATH=/usr/X11/bin:$PATH &&
                      MANPATH=/usr/X11/share/man:$MANPATH
test -d /usr/local && PATH=/usr/local/bin:/usr/local/sbin:$PATH &&
                      MANPATH=/usr/local/share/man:$MANPATH
test -d /opt/local && 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 を使った文字の削除や page up/down によるヒストリの操作が正常に機能するように設定。

[~/.inputrc]
"\e[3~": delete-char
"\e[5~": beginning-of-history
"\e[6~": end-of-history

BSD ライセンスの互換ライブラリ libedit で同様の設定をおこなうには以下のようにする。

[~/.editrc]
bind -s '\e[3~' '^D'
bind    '\e[5~' ed-prev-history
bind    '\e[6~' ed-next-history

libedit にはヒストリの先頭・末尾に移動するコマンドが用意されていないので、ここではその代替として ed-prev-history, ed-next-history にそれぞれ割り当てている。

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

[編集] .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)

;; Zenitani's Carbon Emacs Package uses utf-8m instead of utf-8 as file-name-coding-system by default
(when (and (>= emacs-major-version 22)
           (eq file-name-coding-system nil))
  (set-file-name-coding-system 'utf-8))

(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.d/*.sh

X11.app から X11 を立ち上げた際には、ディレクトリ ~/.xinitrc.d 内に配置した *.sh ファイルが読み込まれ、実行される。

このディレクトリ内に自分の環境にあったスクリプトを用意するとよい。たとえば日本語入力をおこなうため、X11 の起動時に kinput2 を常駐させるには、以下のようにする。

$ mkdir ~/.xinitrc.d
[~/.xinitrc.d/10-kinput2.sh]
test -x /opt/local/bin/kinput2 && /opt/local/bin/kinput2 &
$ chmod 755 ~/.xinitrc.d/10-kinput2.sh

なお、これらのスクリプトは /usr/X11/lib/X11/xinit/xinitrc → /usr/X11/lib/X11/xinit/xinitrc.d/98-user.sh → ~/.xinitrc.d/*.sh の順で読み込まれる仕組みになっている。

個人用ツール
名前空間
変種
操作
案内
ツールボックス