OSX で /opt だけを Case-Sensitive にして MacPorts 環境をつくる
結論
- OSインストール時に適宜パーティションを切る
- OSインストール後に
fstab(5)を設定してdiskutil(8)でマウントする
経緯
- OSX は Unix なのに標準のファイルシステムが Case-Sensitive じゃなくて *nix として気持ち悪い
- 一応 HFS+ のオプションに Case-Sensitive があるのでクリーンインストール時にフォーマットしなおす
/が Case-Sensitive だと Adobe のソフトが動かない\(^o^)/
課題
せめて /opt は Case-sensitive にしたい
そうしてどうなった
- Macの電源を入れて option キーを押しっぱなしにして復元モードで立ち上げる
- 左上の林檎マークをクリックしてディスクユーティリティを立ち上げる
- おもむろに
optというLABELで大文字小文字を区別するパーティションを60GBくらい切る - クリーンインストールする
/opt に起動時に自動マウントするようにする
OSX は外部fsを標準で起動時に/Volumes/$LABEL_NAMEでマウントするようになっていて便利だが、今回ばかりは/optにマウントしたい(ln -s /Volumes/opt /optしても良いが非常にダサい)。
OSX は *nix なので/etc/fstabを編集することでマウントポイントの指定が可能。
まずはデバイスのUUIDを調べたいので、optのデバイス名を調べる。
% df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk0s2 875Gi 298Gi 577Gi 35% 78060758 151283371 34% / /dev/disk0s4 56Gi 0Bi 0Bi 100% 0 0 /Volumes/opt devfs 187Ki 187Ki 0Bi 100% 650 0 100% /dev map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home
optが/dev/disk0s4/だと分かったのでdiskutil info disk0s4とするとUUIDなどその他情報が見られる。ここでUUDIDをメモる。
% sudo sh -c "echo UUID=<YOUR_DEVICE_UUID> /opt hfs rw 1 0 >> /etc/fstab"
してから
% sudo mkdir /opt
% diskutil umount /dev/disk0s4
% diskutil mount /dev/disk0s4
すると /optに常にマウントされるようになる。mount(8)でも良いような気がするが、OSXなのでdiskutil(8)を使わないとうまくいかない。本当に*nixなのかと少し不安になる。
あとは普通にMacPortsをインストールすれば良い。