鈴木うどんの横須賀おもしろ生活

撮った写真や思ったことや技術ネタなど。出来るだけ大きなディスプレイで見ると良いと思う。ここでの発言は個人の見解であり、所属する組織の公式見解ではありません。

OSX で /opt だけを Case-Sensitive にして MacPorts 環境をつくる

結論

  1. OSインストール時に適宜パーティションを切る
  2. OSインストール後にfstab(5)を設定してdiskutil(8)でマウントする

経緯

  1. OSX は Unix なのに標準のファイルシステムCase-Sensitive じゃなくて *nix として気持ち悪い
  2. 一応 HFS+ のオプションに Case-Sensitive があるのでクリーンインストール時にフォーマットしなおす
  3. /Case-Sensitive だと Adobe のソフトが動かない\(^o^)/

課題

せめて /optCase-sensitive にしたい

そうしてどうなった

  1. Macの電源を入れて option キーを押しっぱなしにして復元モードで立ち上げる
  2. 左上の林檎マークをクリックしてディスクユーティリティを立ち上げる
  3. おもむろにoptというLABELで大文字小文字を区別するパーティションを60GBくらい切る
  4. クリーンインストールする

/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をインストールすれば良い。