Mac 开发配置

如何让一部全新的 MacBook 快速完成开发环境配置」,在 Mavericks 和 Yosemite 上有效,其他版本系统并未尝试。

注:译者更推荐各位阅读 Sourabh Bajaj 的英文手册,将系统语言设置为 English,避免相关术语在记忆、理解和查找时产生混淆。

系统设置

在任何的操作系统中,首先你需要做一件事就是更新系统,点击窗口左上角的  > 关于本机 > 软件更新 。此外,如果这是一部新的电脑,你还需要到系统设置进行一些适当调整。如何调整,取决于个人喜好。

设置主机名:

$ sudo scutil --set HostName ZH-Mac

显示/隐藏Mac隐藏文件:

defaults write com.apple.finder AppleShowAllFiles -bool true  #显示Mac隐藏文件的命令
defaults write com.apple.finder AppleShowAllFiles -bool false #隐藏Mac隐藏文件的命令

触控板

Dock

Finder

菜单栏

Spotlight

互联网帐户

XCode

从 App store 或苹果开发者网站安装 Xcode 。

紧接着,安装 Xcode command line tools,运行:

    xcode-select --install

运行命令后,按照指引,你将完成 Xcode command line tools 安装。


译注:

如果你不是一名 iOS 或 OS X 开发者,可以跳过安装 XCode 的过程,直接安装 Xcode command line tools 。安装完成后,你将可以直接在 terminal 中使用主要的命令,比如:make, GCC, clang, perl, svn, git, size, strip, strings, libtool, cpp等等。

如果你想了解 Xcode command line tools 包含多少可用的命令,可以到/Library/Developer/CommandLineTools/ 查看。以下为其中的命令列表:

Homebrew

包管理工具可以让你安装和更新程序变得更方便,目前在 OS X 系统中最受欢迎的包管理工具是 Homebrew.

安装

在安装 Homebrew 之前,需要将 Xcode Command Line Tools 安装完成,这样你就可以使用基于 Xcode Command Line Tools 编译的 Homebrew。

在 terminal 中复制以下命令(不包括 $),跟随指引,将完成 Hombrew 安装。

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

紧接着,我们需要做一件事让通过 Homebrew 安装的程序的启动链接 (在 /usr/local/bin中)可以直接运行,无需将完整路径写出。通过以下命令将 /usr/local/bin 添加至 $PATH 环境变量中:

$ echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

Cmd+T 打开一个新的 terminal 标签页,运行以下命令,确保 brew 运行正常。

$ brew doctor

译注:

安装完成后,Homebrew 会将本地 /usr/local 初始化为 git 的工作树,并将目录所有者变更为当前所操作的用户,将来 brew 的相关操作不需要 sudo 。

Homebrew 基本使用

安装一个包,可以简单的运行:

$ brew install <package_name>

更新 Homebrew 在服务器端上的包目录:

$ brew update

查看你的包是否需要更新:

$ brew outdated

更新包:

$ brew upgrade <package_name>

Homebrew 将会把老版本的包缓存下来,以便当你想回滚至旧版本时使用。但这是比较少使用的情况,当你想清理旧版本的包缓存时,可以运行:

$ brew cleanup

查看你安装过的包列表(包括版本号):

$ brew list --versions

Homebrew Cask

你已经感受到了使用 Homebrew 安装命令行程序的便利。那么接下来,我们将通过 Homebrew Cask 优雅、简单、快速的安装和管理 OS X 图形界面程序,比如 Google Chrome 和 Dropbox。

安装

安装 Homebrew-cask 是如此的简单直接,运行以下命令即可完成:

$ brew install caskroom/cask/brew-cask
$ brew cask install google-chrome // 安装 Google 浏览器
$ brew update && brew upgrade brew-cask && brew cleanup // 更新

搜索

如果你想查看 cask 上是否存在你需要的 app,可以到 caskroom.io 进行搜索。

LaunchRocket

另外再附带推荐一个工具。

LaunchRocket是一个管理brew安装的service的工具,安装之后可以看所有的service的运行状态,如下图所示:

安装LaunchRocket就要用到我刚刚提的brew cask,用如下命令即可:

brew tap jimbojsb/launchrocket
brew cask install launchrocket

之后LauchRocket设置页面找到(如下图所示),它的启动项同时也保存在/opt/homebrew-cask/Caskroom/launchrocket目录中。

启动LauchRocket有点麻烦,需要切换设置页面去手工启动。我自己想到一个办法,方法是把/opt/homebrew-cask增加到 alfred 的search目录中,然后就可以用alfred来启动了,如下所示:

  1. 设置alfred

  1. 用alfred启动LauchRocket

文件预览插件

有些 插件 可以让 Mac 上的文件预览更有效,比如语法高亮、markdown 渲染、json 预览等等。

$ brew cask install qlcolorcode
$ brew cask install qlstephen
$ brew cask install qlmarkdown
$ brew cask install quicklook-json
$ brew cask install qlprettypatch
$ brew cask install quicklook-csv
$ brew cask install betterzipql
$ brew cask install webp-quicklook
$ brew cask install suspicious-package

OS X 图形界面程序

$ brew cask install alfred
$ brew cask install appcleaner
$ brew cask install cheatsheet
$ brew cask install dropbox
$ brew cask install google-chrome
$ brew cask install onepassword
$ brew cask install sublime-text
$ brew cask install totalfinder
...

译注: 译者本人并不喜欢 brew cask 的安装方式,更倾向于到 App Store 或官方下载 OS X 图形界面程序。主要因为名字不好记忆、偶尔需要手动更新,另外当你使用 Alfred 或 Spotlight ,你将发现将程序安装在 ~/Application 会很方便。

iTerm2

作为一名开发者,我们常常花上很多时间在终端 上,如同武士的剑,一出手便知高低。所以让我们安装 Mac 上最强大的终端 iTerm2 吧!写码除虫,居家必备。

在 Finder 中,将 iTerm 拖拽进入 Application 文件夹中。然后,你可以在 Launchpad 中启动 iTerm。

颜色和字体设置

Screen

Zsh

我们将安装 zsh ,其拓展功能和主题将由 oh-my-zsh 提供。其中Env.sh 文件用于维护别名(aliases),输出(exports)和路径改变(path changes)等等,以免影响 ~/.zshrc

Zsh

使用 Homebrew 完成 zsh 和 zsh completions 的安装

    brew install zsh zsh-completions

安装 oh-my-zsh 让 zsh 获得拓展功能和主题

    curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh

用文本编辑器或 vi 打开 .zshrc 进行以下编辑:

    ZSH_THEME=pygmalion
    alias zshconfig="vi ~/.zshrc"
    alias envconfig="vi ~/Projects/config/env.sh"
    plugins=(git colored-man colorize github jira vagrant virtualenv pip python brew osx zsh-syntax-highlighting)

用文本编辑器或 vi 打开 ~/Projects/config/env.sh 进行以下编辑:

    #!/bin/zsh

    # PATH
    export PATH="/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    export EDITOR='vi -w'
    # export PYTHONPATH=$PYTHONPATH
    # export MANPATH="/usr/local/man:$MANPATH"

    # Virtual Environment
    export WORKON_HOME=$HOME/.virtualenvs
    export PROJECT_HOME=$HOME/Projects
    source /usr/local/bin/virtualenvwrapper.sh

    # Owner
    export USER_NAME="YOUR NAME"
    eval "$(rbenv init -)"

    # FileSearch
    function f() { find . -iname "*$1*" ${@:2} }
    function r() { grep "$1" ${@:2} -R . }

    #mkdir and cd
    function mkcd() { mkdir -p "$@" && cd "$_"; }

    # Aliases
    alias cppcompile='c++ -std=c++11 -stdlib=libc++'

译注:

如果是新增环境变量或者是修改环境变量的值,都需要 source 一下才能立即生效。

如果是删除一个环境变量,必须输入 exit 以 logout 当前 shell ,然后再重新打开一个新的 shell 并 login 才能生效。

升级一下系统自带的vim

$ brew install ctags macvim --env-std --override-system-vim

Git and Github

作为一名开发者怎么可能没有 Git 呢? 我们马上就来安装:

$ brew install git

好的,现在我们来测试一下 gti 是否安装完好:

$ git --version

运行 $ which git 将会输出 /usr/local/bin/git.

接着,我们将定义你的 Git 帐号(与你在 GitHub 使用的用户名和邮箱一致)

$ git config --global user.name "Your Name Here"
$ git config --global user.email "your_email@youremail.com"

这些配置信息将会添加进 ~/.gitconfig 文件中.

我们将推荐使用 HTTPS 方法(另一个是 SSH),将你的代码推送到 Github 上的仓库。如果你不想每次都输入用户名和密码的话,可以按照此 描述 说的那样,运行:

$ git config --global credential.helper osxkeychain

此外,如果你打算使用 SSH方式,可以参考此 链接.

Git Ignore

创建一个新文件 ~/.gitignore ,并将以下内容添加进去,这样全部 git 仓库将会忽略以下内容所提及的文件。

# Folder view configuration files
.DS_Store
Desktop.ini

# Thumbnail cache files
._*
Thumbs.db

# Files that might appear on external disks
.Spotlight-V100
.Trashes

# Compiled Python files
*.pyc

# Compiled C++ files
*.out

# Application specific files
venv
node_modules
.sass-cache

MySQL

安装

我们将使用 Homebrew 安装 MySQL,同时也会安装 MySQL 的相关文件。

安装 MySQL:

$ brew update # 这是一个好习惯
$ brew install mysql

在使用 MySQL 前,我们需要做一些设置:

$ unset TMPDIR
$ mkdir /usr/local/var
$ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp 

使用

启动 MySQL 服务,运行 mysql.server

$ mysql.server start

关闭 MySQL,运行:

$ mysql.server stop

你可以了解更多 mysql.server 的命令,运行:

$ mysql.server --help

登录 MySQL, 运行:

$ mysql -uroot

Note: 默认情况下,MySQL 用户 root 没有密码,这对本地开发没有关系,但如果你希望修改密码,你可以运行:

$ mysqladmin -u root password 'new-password'

译注:

当你在设置密码时出现问题,可以参考 lgn21st 的方式。

此外,如果你觉得敲那么多命令是一件很麻烦的事情,那么你也可以参考 Mac OS安装 MySQL(使用二进制PGK包安装)

安装phpmyadmin

$ brew install phpmyadmin

安装PHP

添加brew的PHP扩展库:

$ brew update
$ brew tap homebrew/dupes
$ brew tap josegonzalez/homebrew-php

可以使用 brew options php55 命令来查看安装php5.5的选项,这里我用下面的选项安装:

$ brew install php55 --with-fpm --with-gmp --with-imap --with-tidy --with-debug --with-mysql --with-libmysql

PHP编译过程中如果遇到configure: error: Cannot find OpenSSL's <evp.h>错误,执行xcode-select --install 重新安装一下Xcode Command Line Tools 在GitHub HomeBrew上有关于这个讨论:
For future reference of anybody looking for Command Line Tools with Xcode 5, open up a Terminal window and type xcode-select --install. A window will appear informing you command line tools are required. Click Install and you should be good to go

等待PHP编译完成,开始安装PHP常用扩展,扩展安装过程中brew会自动安装依赖包,例如php55-pdo-pgsql 会自动装上postgresql,这里我安装以下PHP扩展:

$ brew install php55-apcu\
php55-gearman\
php55-geoip\
php55-gmagick\
php55-imagick\
php55-intl\
php55-mcrypt\
php55-memcache\
php55-memcached\
php55-mongo\
php55-opcache\
php55-pdo-pgsql\
php55-phalcon\
php55-redis\
php55-sphinx\
php55-swoole\
php55-uuid\
php55-xdebug;

扩展里面提一下php55-phalcon 和 php55-swoole. 一个是C语言写的PHP框架,安装来个人摸索熟悉一下,还没有真正的使用过,大致看了一下文档,感觉非常吊炸天。目前公司的项目是基于Yii2的,也看看这个框架。 另外一个swoole是国产的PHP高性能网络通信框架,貌似不错,可能在项目中会考虑用到它。

由于Mac自带了php和php-fpm,因此需要添加系统环境变量PATH来替代自带PHP版本。

$ echo 'export PATH="$(brew --prefix php55)/bin:$PATH"' >> ~/.bash_profile  #for php
$ echo 'export PATH="$(brew --prefix php55)/sbin:$PATH"' >> ~/.bash_profile  #for php-fpm
$ echo 'export PATH="/usr/local/bin:/usr/local/sbib:$PATH"' >> ~/.bash_profile #for other brew install soft
$ source ~/.bash_profile

测试一下效果:

#brew安装的php 他在/usr/local/opt/php55/bin/php
php -v    
PHP 5.5.14 (cli) (built: Jul 16 2014 15:43:06) (DEBUG)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans 

#Mac自带的PHP
/usr/bin/php -v   
PHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

#brew安装的php-fpm 他在/usr/local/opt/php55/sbin/php-fpm
php-fpm -v
PHP 5.5.14 (fpm-fcgi) (built: Jul 16 2014 15:43:12) (DEBUG)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

#Mac自带的php-fpm
/usr/sbin/php-fpm -v
PHP 5.4.24 (fpm-fcgi) (built: Jan 19 2014 21:32:57)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

修改php-fpm配置文件,vim /usr/local/etc/php/5.5/php-fpm.conf,找到pid相关大概在25行,去掉注释 pid = run/php-fpm.pid, 那么php-fpm的pid文件就会自动产生在/usr/local/var/run/php-fpm.pid,下面要安装的Nginx pid文件也放在这里。

#测试php-fpm配置
php-fpm -t
php-fpm -c /usr/local/etc/php/5.5/php.ini -y /usr/local/etc/php/5.5/php-fpm.conf -t

#启动php-fpm
php-fpm -D
php-fpm -c /usr/local/etc/php/5.5/php.ini -y /usr/local/etc/php/5.5/php-fpm.conf -D

#关闭php-fpm
kill -INT `cat /usr/local/var/run/php-fpm.pid`

#重启php-fpm
kill -USR2 `cat /usr/local/var/run/php-fpm.pid`

#也可以用上文提到的brew命令来重启php-fpm,不过他官方不推荐用这个命令了
brew services restart php55

#还可以用这个命令来启动php-fpm
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist

启动php-fpm之后,确保它正常运行监听9000端口:

lsof -Pni4 | grep LISTEN | grep php
php-fpm   30907 calvin    9u  IPv4 0xf11f9e8e8033a2a7      0t0  TCP 127.0.0.1:9000 (LISTEN)
php-fpm   30917 calvin    0u  IPv4 0xf11f9e8e8033a2a7      0t0  TCP 127.0.0.1:9000 (LISTEN)
php-fpm   30918 calvin    0u  IPv4 0xf11f9e8e8033a2a7      0t0  TCP 127.0.0.1:9000 (LISTEN)
php-fpm   30919 calvin    0u  IPv4 0xf11f9e8e8033a2a7      0t0  TCP 127.0.0.1:9000 (LISTEN)
#正常情况,会看到上面这些进程

PHP-FPM开机启动:

ln -sfv /usr/local/opt/php55/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php55.plist

安装php composer

brew install composer
#检查一下情况
composer --version
Composer version 1.0.0-alpha8 2014-01-06 18:39:59

redis memcached这些软件brew 已经自动依赖安装上,如果想开机自动启动,或者查看使用说明 brew info redis即可。另外,composer的中文文档:猛戳这里

安装Nginx

$ brew install nginx --with-http_geoip_module

Nginx启动关闭命令:

#测试配置是否有语法错误
nginx -t

#打开 nginx
sudo nginx

#重新加载配置|重启|停止|退出 nginx
nginx -s reload|reopen|stop|quit

#也可以使用Mac的launchctl来启动|停止
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

Nginx开机启动

ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

Nginx监听80端口需要root权限执行,因此:

sudo chown root:wheel /usr/local/Cellar/nginx/1.6.0_1/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.6.0_1/bin/nginx

配置nginx.conf

创建需要用到的目录:

mkdir -p /usr/local/var/logs/nginx
mkdir -p /usr/local/etc/nginx/sites-available
mkdir -p /usr/local/etc/nginx/sites-enabled
mkdir -p /usr/local/etc/nginx/conf.d
mkdir -p /usr/local/etc/nginx/ssl
sudo mkdir -p /var/www
sudo chown :staff /var/www
sudo chmod 775 /var/www

vim /usr/local/etc/nginx/nginx.conf 输入以下内容:

worker_processes  1;

error_log   /usr/local/var/logs/nginx/error.log debug;


pid        /usr/local/var/run/nginx.pid;


events {
    worker_connections  256;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /usr/local/var/logs/access.log  main;

    sendfile        on;
    keepalive_timeout  65;
    port_in_redirect off;

    include /usr/local/etc/nginx/sites-enabled/*;
}

设置nginx php-fpm配置文件

vim /usr/local/etc/nginx/conf.d/php-fpm
#proxy the php scripts to php-fpm
location ~ \.php$ {
    try_files                   $uri = 404;
    fastcgi_pass                127.0.0.1:9000;
    fastcgi_index               index.php;
    fastcgi_intercept_errors    on;
    include /usr/local/etc/nginx/fastcgi.conf;
}

nginx虚拟主机准备工作

#创建 info.php index.html 404.html 403.html文件到 /var/www 下面
vi /var/www/info.php
vi /var/www/index.html
vi /var/www/403.html
vi /var/www/404.html

创建默认虚拟主机default
vim /usr/local/etc/nginx/sites-available/default输入:

server {
    listen       80;
    server_name  localhost;
    root         /var/www/;

    access_log  /usr/local/var/logs/nginx/default.access.log  main;

    location / {
        index  index.html index.htm index.php;
        autoindex   on;
        include     /usr/local/etc/nginx/conf.d/php-fpm;
    }

    location = /info {
        allow   127.0.0.1;
        deny    all;
        rewrite (.*) /.info.php;
    }

    error_page  404     /404.html;
    error_page  403     /403.html;
}

创建ssl默认虚拟主机default-ssl
vim /usr/local/etc/nginx/sites-available/default-ssl输入:

server {
    listen       443;
    server_name  localhost;
    root       /var/www/;

    access_log  /usr/local/var/logs/nginx/default-ssl.access.log  main;

    ssl                  on;
    ssl_certificate      ssl/localhost.crt;
    ssl_certificate_key  ssl/localhost.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    location / {
        include   /usr/local/etc/nginx/conf.d/php-fpm;
    }

    location = /info {
        allow   127.0.0.1;
        deny    all;
        rewrite (.*) /.info.php;
    }

    error_page  404     /404.html;
    error_page  403     /403.html;
}

创建phpmyadmin虚拟主机

vim /usr/local/etc/nginx/sites-available/phpmyadmin #输入以下配置
server {
    listen       306;
    server_name  localhost;
    root    /usr/local/share/phpmyadmin;

    error_log   /usr/local/var/logs/nginx/phpmyadmin.error.log;
    access_log  /usr/local/var/logs/nginx/phpmyadmin.access.log main;

    ssl                  on;
    ssl_certificate      ssl/phpmyadmin.crt;
    ssl_certificate_key  ssl/phpmyadmin.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    location / {
        index  index.html index.htm index.php;
        include   /usr/local/etc/nginx/conf.d/php-fpm;
    }
}

设置SSL

mkdir -p /usr/local/etc/nginx/ssl
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=localhost" -keyout /usr/local/etc/nginx/ssl/localhost.key -out /usr/local/etc/nginx/ssl/localhost.crt
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=phpmyadmin" -keyout /usr/local/etc/nginx/ssl/phpmyadmin.key -out /usr/local/etc/nginx/ssl/phpmyadmin.crt

创建虚拟主机软连接,开启虚拟主机

ln -sfv /usr/local/etc/nginx/sites-available/default /usr/local/etc/nginx/sites-enabled/default
ln -sfv /usr/local/etc/nginx/sites-available/default-ssl /usr/local/etc/nginx/sites-enabled/default-ssl
ln -sfv /usr/local/etc/nginx/sites-available/phpmyadmin /usr/local/etc/nginx/sites-enabled/phpmyadmin

启动|停止Nginx

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

接下来你可以通过下面这些连接访问:

http://localhost/ -> index.html http://localhost/info -> info.php via phpinfo();
http://localhost/404 -> 404.html
https://localhost/ -> index.html(SSL)
https://localhost/info -> info.php via phpinfo();(SSL)
https://localhost/404 -> 404.html(SSL)
https://localhost:306 -> phpmyadmin(SSL)

设置快捷服务控制命令

alias nginx.start='launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.stop='launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.restart='nginx.stop && nginx.start'
alias php-fpm.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist"
alias php-fpm.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist"
alias php-fpm.restart='php-fpm.stop && php-fpm.start'
alias mysql.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.restart='mysql.stop && mysql.start'
alias redis.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist"
alias redis.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist"
alias redis.restart='redis.stop && redis.start'
alias memcached.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached.restart='memcached.stop && memcached.start'
#让快捷命令生效
echo "[[ -f ~/.bash_aliases ]] && . ~/.bash_aliases" >> ~/.bash_profile     
source ~/.bash_profile
#创建站点目录到主目录,方便快捷访问
ln -sfv /var/www ~/htdocs

参考资料:Install Nginx, PHP-FPM, MySQL and phpMyAdmin on OS X Mavericks using Homebrew

Node.js

使用 Homebrew 安装 Node.js:

$ brew update
$ brew install node

一般 Node modules 通常被安装在每个项目的本地文件夹 node_modules, 但有几个包推荐你安装在全局:

CoffeeScript、 Less、 Grunt 或 Gulp

$ npm install -g coffee-script
$ npm install -g less
$ npm install -g grunt-cli
$ npm install -g gulp

Npm 使用

安装包:

$ npm install <package>     # 安装在本地项目中
$ npm install -g <package>  # 安装在全局

安装包,并且将其保存你项目中的 package.json 文件:

$ npm install <package> --save

查看 npm 安装的内容:

$ npm list     # 本地
$ npm list -g  # 全局

查看过期的包(本地或全局):

$ npm outdated [-g]

更新全部或特别指定一个包:

$ npm update [<package>]

卸载包:

$ npm uninstall <package>

Java开发环境

下载 jdk:

设置 java_home 为 1.7:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)

使用 brew 来安装 ant、maven、ivy、forrest、springboot 等:

$ brew install https://raw.github.com/Homebrew/homebrew-versions/master/maven30.rb ant ivy apache-forrest  springboot

配置 ant、maven 和 ivy 仓库:

$ rm -rf ~/.ivy2/cache ~/.m2/repository
$ mkdir -p ~/.ivy2 ~/.m2
$ ln -s ~/app/repository/cache/  ~/.ivy2/cache
$ ln -s ~/app/repository/m2/  ~/.m2/repository

注意,这里我在 ~/app/repository 有两个目录,cache 用于存放 ivy 下载的文件,m2 用于存放 maven 的仓库。

Python与R开发环境配置篇

配置Python开发环境

首先通过brew,在iterm2中安装Python。

brew install python

检查Python是否安装成功:

Python -V

然后再创建一个专用目录,比如叫做:~/.virtualenvs,用于保存python的开发环境信息。

mkdir ~/.virtualenvs
cd ~/.virtualenvs

接下来,通过pip包(类似于Ruby中的gem、R中的cran,Python中的包管理机制),安装Python虚拟环境库virtualenv

pip install virtualenv

然后,假设我们要开发项目,创建一个该项目专用开发环境,假设命名为:myproject

virtualenv myproject

创建成功之后,我们会发现,在我们上一步创建的~/python目录下面就多了一个django/bin/python的目录,相关第三方包等内容以后都回下载在这里。我们只需要激活该环境即可:

source ~/.virtualenvs/myproject/bin/activate

如果此时,zsh与oh-my-zsh已经配置成功,iterm2会提醒我们,Python开发环境已经切换到myproject下来。

接下来,在该环境下,安装相关django等类库即可。

pip install django

更详细的可参考:

Python开发,既可以使用Texmate或者sublimetext,也可以使用PyCharm这一类Python IDE。

配置R开发环境

通过brew安装R语言之前,需要先下载xquartz

通过brew安装R:

brew install R

安装R语言桌面开发环境:

启动RStudio,在Console中输入以下命令。或者启动iTerm2,输入R, 然后输入以下命令。批量安装心理测量视图:

install.packages("ctv")
library("ctv")
install.views("Psychometrics") ##或者更新update.views("Psychometrics") 

更详细的参考文档:

如果你需要备份以上所有辛苦设置的Mac,或者在团队中共享配置,可以使用:Boxen

Apps

这里推荐的 apps 在开发者圈子内普遍评价不错,能便利的处理日常的开发和使用的任务。以下推荐分为四类:

Developer Tools

Productivity

Office Apps

Others

社交工具

虚拟机

virtualbox:开源虚拟机。Ruby社区一个极富想象力的项目Vagrant,参见:

vmware fusion:老牌虚拟机,收费商业软件。

中文输入法

一个较好的备选是又快又贴心的开源输入法鼠鬚管输入法。配置可参考:

備選是搜狗拼音: 搜狗词库更全,但占用资源略高。同样,可以同步词库等。

(完)
comments powered by Disqus
Powered by GitHub  &&  Jekyll | CC BY-NC-SA