LoginSignup
10
13

More than 5 years have passed since last update.

2010モデルMacBookAirをEl Capitanにしたので、真っ新な状態からDjangoのlocal開発環境を構築した時の手順

Last updated at Posted at 2016-05-25

自宅で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

スクリーンショット 2016-05-25 1.19.52.png

次に公式サイトに乗っているコマンドで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操作すると便利なので、公式サイトからインストールしておきます。

必要な設定を入力したら、接続テストを行い、問題なければお気に入りに追加しておきます。
スクリーンショット_2016-05-24_0_41_39.png

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を再読み込みするとこんな感じになります。
スクリーンショット_2016-05-25_2_34_04.png

あとは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の操作にも色がついて、コマンドも短縮されて、いい感じになりました。
スクリーンショット 2016-05-25 2.50.59.png

PyCharmのインストール

最後にpython用のエディターとして、PyCharmをインストールしておきます。
PyCharmは有償の Professional Edition と無償の Community Editionが存在します。
今回は公式サイトから無償版のCommunity Editionをダウンロードします。
PyCharmに関してはこちらが参考になります。

試しにDjangoを動かしてみる

Djangoはこちらから簡易プロジェクトを持ってきました。
PyCharmで開くとこんな感じで編集できます。

スクリーンショット 2016-05-25 1.02.35.png

実際に動かして見て、ページが表示されました。
スクリーンショット 2016-05-25 1.00.47.png

これで一通りの環境が整ったので、これでEl CapitanにlocalでDjangoを開発する環境が整いました。

おまけ:El Capitan感想

ずっとMountain Lionで使ってきたわけですが、今回El Capitanにするという決断にいたるまで随分と葛藤しました^^;
PCが古いので、Updateした事でよりいっそう動作が重くなり、使い物にならなくなったらどうしようという不安があったのですが、いざEl Capitanにしてみたらかなり軽くなり安心しました。
といってもクリーンインストールしたわけなので、OSの恩恵なのかゴミがなくなったからなのかはわからないですが、2010モデルMacBookAirでも問題なく動作する事は間違いないです。

最後に

今回は手動で環境構築をしましたが、今度はDockerかansibleとかで環境構築にトライしたいなと思います。

10
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
13