読者です 読者をやめる 読者になる 読者になる

osx 10.10 来たら、まずやること[妄想]

zsh tech shellscript vim macos settings id3

つか、タイトル、大きく出過ぎか?

wwdc 2014、"まだ先の事" 思っていたら、あっと言う間。目の前です。

os x も、次バージョンとして 10.10 がアナウンスされるだろうとのことで、それキッカケに、ここら辺りで一旦整理しておこうか、と言うのが当エントリーの動機。

Syrah grapes at Il Gioiello Winery, Big Crush
Syrah grapes at Il Gioiello Winery, Big Crush / D&S McSpadden

とは言え、wwdc では、あくまでお披露目のみで、実際市場に出るのは 08〜10 月辺りだろうとのこと。
それまで何の役にも立たない話なのですが(呆、
os なりマシンを新調したら、的な話として。*1

さて、アウトライン。

01. インストーラのダウンロード: OSX,Command Line Tools for Xcode

» すべて GUI 作業。

» Downloads for Apple Developers ... Command Line Tools for Xcode, Xcode

02. インストールメディア作成

% #installer="インストーラ.app (...未定)"
% #installer_media="インストーラにするメディア (...未定)"
% sudo /Applications/${installer}/Contents/Resources/createinstallmedia --applicationpath /Applications/${installer} --volume ${installer_media}

03. インストール (1): OS、 Command Line Tools for Xcode

» すべて GUI 作業。

» OS インストール時、[キーボード入力環境を選択] のステップでキーボード配列に [ことえり] を選択すること。

04.インストール (2) & 設定: "とりあえず" 作業環境の構築編

% mkdir ~/macset
% cd macset
% curl -#L https://github.com/woowee/macset/tarball/master | tar -xzv --strip-components 1 -C ./
% ./bootstrap.sh

05. インストール (3) & 設定: コンプリート編

% cd ~/macset
% ./brew.sh
% ./osx.sh
これが終わると、"いつもの" 環境になります。

と言うのが今のところのワークフローになります。

01. インストーラのダウンロード

以下インストーラをダウンロードします。

  1. osx インストーラ
  2. command line tools for xcode
  3. xcode

3 の xcode は余裕がある時、このタイミングではなく、後ででもよろし。

2 と 3 はのダウンロードは、Developper サイトの Download ページから獲るようにしています。
xcomde-select コマンドや mac app store からではなく。

なぜ。
それは dmg ファイルを手元に置いておきたいから。
回数は限られる作業とはいえ、必要となった度に都度ダウンロードし、「さてっ、やるぞ!」って感じの時に、"まずはじめに" 長い時間を遣り過ごさなければならない。これは、自分にとって、余りの仕打ちだったりするので。*2

そして更にこの間、
rsync で念入りのバックアップを同時に走らせておいてます。

% rsync -av ${HOME}/ /Volumes/${volumename}/${backupdir}/

02. インストールメディアの作成

次 ver os インストーラでも createinstallmedia みたいなツールがあるか、心配なところ。。。

03. インストール (1)

01 のステップでダウンロードしたアイテムのインストール。

CLT 辺り、curl やら hdiutil のコマンドを使うワークフローも考えてはみたのですが、結局、途中、色んな所でダイアログに対応しなくちゃならないので手でやることに。
上手い方法とかないものでしょうかね。

04. インストール (2) & 設定

GitHub との通信環境が整っているのならば、curl でなく、git clone でも良いと思います。

このステップでは "とりあえず" の作業環境を用意。
全体の流れの中で、ここがヤマ場かと思います。

ここでは、主に次ステップ 05 程度の作業を行うに必要な、最低限の環境を用意します。*3*4

  • システム (アカウント) 設定
  • GitHub
  • Dotfiles
  • OS 操作周りの各種設定
    設定は、基本的な操作/作業でストレス感じない程度のアイテム、例えば。;
    • ナチュラルスクロールを止める。
    • CapsLock キーを Control キーにする。
    • ことえりの入力モードを "ひらがな" と "英字" のみにする*5
    • 空白スペースや、記号、そして数字は常時半角入力にする。
  • アプリケーションのインストール
    ここでインストールするアプリケーションは、3 つ。;

やってることのアウトラインはこんな感じかと。

で、この辺りまで来ますと、ほとんど GUI 使わなくなります。

設定は defaultsplistbuddy コマンド、インストールは homebrew そして homebrew-cask を使い、これらをシェルスクリプトに並べて...、と言った手法を採っています。

05. インストール (3) & 設定: コンプリート編

この作業を終えることで、マシンは "いつもの" 作業環境となります。

インストールしているアイテムは例えば、
ツールは、zsh、tmux、rsyncricty 等。
アプリは、iterm2、handbrake、my-tracks 等と言った感じです。

そして、インストール後、アイテムにより適宜設定を仕込んでおいてます。

スクリプトの中でやっていることは、以下のような作業です。

シェルの変更

# add zsh
echo ${path_zsh} | sudo tee -a /etc/shells
# set zsh
chsh -s ${path_zsh}

/etc/shellszsh のパスを追加し、 osx デフォルトの bash から zshchsh

フォント ricty の設定

# ricty
cp -f $(brew --prefix)/share/fonts/Ricty*.ttf ~/Library/Fonts/ && fc-cache -vf

この手続きは、以前にも ここ で boxen 使っての ricty フォントインストールについて触れた時にも参考にさえて頂いてます、こちらの内容に沿ったものです。
ご参照をば。;

» brew install ricty | 實松アウトプット

ちなみに、もう boxen 使わなくなってます。

今思えば、ricty のインストール、boxen を使う事に固執し、躍起になっていたあの時のそんな自分が嫌で嫌でしょうがありません(笑

mid3v2

# python
brew link --overwrite python
pip install --upgrade setuptools && pip install --upgrade pip || true

# mutagen (to use mid3v2)
    : *snip*
    if ! pip install mutagen; then
        [ ! -e $HOME/tmp ] || mkdir -p $HOME/tmp
        mutagen_url="https://pypi.python.org/packages/source/m/mutagen/mutagen-1.22.tar.gz"
        mutagen_name=${mutagen_url##*/}
        cd $HOME/tmp
        curl --location --remote-name "${mutagen_url}"
        tar zxvf "${mutagen_name}"
        cd $(basename $mutagen_name .tar.gz)
        python setup.py build
        sudo python setup.py install
    fi
fi

mid3v2 を入れます。

mid3v2 の導入の背景については、過去にも度々触れておりますが、
mp3 ファイルの id3tag で日本語を使うのにこれが便利なので導入してます。

で、つい先日までは pip install mutagen だけだったのですが、
先週走らせたら、ここでコケる様子。

以前、このエントリーを書いていた時点では何の問題もなく、
故、何の手を加えていない箇所だったので、何故? と焦る。*6*7

...と言いますか正直、面倒だった、と言うのあってw、
ここでは mid3v2 が動いてさえくれれば良い、と開き直り、何の辱めもなく(笑、上述が如く変更。

実にエレガントの欠片もない力技www

少々の気持ち悪さはありますが、
まぁ、目的通りの動作はしてくれているので、良しとしてます。(イイカゲンwww

これでいいのだ。

06. 以上好きなツールを追加

自分の場合は、
最後に、この radiko 用のツールを入れたところで一周、となります。

誰の役に立つと言うものでないのですが、メモっておきたいと思います。;

% git clone https://github.com/woowee/radiko.git
% cd $HOME/radiko
% ./setup.sh
% git clone https://gist.github.com/adc97ba9d20326802719.git tbl
% mv -f tbl/radiko.table radikorec
% ./setschedule.sh

この radikoツールは、これまで以上に個人的なもの。
ツールのために必要な環境のセットアップから、launchctl によるスケジュール設定の設定まで行っています。

ということで、数ヶ月後。
果たして本当に上手くいくことやら(笑

はい、妄想、おしまい。

*1:随分前にも、似たような話題、やりましたね。(遠目
あの頃は、体育会系ヨロシク、GUI からいちいちちまちまメンドい事やってましたね。(涙目
無知って怖いですね。。。恥ずかしーでーすねー(白目

*2:ちなみに、これら必要なデータは、次のステップで作るインストールメディアの中に一緒に入れておくようにしています。

*3:この環境と言うのは勿論、"個人的な" ものでして、そのどれもが、自分に都合の良い、という基準のものばかりです。

*4:ここで、"必要最低限の.." と "小分け" にしているのは、
次の設定/インストール作業に、出来るだけ早く着手できりょうにしたいと考えたからです。
この段階に一発で全ての環境構築をしてしまうのがスマートなのでしょうが、自分のネットワーク環境では、アプリケーションやツールのダウンロードやらでかなりの時間を要してしまい、この待機時間が余りに勿体無いと感じたのです。

*5:"かたかな" 要らない。

*6:ちなみに、エラーに当たった時、ざっと調べた中で、
既に似たようなケースがレポートされている様子
で、見ると今年は 02 月の報告。しかも未解決。
ん? では、数週間前の滞りなく進んだアレは何だったん? とはなりますが。
何かこの辺りで、どうやら Homebrew の外の話らしく、python とか pip 側の問題らしい。い?

*7:他、この辺りがヒントになるのかなぁ、と read it later で ;
    » dev - Python on OSX Mavericks
    » osx - Why is Python easy_install not working on my Mac - Stack Overflow
    » いきなりeasy_installがDistributionNotFoundとか言い出した - 今日もスミマセン。
    » pip install --upgrade setuptools で失敗 - aremokoremo
とりわけ、『最終的には pipをソースからビルドしてインストールしたらうまく行った』(via. pip install --upgrade setuptools で失敗 - aremokoremo) って言うレポートは、時期的にも近いし、homebrew 使っての事例だから、この辺りが答えになるのかしら。
と色々、むつかしい話がいっぱいですが、
この広い世の中、何時か何方かがよしなにお取り計らい下さいますこと、と全力での他力本願。