僕のためのMacの初期設定

Macの初期設定は一年前に一度やったきりで、段取りを忘れてしまい、 この一週間は設定とリカバリの繰り返しで終わってしまった。

僕の今後のために、MacMini に施した初期設定を控えておく。

1. アカウント作成

普段使うアカウントでは仕事用のデータも扱うことから、uidとgidを適切に設定する必要がある。しかしリカバリ直後のOSインストール時には、ユーザー名は任意に設定できるものの、idの設定はすぐにはできない。なので始めは初期環境の構築用に一時的なアカウントを作成し、その後に普段使い用のアカウントを作成するといい。

コマンドラインによる新規アカウント作成

ここでは例として、以下のようなユーザーを作成する。ここでは省略するけれど、UIDやGIDを設定する場合には、その値が既に使われていないことを確認しよう。

  • ユーザー名(UID): foo (1234)
  • ユーザーの本名 : FooFooo
  • グループ名(GID) : fooGroup (4321)
  • ホームディレクトリ : /Users/work/foo
  • ログインシェル : /bin/bash
# dscl . -create /Groups/fooGroup gid 4321
# dscl . -create /Users/foo
# dscl . -create /Users/foo RealName FooFooo
# dscl . -create /Users/foo UniqueID 1234
# dscl . -create /Users/foo PrimaryGroupID 4321
# dscl . -create /Users/foo NFSHomeDirectory /Users/work/foo
# dscl . -create /Users/foo UserShell /bin/bash
# passwd foo
    <パスワードの入力>

これで、次回ログイン時には上記ユーザーを選択してログインできるようになっている。

2. Ramdisk作成

ログイン時にramdiskを自動で作成

何かと便利なramdiskSSDが主流となった現代では、必要が少なくなりつつあるけれど、一時ファイルの置き場にはもってこいなので、作り方を書き留めておく。

例えば

/Users/foo/bin/startup.sh

を作成し、以下のコードを書き込む。

#!/bin/sh

# Ramディスクつくる。ram://の後の数字は容量(ブロック数。1ブロック=512バイト)
# 2GB -> 2GB * 1024 * 1024 * 1024 / 512 = 4194304 block
    RAMDISK=$(hdid -nomount ram://4194304)
    diskutil eraseDisk HFS+ ramdisk $RAMDISK
# 一時ファイルやキャッシュ用のディレクトリ作成
    mkdir -p /Volumes/ramdisk/tmp
    mkdir -p /Volumes/ramdisk/Caches

# ファイルの最終アクセス履歴を記録しない
    mount -u -o noatime /

# キャッシュディレクトリの作成
    rm -r ~/Library/Caches
    ln -s /Volumes/ramdisk/Caches ~/Library/Caches

これをシステム起動時に自動で実行させる。

$ chmod +x /Users/foo/bin/startup.sh

$ sudo defaults write com.apple.loginwindow LoginHook /Users/foo/bin/startup.sh

このあたりはgnarlさんesfさんの解説を参考にさせていただいた。

これによって、ログイン時には自動的に、所定のディレクトリ構造をもつ容量2GBのramdiskを作成することができる。

追記 2013/11/03

問題が見つかった。

上記スクリプトで打ち消し線を引いた箇所でキャッシュディレクトリのシンボリック・リンクをramdiskに作成していたのでが、どうもキャッシュディレクトリとしての機能を正常に果たしていない。

$ chmod +a "group:everyone deny delate" /Volumes/ramdisk/Caches

を使ってパーミッションを適切にふりなおしたものの、ログには

sandbox: com.apple.intern(***) deny file-write-create /Volumes/ramdisk/Caches/com.apple.mcc.accounts

と吐き出されており、さらにオリジナルのキャッシュディレクトリに存在していたいくつかのファイルが作成されない(例えば com.apple.mcc.accounts が、シンボリックリンク先のCachesに作成されない)。

この問題については、解決法を模索中です。

ramdisk を適切に運用するために

dankogaiさんが述べているとおり、Mac ではスリープに入る前に RAM の内容をディスクに書き出すよう設定されている。この設定を維持していると、ramdiskに保存したデータがスリープ時にHDDに待避されることから、スリープへの移行と復帰に時間をとられる場合がある。そこでこの挙動を回避するには、以下のコマンドを入力するとよい。

$ sudo pmset hibernatemode 0

$ sudo rm /var/vm/sleepimage

これでスリープ時に停電等で電源が落ちない限りは、ramdiskの中身は削除されない。詳しくはgnarlさんの記事を参照されたし。

3. アプリケーションのインストール

僕が普段からお世話になっているアプリ。 後日改めて、いくつかのアプリについては特徴を紹介しようと思う。

ドキュメント関係

コマンドラインツール

追記 2013.11.10

Rについては、上のリンクからpkgをダウントードしてインストールするのが最も簡単。古いバージョンはここから手に入るので、必要に応じて。

ただし、pkgではGUIベースの環境とCGIベースの環境の両方がインストールされる。

『ターミナルでしか使わないよ』『スクリプト書いて $Rscript でしか計算しないよ』

という方は、下記にある mac port を使ったインストールを行うと気持ちがよいかもしれない。

また、Rの主要なパッケージ入手についてこっちのエントリーで紹介しています。

  

追記 2013.06.24 以降はまだMarvericksで検証していないので、実行時にはご注意を。

R については、バージョンの使い分けやパッケージ管理を意識する場合、pkgではなくバイナリからインストールする方がいいかもしれない。

ただその場合、X11やfortran なんかの導入も適切にやらないと、makeの途中で怒られてしまう。。。

一方、mac port でインストールする場合にはJavaのランタイム以外は必要なものも一緒にインストールしてくれるみたい。そこでGitHubさんの記事を参考に、X11の後継にあたるxquart (2.7.4)をここから持ってきてport で R をインストールする。今なら最新のバージョンをこれで入れることができる。

$ port info R

R @3.0.1, Revision 1 (math, science)

$ sudo port install R

その後に、バイナリから自分の好きにインストールする。まずは、バイナリから認識できるfortran を。Java はココからJRE7 を。

$ sudo port install g95

$ wget http://cran.r-project.org/src/base/R-3/R-3.0.1.tar.gz

$ tar zcf R-3.0.1.tar.gz

$ cd R-3.0.1

$ ./configure --prefix=/hogehoge/R-3.0.1

その他ツール


本ページには、Amazon.co.jpアソシエイト・プログラムによるリンクが含まれております。