MacBook Pro (Retina, 13-inch, Late 2012)にEl Capitanをクリーンインストール
プライベートで使っているMacBook Proに、El Capitanをクリーンインストールしました。
Yosemiteの時から、OSのアップデートのタイミングでクリーンインストールするようにしています。
理由は、開発環境をリセットしたり、インストールするアプリケーションやパッケージを整理したいから。あと、Macを使ってるとストレージを圧迫する「その他」を一掃するため。
クリーンインストールの方法については、去年書いたMacBook Pro (Retina, 13-inch, Late 2012)にYosemiteをクリーンインストールと同じ方法で問題なく行えました。
いくつか聞いていた不具合にも遭遇することなく、スムーズにインストールが完了。
設定の変更と、インストールしたアプリケーションなどをメモ。
システム環境設定
一般
- 「書類を閉じる時に変更内容を保持するかどうかを確認」にチェック
- 「アプリケーションを終了するときにウィンドウを閉じる」にチェック
- 「最近使った項目」を5に変更
Dock
- 「ウィンドウタイトルバーのダブルクリックで」を「しまう」に
- 「ウィンドウをアプリケーションアイコンにしまう」にチェック
- 「Dockを自動的に隠す/表示」にチェック
セキュリティとプライバシー
ファイアウォール
- ファイアウォールを「入」に
キーボード
- 「キーのリピート」をもっとも速く
- 「リピート入力認識までの時間」をもっとも短くs
トラックパッド
- 全ての項目にチェック
- 「軌跡の速さ」をもっとも速く
アクセシビリティ
マウス/トラックパッド
トラックパッドオプション
- 「ドラッグを有効にする」にチェックを入れ、「3本指のドラッグ」を選択
今までトラックパッドの設定でドラッグの方法を選択できていたのですが、El Capitanではアクセシビリティの方に移動しています。
アプリケーションのインストール
Apple Store
Xcodeのインストール後は、ターミナルで以下のコマンドを入力してコマンドラインツールをインストール
$ xcode-select --install
インターネット経由
- Chrome
- Carthage
ChromeはHomebrew Caskでもインストールできるのですが、1Passwordのエクステンションをインストールすることができなかったのでホームページからダウンロードしたものをインストールしています。
Carthageは今まではhomebrewで管理していたのですが、OSのアップデートでSwiftのバージョンが2にあがり、ビルドできなくなってしまったのでここからパッケージをダウンロードしてインストールしています。
インストールしたパッケージを削除する時はMacでインストールしたパッケージを削除するを参考に。
Homebrew
- git
- nodebrew
nodebrewでnodeをインストールする際にFailed to create the file
のエラーが出たので、以下のコマンドでディレクトリを作成。
$ mkdir -p ~/.nodebrew/src
Homebrew Cask
以下のコマンドでCaskをインストール
$ brew install caskroom/cask/brew-cask
ひとまずはこんな感じで。
El Capitanになって、画面の切り替えなどがスムーズになったような気が。
ライブ変換は最初は戸惑うけど、変換精度もかなり高くて便利かも。
Split ViewはWindow Tidyを使うから、自分はあまり使わないような気が。左右だけじゃなくって、上下とかも対応していたらよかったのですが。
AWS上の Node.js アプリケーションに HTTPS でアクセス可能にする
9月からのプロジェクトでは AWS を使っています。
今までインフラを扱ったことがほとんどなくて、AWS も今回初めてアカウントを作って恐々触っているレベルですが、タイトルのことは割とすんなりと。
ただやっぱりある程度インフラのことは気にする必要があって、改めて Heroku はおかん。
EC2 インスタンスに Node.js と npm をインストールする
公式のガイドを参考にインスタンスを起動
User Guide for Linux Instances
ssh でアクセスし、まずビルドに必要なライブラリをインストール
$ sudo yum update
$ sudo yum install gcc-c++ make
$ sudo yum install openssl-devel
GitHub からバージョン指定で clone してインストール
yum を使うと v0.10 系となるため、この方法を取っています
$ sudo yum install git
$ git clone --depth=1 -b v0.12.7 git://github.com/nodejs/node.git
$ cd node
$ ./configure
$ make
$ sudo make install
Amazon Linux は root のパスが特殊らしいので、以下の変更を実施
$ sudo su
$ visudo
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
続いて npm をインストール
Node.js の v0.12.7 にバンドルされているバージョンの npm をインストールし、npm コマンドでアップデートを行いました
$ git clone --depth=1 -b v2.11.3 https://github.com/npm/npm.git
$ cd npm
$ sudo make install
$ sudo npm update -g npm
How to install node and mongodb on Amazon EC2
上記のページを参考にしています。
nodebrew とかを使わなかったのは root のパスの問題と EC2 ならバージョンを上げるのならまた一から作るんだよね、というようなことを考えつつ。
この辺りの考え方はどうなのでしょうか、教えてえらい人。
ELB の作成と SSL 証明書の設定
ELB の作成と証明書の設定は公式のドキュメントの通りに
Developer Guide
SSL 自己証明書の作成
ELB に設定する SSL 自己証明書は、オレオレ証明書をopensslで作る(詳細版)を参考に。
以下のコマンドで秘密鍵、証明書署名要求ファイル、証明書を作成
$ openssl genrsa 2048 > server.key
$ openssl req -new -key server.key > server.csr
$ openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt
ELB の SSL Termination は、秘密鍵に鍵がついているとダメなのようなので、以下のコマンドで解除
$ openssl rsa -in server.key > server-released.key
AWS で設定する際は、PEM 形式じゃないとだめ。
openssl はデフォルトで PEM 形式で出力されるようなので、cat で秘密鍵と証明書の中身を表示して貼り付け。
インフラ初心者でもいちおうなんとかなるっぽい。
ただセキュリティグループとかどう整理すればいいのかはまだわからない。。
この辺りは多分技術書を読んだ方が早そう。
Swift強化月間
5月は仕事、プライベートともSwiftをがっつり書いた月でした。
Xcode 6からフレームワーク用のテンプレートが用意され、独自フレームワークの開発や公開が簡単になりました。
そこで、他のアプリケーションで使いそうな機能とかをいくつかフレームワークとしてまとめ、Carthageで管理できるように、Githubに公開しました。
AKIRA-MIYAKE/SwiftyEvents
Node.jsのEventEmitterのような使い方ができる、イベント通知のためのライブラリ。
GenericsクラスのサブクラスはGenericsでなければならないというSwiftyの制約のため、EventEmitterのサブクラスを定義する際はこういう方法を取る必要がありますが。。
AKIRA-MIYAKE/OpenWeatherMapper
今はプライベートで開発中のアプリで使う部分のみの実装。
パース処理は共通で大丈夫だから、もしかしたら今後拡張するかも。
AKIRA-MIYAKE/EasyBeacon
iBeaconのモニタリング、レンジングの処理を簡単にアプリに組み込むためのライブラリ。
リージョンの出入り、リージョンに入った際のもっとも近いビーコンの取得に機能を限定していますが、多くの場合それで十分なのではないかと。
あんまり細かい部分までいじれるようにすると、単なるラッパーになってしまうし。
Apple Watchのアプリ開発も行ったので、その時の気づきなどは後日まとめたいと思います。
MEAN を動かしてみる
MEAN は MongoDB、Express、AngularJS、Node.js で構成される Web アプリケーションを構築するための アーキテクチャであり、LAMP (Linux、Apatch、MySQL、PHP) に変わる技術として注目されています。
全て JavaScript で記述でき、データを JSON でやり取りするので、シンプルにアプリケーションを構築することができます。
MEAN の環境を容易に構築するためのツールが MEAN.IO から提供されています。
MEAN をインストールし動作の確認までを行っていきます。
MEAN のインストール
最初に、MEAN を動かすのに必要なものをインストールします。
Node.js、MongoDB、Git が必要で、さらに npm で Gulp と Bower がインストールされていなければなりません。
MongoDB 以外はすでにインストールされているので、MongoDB のインストールを行います。
MongoDB のインストール
MongoDBのドキュメントを参考にインストールを行います。
最初に Homebrew をアップデート。
$ brew update
続いて MongoDB をインストール。
SSL を利用するためのオプションをつけて実行しました。
$ brew install mongodb --with-openssl
インストールが完了したら最後に表示される指示通りにコマンドを実行。
$ ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents $ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
MongoDB にアクセスできるかを確認。
$ mongo MongoDB shell version: 3.0.2 connecting to: test Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user Server has startup warnings: 2015-04-15T19:05:12.483+0900 I CONTROL [initandlisten] 2015-04-15T19:05:12.483+0900 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
問題なく動作しているようです。
mean-cli のインストール
mean-cli は Node.js の v0.10.x が必要ですとのことなので、nodebrew を使って v0.10.x の最新である v0.10.38 をインストールして切り替え。
そして、npm で mean-cli をインストール。
$ npm install -g mean-cli
完了後、バージョンを確認。
$ mean -v 0.9.29
コマンドでアプリケーションの作成
作業ディレクトリに移動後、以下のコマンドを実行。
$ mean init HelloMEAN
HelloMEAN
ディレクトリに移動し、依存するモジュールをインストール。
$ npm install
完了後、gulp のデフォルトタスクを実行。
$ gulp
localhost の 3000 ポートでサーバ起動。
無事にアクセスすることができました。
$ node server
server.js からサーバが起動することも確認。
nodebrew を使った node.js のバージョン管理
今まで homebrew で直接 node.js をインストールしていたのですが、nodebrew を使ってバージョン管理できるようにしました。
node.js のアンインストール
最初にすでにインストールされている node.js をアンインストールします。
npm をアンインストール。
$ rm -rf /usr/local/lib/node_modules $ rm -rf /usr/local/bin/npm
homebrew を利用してインストールした node.js をアンインストール。
$ brew uninstall node
パッケージでインストールした際はここを参考に。
nodebrewのインストール
node.js のバージョン管理を可能にする nodebrew をインストールします。
hodebrew を利用してインストールすることができます。
$ brew install nodebrew
パスの設定
nodebrew へのパスを設定します。
以下を.bash_profile
に記載。
export PATH=$HOME/.nodebrew/current/bin:$PATH
.bash_profile
の変更を反映します。
$ source .bash_profile
node.jsのインストール
node.js の最新版をインストールします。 バイナリでインストール可能な最も新しいものを指定します。
$ nodebrew install-binary latest
完了後、ローカルにインストールされているバージョンの確認を行います。
v0.12.2 が最新のようです。
$ nodebrew list v0.12.2 current:none
続いてインストールしたバージョンを利用するように設定します。
$ nodebrew use v0.12.2
別のバージョンで利用していた npm パッケージの移行
nodebrew でインストールした node.js のあるバージョンで利用していた npm パッケージを、他のバージョンに移行する際は、以下のコマンドを実行すればよいようです。
$ nodebrew migrate-package [version]