macOS 下搭建开发环境
上周四家里遭遇入室盗窃,用了快四年的 Lenovo G450A 还有刚买的 HTC 8S 悉数被盗,只剩下一台三星 S5830 。
这一天不写点代码就感觉不自在,实在忍受不了每天回家只能看电视的无聊,果断入手了一台 Macbook Pro 。
之前用的是 Win8 + Ubuntu 12 双系统,第一感觉就是:原来 macOS 被 Ubuntu 山寨了,特别是 UI 层面。
macOS 的内核 Darwin 是基于 Unix(BSD) 的,血统比 Linux 更纯正,对于程序员来说优势自不必说。
曾经为了学习操作系统和 Linux Shell ,不得不在 VMWare 下安装 Ubuntu ;
曾经为了学习 Objective-C 而尝试在 VMWare 下安装 macOS ,却因为忘记 BIOS 密码无法开启硬件虚拟化而最终作罢;
曾经学习 Cocos2d-X ,为了把 C++ 代码编译为 .so
库供 Android 项目调用,不得不下载和安装 10G 左右的 Cygwin。
而如今有了 Mac 这些都是浮云了,现在回想起来真是一把辛酸泪啊。
然后又想到之前在《乔布斯传》中看到的:
乔布斯曾经专门把 Linus Torvalds 请到办公室,商讨在 Linux 上搭建 macOS 的细节,遗憾的是由于 Linus 的傲慢、目光短浅而未能达成一致意见,最后乔布斯选择了 BSD 。不知道 Linus 后来有没有后悔,呵呵~
之前习惯了 Ubuntu 下的 apt-get
,macOS 下只得自己安装 HomeBrew 或 MacPorts 。
HomeBrew的安装
cd /usr/local
sudo mkdir homebrew
curl -L https://github.com/mxcl/homebrew/tarball/master | sudo tar xz --strip 1 -C homebrew
cd homebrew/bin
./brew -v
sudo ./brew update
修改 /usr/local
的所有者权限:
sudo chown $USER /usr/localbrew
在 .bash_profile
中为 HomeBrew 配置环境变量:
touch '.bash_profile' #首次创建,如果已经存在可跳过
vim '.bash_profile'
export PATH=$PATH:/usr/local/homebrew/bin
用 HomeBrew 安装 git
:
brew search git
brew install git
搭建 Android 开发环境
JDK / Eclipse / ADT / Android SDK / Android NDK 的下载和安装就不赘述了,主要是 SDK 和 NDK 环境变量的配置:
export PATH=$PATH:~/Dev/android-sdks/tools
export PATH=$PATH:~/Dev/android-sdks/platform-tools
export PATH=$PATH:~/Dev/android-ndk-r8e
ANDROID_SDK_ROOT=~/Dev/android-sdks
export ANDROID_SDK_ROOT
NDK_ROOT=~/Dev/android-ndk-r8e
export NDK_ROOT
搭建 Cocos2d-x 开发环境
由于省去了安装庞大的 Cygwin,这一步就变得异常简单了,而且前面已经配置 SDK 和 NDK 环境变量,只需执行几个 shell 文件即可:
cd $COCOS2DX_ROOT
./install-templates-xcode.sh #安装Xcode模板
./create-android-project.sh #创建Android项目
cd $PROJECT_ROOT/proj.android
./build_native.sh #调用NDK将C++文件编译为.so库并部署到project中
最近几个版本的 Cocos2d-x 中的 buid_native.sh
已经不再将 Cocos2dxActivity
、 Cocos2dxBitmap
等公共封装类直接导入新建的 project(我去年 3 月份使用 1.0 版本的时候还是这样的),而是拿出去作为了一个单独的 Library Project ,位于 $COCOS2DX_ROOT/cocos2dx/platform/android/java
,这样很好。在导入新建 project 时,要记得将这个 Library Project 引入。
搭建 Ruby 开发环境
最后是 Octopress ,首先当然得安装 Ruby 环境。 macOS 自带 Ruby 版本过低,需要安装 1.9.3 版本,首先安装 Ruby 版本管理工具 rbenv
和 rvm
:
curl -L https://get.rvm.io | bash -s stable --ruby
rvm install 1.9.3
rvm use 1.9.3 --default
rvm rubygems latest
配置环境变量:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
用 HomeBrew 安装 rbenv
:
brew update
brew install rbenv
brew install ruby-build
rbenv install 1.9.3-p194
rbenv rehash
Octopress 及 Heroku 的安装
从 GitHub clone
自己原先的 octopress 项目到本地,并安装 rake
、 jekyll
等依赖包:
gem install bundler
rbenv rehash
bundle install
rake install
gem install heroku
然后需要把之前电脑上生成的 keys 清除掉:
heroku keys:clear
并重新生成 SSH key,可参考 Heroku 官方文档:
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/adam/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/adam/.ssh/id_rsa.
Your public key has been saved in /Users/adam/.ssh/id_rsa.pub.
The key fingerprint is:
a6:88:0a:0b:74:90:c6:e9:d5:49:d6:e3:04:d5:6c:3e adam@workstation.local
然后上传新的 key 到 heroku :
$ heroku keys:add
Found existing public key: /Users/adam/.ssh/id_rsa.pub
Uploading SSH public key /Users/adam/.ssh/id_rsa.pub... done
最后一步就是 git push
,却老是报错:
$ git push -u heroku master
#ssh: connect to host heroku.com port 22: Operation timed out
#fatal: The remote end hung up unexpectedly
StackOverflow 上说需要重新生成 SSH key ,试了不行,后来才知道是 Heroku 的 SSH 被 GFW 墙了,看来老外还是不懂咱天朝的国情啊。这篇文章帮了我,手动配置 ssh 配置文件就 OK 了:
vi ~/.ssh/config:
Host heroku.com
User [YOUR_HEROKU_ACCOUNT]
Hostname 107.21.95.3
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
port 22