Mac OS X Mavericksが出たので環境構築まとめ

投稿者: | 2013年11月2日

Mac OS X Mavericksが大分前に出ましたが、その際OSクリーンインストールをしたので
その環境構築の記録です。

Terminalの設定

とりあえずデフォの端末を少し設定します。

  • 「環境設定 -> 設定 -> Pro」を選択して、デフォルトにしておきます
  • 文字のアンチエイリアスも有効にしておきます

    Terminal

    MacPortsのインストール

    次にMacPortsのインストールを実行します。

    XCodeのインストール

    まずはXCodeのインストールが必要です。
    AppStoreからインストールがお手軽です。
    次に端末を開いて以下のコマンドを実行します。これでMacPortsが必要とするコマンドラインのgccなどが利用できるようになります。

    #!/bin/sh
    xcode-select --install
    
    

    MacPortsのインストール

    http://www.macports.org/install.phpからMavericks用のdmgをダウンロードしてインストーラを実行すればMacPortsが使えるようになります。

    各種パッケージのインストール

    やっとMacPortsが使えるようになったので、以下のコマンドで各種プログラムを
    インストールしていきます。

    sudo port install <パッケージ名>
    

    自分はとりあえず以下のプログラムは最低限インストールしています。

  • zsh
  • lv
  • git-core +svn
  • coreutils
  • emacs-app
  • emacs
  • htop

    くらいをインストールしておきます。

    zshの設定

    まず、デフォルトのシェルをzshに変更します。

    #!/bin/sh
    sudo sh -c 'echo /opt/local/bin/zsh >> /etc/shells'
    sudo chpass -s /opt/local/bin/zsh ${USER}
    

    /opt/local/bin/zshがデフォルトになるように指定しておきます。

    .zshrcの設定は以下のような感じにしておきます。

    bindkey -e
    export HOSTNAME=`hostname`
    
    #setting language
    export LANG=ja_JP.UTF-8
    
    # setting path
    export PATH=$PATH:~/bin:
    export DISPLAY=":0.0"
    export PATH=$PATH:"/usr/bin:/usr/sbin:/bin:/sbin"
    export MANPATH="/usr/share/man"
    
    test -d /usr/local && export PATH=/usr/local/bin:/usr/local/sbin:$PATH &&
                          export MANPATH=/usr/local/share/man:$MANPATH
    test -d /usr/X11   && export PATH=$PATH:/usr/X11/bin &&
                          export MANPATH=$MANPATH:/usr/X11/man
    test -d ~/bin && export PATH=~/bin:$PATH
    
    # for MacPorts
    test -d /opt       && export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH &&
                          export MANPATH=/opt/local/share/man:$MANPATH
    
    # useful aliases
    alias ls="ls --color=auto -vGF"
    alias ll="ls --color=auto -vFGl"
    alias la="ls --color=auto -vFGla"
    
    export EDITOR=vi
    export PAGER=lv
    export LV="-E'emacs +%d'"
    export BLOCKSIZE=k
    
    # ヒストリの設定
    HISTFILE=~/.histfile
    HISTSIZE=10000
    SAVEHIST=10000
    
    # 履歴ファイルに時刻を記録
    setopt extended_history
    
    # 補完するかの質問は画面を超える時にのみに行う。
    LISTMAX=0
    
    # 補完の利用設定
    autoload -Uz compinit; compinit
    
    # sudo でも補完の対象
    zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
    
    # cdのタイミングで自動的にpushd
    setopt auto_pushd 
    
    # 複数の zsh を同時に使う時など history ファイルに上書きせず追加
    setopt append_history
    
    # 補完候補が複数ある時に、一覧表示
    setopt auto_list
    
    # 補完キー(Tab, Ctrl+I) を連打するだけで順に補完候補を自動で補完
    setopt auto_menu
    
    # カッコの対応などを自動的に補完
    setopt auto_param_keys
    
    # ディレクトリ名の補完で末尾の / を自動的に付加し、次の補完に備える
    setopt auto_param_slash
    
    # ビープ音を鳴らさないようにする
    setopt NO_beep
    
    # 直前と同じコマンドラインはヒストリに追加しない
    setopt hist_ignore_dups
    
    # 重複したヒストリは追加しない
    setopt hist_ignore_all_dups
    
    # ヒストリを呼び出してから実行する間に一旦編集できる状態になる
    setopt hist_verify
    
    # auto_list の補完候補一覧で、ls -F のようにファイルの種別をマーク表示しない
    setopt NO_list_types
    
    # コマンドラインの引数で --prefix=/usr などの = 以降でも補完できる
    setopt magic_equal_subst
    
    # ファイル名の展開でディレクトリにマッチした場合末尾に / を付加する
    setopt mark_dirs
    
    # 8 ビット目を通すようになり、日本語のファイル名を表示可能
    setopt print_eight_bit
    
    # シェルのプロセスごとに履歴を共有
    setopt share_history
    
    # Ctrl+wで、直前の/までを削除する。
    WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
    
    # ファイルリスト補完でもlsと同様に色をつける。
    zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
    
    # cd をしたときにlsを実行する
    function chpwd() { ls }
    
    # ディレクトリ名だけで、ディレクトリの移動をする。
    setopt auto_cd
    
    # C-s, C-qを無効にする。
    setopt NO_flow_control
    

    environment.plistについて

    Mountain Lion以降のOS Xでは~/.MacOSX/environment.plistの設定は使えないようになってるので
    グローバルに環境変数を設定するには/etc/launchd.confに書くようになったようです。
    今は特に設定することはないですが、GUIのアプリで文字化けとか発生するプログラムがあったら設定するときはここに記述すれば良いようですね。

    Ruby,Python,Nodeとかについて

    長くなったのでまた別の記事にまとめます。

  • コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です