自宅で2010モデルMacBookAir(OS X Mountain Lion)をずっと使っていたのですが、
最近、動作が激重になってしまったので、思い切ってEl capitanをクリーンインストールしました。
ついでなので、Django開発ができるように環境構築した手順をメモしておきます。
もともと下積み時代から使っていたPCという事もあり、インストールされているパッケージもmacportsやらhomebrewやらその他諸々いろんな方法で色んな場所にインストールされていて、まったく整理されていなかったので、今後はPCの容量圧迫を避けるためにmacportsはやめて、homebrewに統一して構築しました。
bashrcをターミナル起動時に読み込ませる
まずはここから、bash_profileを下記のように編集して、ターミナル起動時にbashrcを読み込ませます。
$ vim .bash_profile
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
Homebrewインストール
まず、先にXcodeをインストールします。
その後、ターミナルで下記コマンドを叩き、CommandLineToolsをインストールします。
$ xcode-select --install
次に公式サイトに乗っているコマンドでHomebrewをインストールします。
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
今後。Homebrewでインストールしたパッケージは /usr/local/Celler
にインストールされます。
そして /usr/local/bin
にシンボリックリンクが作られる仕組みなので、コマンド用のPATH環境変数の中で/usr/local/bin
が優先されているか確認します。
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
左から優先順になるので、この場合は/usr/local/bin
が最優先になっている事が確認できました。
これで、Homebrewの準備は完了です。
MySQLの準備
次に、web開発には欠かせないDBの準備としてmysqlをインストールします。
mysqlをインストール
さっそく、mysqlをインストール
$ brew install mysql
インストールが完了したら、念のため動作確認します。
まずはmysqlを起動させます。
$ mysql.server start
Starting MySQL
.. SUCCESS!
問題なく起動したので、接続してみます。
$ mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.12 Homebrew
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
Bye
接続確認も問題ないので、mysqlを停止します。
$ mysql.server stop
Shutting down MySQL
. SUCCESS!
自動起動させる
毎回コマンドで起動させるのは面倒なので、PC起動時に自動でmysqlが起動するようにします。
Library/LaunchAgents にシンボリックリンクを作成し、ログインしたユーザーの権限で起動時にプログラムを実行するようにします。
$ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Library/LaunchAgents についてはこちらが参考になりました
LaunchAgents ディレクトリにあるのはエージェントと呼ばれ、ログインしているユーザごとに起動されるプロセスである。
追加したエージェントの読み込み
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
では、登録されたか確認してみます。
$ launchctl list
~~~~snip~~~
17619 0 homebrew.mxcl.mysql
~~~~snip~~~
登録されていますね。
これで、毎回手動で起動させなくてもよくなります。
sequelproダウンロード
コンソールからmysqlを操作するのもいいのですが、sequelproというToolでGUI操作すると便利なので、公式サイトからインストールしておきます。
必要な設定を入力したら、接続テストを行い、問題なければお気に入りに追加しておきます。
Redisの準備
次にキャッシュ用ににRedisを入れておきます。
手順はmysqlの時とほぼ同じです。
redisインストール
では、redisをインストールします
$ brew install redis
一応バージョンを確認
$ redis-server -v
Redis server v=3.2.0 sha=00000000:0 malloc=libc bits=64 build=dd22954a73c7ae64
mysqlの時と同じように起動確認してみます。
$ redis-server
17845:C 24 May 00:50:25.959 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
17845:M 24 May 00:50:25.964 * Increased maximum number of open files to 10032 (it was originally set to 256).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.2.0 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 17845
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
17845:M 24 May 00:50:25.966 # Server started, Redis version 3.2.0
17845:M 24 May 00:50:25.966 * The server is now ready to accept connections on port 6379
^C17845:signal-handler (1464018637) Received SIGINT scheduling shutdown...
17845:M 24 May 00:50:37.986 # User requested shutdown...
17845:M 24 May 00:50:37.987 * Saving the final RDB snapshot before exiting.
17845:M 24 May 00:50:37.991 * DB saved on disk
17845:M 24 May 00:50:37.992 # Redis is now ready to exit, bye bye...
問題なく起動したので control + c
で終了します。
自動起動させる
では、Redisも自動起動するようにLaunchAgentsにシンボリックリンクを作成します。
$ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
/Users/user/Library/LaunchAgents/homebrew.mxcl.redis.plist -> /usr/local/opt/redis/homebrew.mxcl.redis.plist
追加したエージェントの読み込み
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
では、登録されたか確認します。
$ launchctl list
~~~~snip~~~
17843 0 homebrew.mxcl.redis
~~~~snip~~~
こちらも無事登録されてます。
では、接続確認。
$ redis-cli
127.0.0.1:6379>
問題ないので、これでRedisの準備も完了です。
virtualenvでPythonの仮想環境を準備する
つぎに、円滑に開発を行う為にPythonの仮想環境を準備します。
pip インストール
まずは、virtualenvをインストールするためのpythonのパッケージ管理システムのpipをインストールします。
$ sudo easy_install pip
pipでインストールされたパッケージはpython内のsite-packagesに置かれます。
virtualenv インストール
では、次にpipでvirtualenvをインストールします。
$ sudo pip install virtualenv
virtualenvwrapper インストール
次に、virtualenvを使いやすくするwrapperのvirtualenvwrapperをインストールします。
ちなみにこちらの説明がわかりやすいです。
Virtualenvだけでも十分に簡単に使用できますが, wrapperを導入することで
各環境の管理, 切り替えが簡単になる
各環境に切り替えた時など特定のポイントで実行したい処理をフックとして記述できる
といったメリットがあるので, 入れる価値があると思います。Python3.x系にも対応。
$ sudo pip install virtualenvwrapper
OSError: [Errno 1] Operation not permitted: '/tmp/pip-tTNnKQ-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'
しかし、El CapitanではOSErrorになります。
これは、El Capitanにはpythonのsix-1.4.1が元々入っていて、それをアンインストールしようとするが、six-1.4.1はsudoでもアンインストールきないって事で起きるエラーらしいです。
なのでignore-installedでsixへの操作は無視して解決します。
$ sudo pip install virtualenvwrapper --ignore-installed six
これで、エラーが起きなかったので、pip freeze
でインストールされたか確認します。
$ pip freeze
~~~~snip~~~
six==1.4.1
virtualenv==15.0.1
virtualenvwrapper==4.7.1
~~~~snip~~~
インストールされている事が確認できました。
virtualenvを使用するための前準備
今後、仮想環境が置かれる場所として、virtualenvs用のディレクトリを作成しておきます。
$ mkdir ~/.virtualenvs
次にbashrcを編集して、環境変数の設定をします。
$vi ~/.bashrc
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
fi
これはvirtualenvwrapperがインストールされていれば, WORKON_HOMEを設定してvirtualenvwrapper.shを実行するようにしています。
bashrc再読み込み
$ source ~/.bashrc
バーチャル環境作成
準備ができたので、次にバーチャル環境を作成します。
今回は元々Macに入っているPythonを使用するため、プリインストールのpythonのpathの確認します。
$ which python
/usr/bin/python
pythonの確認
$ ls /usr/bin/ | grep python
python
python-config
python2.6
python2.6-config
python2.7
python2.7-config
pythonw
pythonw2.6
pythonw2.7
Macにはpython2.7とpython2.6があるようですが、今回はpython2.7を使用します。
では、python2.7をベースにバーチャル環境を作成します。
下記コマンドではmysiteが仮想環境の名前になります。
$ mkvirtualenv --python=/usr/bin/python2.7 mysite
頭に(mysite)
がついている事がわかります。
これが、仮想環境に接続している事を表します。
(mysite) kinpira-no-MacBook-Air:~ user$ which python
/Users/user/.virtualenvs/mysite/bin/python
あと、先ほど設定したWORKON_HOME環境変数が通っているので、.virtualenvs
ディレクトリ以下に環境ができている事が確認できます。
今回は仮想環境作成の際に作成された仮想環境に接続していますが、今後は[workon 仮想環境名
]で仮想環境に接続できます。
gitのカスタマイズ
これで環境的には整ったのですが、コンソール画面を見やすくするために色を設定しようと思います。
gitは元からMacに入っているのですが、gitを補完したりカスタムするためのgit-completion
が 入っていなかったので、gitもHomebrewでインストールします。
$ brew install git
次に、/usr/local/etc/bash_completion.d/
の中にgit-completion.bashのシンボリックリンクが置かれていることを確認します。
$ ls -l /usr/local/etc/bash_completion.d/
total 48
-rw-r--r-- 1 user admin 14040 5 24 00:08 brew
lrwxr-xr-x 1 user admin 64 5 24 01:44 git-completion.bash -> ../../Cellar/git/2.8.3/etc/bash_completion.d/git-completion.bash
lrwxr-xr-x 1 user admin 58 5 24 01:44 git-prompt.sh -> ../../Cellar/git/2.8.3/etc/bash_completion.d/git-prompt.sh
ちなみにHomebrewでインストールする前はシンボリックリンクが無いです。
ls /usr/local/etc/bash_completion.d/
brew
では、下記の様にbashrcを編集し、色と表示内容を変更します。
$ vim .bashrc
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
fi
source /usr/local/etc/bash_completion.d/git-prompt.sh
source /usr/local/etc/bash_completion.d/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true
export PS1='\[\033[36m\]\w\[\033[31m\]$(__git_ps1) \[\033[01;34m\]\$\[\033[00m\] '
PS1でホスト部分もカスタマイズしているので、bashrcを再読み込みするとこんな感じになります。
あとはHOMEでgit configの設定をします。
$ cat .gitconfig
[user]
name = kinpira
email = kinpira@example
[core]
excludesfile = ~/.gitignore
autocrlf = input # CRLFを自動変換
[color]
# colorの設定(以下のコマンドは自動で色つける)
ui = true
status = auto
diff = auto
branch = auto
interactive = auto
grep = auto
[alias]
# gitコマンドのaliasを作成
co = checkout
ci = commit
st = status
b = branch
a = add
hist = log --pretty=format:\\\"%h %ad | %s%d [%an]\\\" --graph --date=short
するとgitの操作にも色がついて、コマンドも短縮されて、いい感じになりました。
PyCharmのインストール
最後にpython用のエディターとして、PyCharmをインストールしておきます。
PyCharmは有償の Professional Edition と無償の Community Editionが存在します。
今回は公式サイトから無償版のCommunity Editionをダウンロードします。
PyCharmに関してはこちらが参考になります。
試しにDjangoを動かしてみる
Djangoはこちらから簡易プロジェクトを持ってきました。
PyCharmで開くとこんな感じで編集できます。
これで一通りの環境が整ったので、これでEl CapitanにlocalでDjangoを開発する環境が整いました。
おまけ:El Capitan感想
ずっとMountain Lionで使ってきたわけですが、今回El Capitanにするという決断にいたるまで随分と葛藤しました^^;
PCが古いので、Updateした事でよりいっそう動作が重くなり、使い物にならなくなったらどうしようという不安があったのですが、いざEl Capitanにしてみたらかなり軽くなり安心しました。
といってもクリーンインストールしたわけなので、OSの恩恵なのかゴミがなくなったからなのかはわからないですが、2010モデルMacBookAirでも問題なく動作する事は間違いないです。
最後に
今回は手動で環境構築をしましたが、今度はDockerかansibleとかで環境構築にトライしたいなと思います。