macOSの環境構築まとめ

最終更新:2017-07-26
自分用です.
だいたいコマンドの入れ方で,他の人の記事やらをここから見れるように.
一般的そうなところから,研究で必要な専門っぽいところまで,書くことになるはず.
切り分ける気はあまりなく,長くなりそうなので,ブラウザの検索機能を有効活用してください.
Qiitaの記事大量削除事件が怖すぎたので,コマンド等の必要な部分は引用します.
わたし自身が上から実行していっているので,一部をスキップした場合にどうなるかは不明です.

目次 そのうちつくる

Windows用キーボードで,無変換キー(スペース左のキー)をコマンドキーにする

MBAからmac miniに移行しようとしているし,Windowsでも無変換キーは音ゲーでしか使わない人並みの気持ち.

[Mac]MacでWindows向けキーボードを接続した際の設定 - Qiita

Seil
https://pqrs.org/osx/karabiner/seil.html.ja
Windows向けキーボードについている変換・無変換をcommandキーに変更できるソフト

Seilを使えば済むと思ったら,

https://pqrs.org/osx/karabiner/seil.html.ja

Seilの機能はKarabiner-Elementsに統合されました。Karabiner-Elementsをお使いください。

とのことなので,もうひとつのKarabinerをDLします.
Karabiner-ElementsとKarabiner-EventViewerが入るので,Elementsを起動します.
Simple Modificationsタブで,Add itemから「PCキーボードの無変換キー」を選びます(下のほうのJapaneseの中).

F7, F10とかで変換したい

Windows用外付けキーボードのため,F1〜F12があるからfnいらないでしょ?という感じでfnキーがありません.
しかも,Windows用ということが災いして,キーボードの設定にも「ファンクションキーとして使用」の項目が消えています.
何かのキーにfnを割り当てるしかない,ということで,「Windows用キーボードで〜コマンドキーにする」と同様に,位置的にCtrlに犠牲になってもらいました.
From keyにleft-ctrl,To keyにfnを選んで完成.
設定しましたが,Ctrlが右だけになってそれはそれで辛いので,設定を消して変換は頑張ることにしました.
やっぱりCaps Lockをfnにしました.

.bash_profile

bashが自動で起動しないので,.bash_profileをホームに作ります.
.bash_profileに以下を書きます.

http://magonote.skr.jp/bashrc/

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

さらに,.bashrcも自動で読み込むために,以下も追記します.

本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita

# .bash_profile の最後に
test -r ~/.bashrc && . ~/.bashrc

2017/07/02現在,この一文は.bash_profileの最後ではなく,間に書いていますが,有効みたいです.

Java (JDK)

MacにJava(JDK)をインストール - Qiita

コンソールからjava -versionで確認。
「インストールしますか?」と聞かれたら、まだインストールしない。

とありますが,

java -version

をして,「詳しい情報……」をクリックして,最新版のwebページを開きます.
欲しいものは単なるJDKなので,左の「Java Platform (JDK)」をDLします.
次のページでは,デモやサンプルが不要なので,上のほう.

Homebrew

Ubuntuのapt-getのmacOS版(語弊がありそう).
MacPortsというものもあるらしいけれど,今のところ,Homebrewだけで大丈夫.
Homebrewを入れておけば,何か必要になった場合に,

brew search hoge

をすれば,Homebrewから入れられるかどうかを確認できて便利.
入れ方は,

macOS用パッケージマネージャー — Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Xcodeを入れていなければ,

sudo xcodebuild -license

と最後に出てきて終了するので,sudo xcodebuild -license してから /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" します.
わたしの場合,ライセンスについてだけ出てきたので,よく分からない.Xcodeが入っていなければ,sudo xcode-select --install も必要っぽい? 雑な結論:ターミナルが言ったことをしましょう.
定期的に(どれくらい?),

brew update -all

すると嬉しい.
メモしてあったので,一応メモ.いつ必要になったかは不明:
Homebrewでインストール済みパッケージが更新後に「already installed, it's just not linked」と言われた時の対応 - Steel Dragon 14106

$ brew link --overwrite mercurial

mercurial は各パッケージ(brew install hogehoge?)に置換すること.

autotools-dev, libboost-all-dev (C++)

UbuntuDebianなどで $ sudo apt-get install autotools-dev libboost-all-dev としてインストールする,autotools-devとlibboost-all-devは,macOSではautomakeと(単なる)Boostらしい?(というのは元記事に書いてあるか不明ですが,そうメモってあった.)

How to install and use autotools on Mac OS X | Paolo Fabio Zaino's Blog

$ brew install automake

Boost (C++)

上記で少し言及した通り,libboost-all-devはBoostとのことなので,

【C++】Mac に Boost を インストールした – Madoka Chomado

ちょっと怖いので, 無難に公式サイトからダウンロードボタン押して入れることにしました.
http://www.boost.org/

元記事に倣って,最新版の.zipをDownloadsディレクトリにDLします.

% cd ~/Downloads/boost_1_58_0/
% ./bootstrap.sh

厳密には,boost_ version No. に移動して,シェルスクリプトを実行.
ターミナルでも言われるように,./b2 を引き続き実行.
ただし,この元記事では --prefix=hoge-prefix=hoge としているので,正しくは,

Macにboostをインストールする(ソースからビルド) | ftvlog

sudo ./b2 install -j5 --prefix=/opt/local
-jNのNはご自身のPCのCPUのコア数+1を指定するのが良いようです。

とのことなので,コア数を調べます.

MacのCPUコア数を表示する | MBA-HACK

system_profiler SPHardwareDataType | grep Cores

でTotal Number of Coresを確認,必要であれば書き換えて,上の通りに ./b2 を実行.
--prefix=はこのままでOK,/optと/opt/localは作る必要がない(作ると失敗する?).
テストのソースコードを書いて,実行してみます.その際のコマンドは,

$ g++ test.cpp -I/opt/local

ですが,-l(小文字のL)ではなく,-I(大文字のi)です(ここで時間を溶かしたのでメモ).

Python3

時代はPython3.ということで,Python 3 を入れます.
http://qiita.com/spyc/items/73d1295f8b3dde3b49ca

brew install pyenv

続けて,.bashrcに以下を追記します.追記した後にターミナルを再起動してください.

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

いよいよPython3を入れます.
まず,https://www.python.jp/about/でPython3のバージョンを確認します.
さらに,念のため,

pyenv install --list

で確認して,

pyenv install [version]

で入れます.
pyenvでバージョンを切り替えます.

pyenv global [version]
pyenv rehash

pip

Python3を入れたら,次はpip.当然の流れ.
http://qiita.com/spyc/items/73d1295f8b3dde3b49ca

DyNet

研究用.
更新が早いし,メモしてもあまり意味がないかも.

DyNet documentation — DyNet 2.0 documentation

左のメニューから「Installing DyNet for C++」をクリック.
macOSの部分を進める.

xcode-select --install
brew install cmake hg # Using homebrew.
sudo port install cmake mercurial # Using macports.

Eigenも必要とのことなので,Eigenを入れます.Eigenのインストールは,DyNetの下に書きます.
戻って,DyNetをgit cloneします.

git clone https://github.com/clab/dynet.git

続けて,

cd dynet
mkdir build
cd build
cmake .. -DEIGEN3_INCLUDE_DIR=/path/to/eigen

/path/to/hoge ,初見では気付かなかったのですが,ホームディレクトリにEigenを入れたなら,/Users/hoge/eigen/ になります(hogeはホームディレクトリ名).
引き続き,makeをします.
コア数を Boost (C++) と同様に確認して,

make -j 2

DyNetを使用するソースコードコンパイルする際には,

-I/path/to/dynet
-L/path/to/dynet/build/dynet -ldynet

を付ける(前者は大文字のi).

Eigen

研究用.
DyNetのサイトに書いてある通りに入れます.

Installing DyNet for C++ — DyNet 2.0 documentation

hg clone https://bitbucket.org/eigen/eigen/ -r 346ecdb

DyNet用ではなく,最新版をインストールしたい場合は,

brew install --HEAD eigen

lamtram

研究用.
今までのはだいたいこれのため.
あとはREADMEを進めるだけ.

GitHub - neubig/lamtram: lamtram: A toolkit for neural language and translation modeling

Note that in order to run programs like lamtram that are linked to DyNet, you will have to set the LD_LIBRARY_PATH variable to include the DyNet library. For example, if $DYNET_DIR is the top directory for DyNet, then you can run the following command, or add it to you .bashrc or .zshrc file: $ export LD_LIBRARY_PATH="$DYNET_DIR/build/dynet:$LD_LIBRARY_PATH"

とあるので,.bashrcに以下を追記します.

# for lamtram
DYNET_DIR=/Users/hoge/dynet
export LD_LIBRARY_PATH="$DYNET_DIR/build/dynet:$LD_LIBRARY_PATH"

lamtramのディレクトリに戻って,

$ autoreconf -i
$ ./configure --with-dynet=/path/to/dynet --with-eigen=/path/to/eigen
$ make

apt-get

個人的にインストール非推奨です.
私事ですが,わたしはUbuntu上がりなので,apt-getがないと辛いと思ってapt-getを入れたらメンテナンスがされていないのか何なのか,installしたもののバージョンがアレで険しかったので,とりあえずapt-getを入れないという教訓を得ました.

mac os x 10.9 にfinkをinstallしてapt-get使えるようにする - Qiita

macに「fink」をインストールする事でapt-getを利用する事が出来るようだ。

Fink - Source Release Download
からOS Xのバージョンに気を付けて fink- version No. .tar.gz をDL,展開.

cd ~/Downloads/fink-0.39.2
./bootstrap

で,apt-getのインストール完了.