「如何让一部全新的 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隐藏文件的命令
Finder > 显示
Finder > 偏好设置
从 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/
查看。以下为其中的命令列表:
包管理工具可以让你安装和更新程序变得更方便,目前在 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 。
安装一个包,可以简单的运行:
$ brew install <package_name>
更新 Homebrew 在服务器端上的包目录:
$ brew update
查看你的包是否需要更新:
$ brew outdated
更新包:
$ brew upgrade <package_name>
Homebrew 将会把老版本的包缓存下来,以便当你想回滚至旧版本时使用。但这是比较少使用的情况,当你想清理旧版本的包缓存时,可以运行:
$ brew cleanup
查看你安装过的包列表(包括版本号):
$ brew list --versions
你已经感受到了使用 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是一个管理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来启动了,如下所示:
有些 插件 可以让 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
$ 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 会很方便。
作为一名开发者,我们常常花上很多时间在终端 上,如同武士的剑,一出手便知高低。所以让我们安装 Mac 上最强大的终端 iTerm2 吧!写码除虫,居家必备。
在 Finder 中,将 iTerm 拖拽进入 Application 文件夹中。然后,你可以在 Launchpad 中启动 iTerm。
command + option + i
快速显示和隐藏 iTerm我们将安装 zsh
,其拓展功能和主题将由 oh-my-zsh
提供。其中Env.sh
文件用于维护别名(aliases),输出(exports)和路径改变(path changes)等等,以免影响 ~/.zshrc
。
使用 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 才能生效。
$ brew install ctags macvim --env-std --override-system-vim
作为一名开发者怎么可能没有 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方式,可以参考此 链接.
创建一个新文件 ~/.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
我们将使用 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包安装)
$ brew install phpmyadmin
添加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
brew install composer
#检查一下情况
composer --version
Composer version 1.0.0-alpha8 2014-01-06 18:39:59
redis memcached这些软件brew 已经自动依赖安装上,如果想开机自动启动,或者查看使用说明
brew info redis
即可。另外,composer的中文文档:猛戳这里
$ 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
使用 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 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>
下载 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 的仓库。
首先通过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。
通过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 在开发者圈子内普遍评价不错,能便利的处理日常的开发和使用的任务。以下推荐分为四类:
1Password : 跨平台的密码管理工具
Alfred 2 : 搜索工具,强烈建议更新至 power pack,可以参考 借助 Alfred 2 的 Workflows 功能可以做哪些好玩的事情?
AppCleaner: 应用程序卸载工具
Dropbox: 文件同步工具
Reeder:RSS 阅读工具
Pocket : 稍后阅读工具
Spectacle : 让窗口成比例的显示,在写代码调试的时候很方便
Unarchiver: 支持多种格式(包括 windows下的格式)的压缩/解压缩工具
OminiFocus :时间管理工具
Mou:Markdown 编辑器,国人出品
command
,将能查看当前程序的快捷键virtualbox:开源虚拟机。Ruby社区一个极富想象力的项目Vagrant,参见:
vmware fusion:老牌虚拟机,收费商业软件。
一个较好的备选是又快又贴心的开源输入法鼠鬚管输入法。配置可参考:
備選是搜狗拼音: 搜狗词库更全,但占用资源略高。同样,可以同步词库等。
(完)