最近SF开展了「统一开发平台为Mac」的运动,我也从Ubuntu切换到了Mac OS X。本文记录一下如何在Mac OS
X下安装CoffeeScript环境,以备以后参考。希望对别人也有用。
Mac OS X下安装CoffeeScript的方法和Ubuntu一样,使用npm
安装:
sudo npm install coffee-script
全文完
呃,短了点,但是真相就是如此,有了npm
,在Mac OS X上安装CoffeeScript环境就是这么简单。
Node
等等,我说了“有了npm”,如果没有npm怎么办?
还能怎么办?装呗。Node自带npm,所以只要安装Node就可以了。
Mac OS X下安装Node,可以使用node官网提供的pkg。不过我听说Mac
OS X下用homebrew装软件很有逼格方便,所以选择使用homebrew安装:
brew install node
brew
好吧,其实需要安装了Homebrew才有brew
命令。事实上安装配置Homebrew还有点小麻烦,所以这里顺便也记录一下。
Homebrew是Mac OS X下的包管理器,当然不是官方的,是有爱的开发者自己捣鼓的,基本算是Mac OS
X下包管理的事实标准了,差不多相当于Ubuntu下的apt。
安装Homebrew很简单,同样只需要一条命令:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
等等,其实没有那么简单,因为Homebrew依赖Xcode……
是的,为了使用Homebrew,你需要下载安装好几G的Xcode!当然,大部分使用Mac OS X的开发者应该已经安装了Xcode,不过像我这样没玩过Objective C的人就……
其实Homebrew只是需要Xcode内置的gcc而已,并不需要Xcode。所以,如果不用Xcode开发的话,只需要安装Xcode命令行工具即可,这个工具可以在Apple开发者网站上下载。
下载的话,需要注册Apple开发者,注册是免费的。如果你不愿意填那几个无聊的表格的话,你可以自己编译一个gcc——反正homebrew只是需要gcc而已。
等等,编译gcc好像需要Xcode,这不是死循环嘛!坑爹!
好在有好心人帮我们编译好了,我们只要下载安装下就可以了。
好了,安装好Xcode或Xcode命令行工具或osx-gcc后,再运行上面的那行命令就可以成功安装homebrew了。
对了,如果你brew的软件需要X11环境的话,你还需要安装XQuartz才行。我只用brew安装命令行工具,所以就没装这个。
Fink和macports
在Node wiki的安装指南上还看到两个东东,Fink和macports,这是神马?
了解了一下,这是Mac OS X 上的另外两个包管理器。
MacPorts
MacPorts,原本叫DarwinPorts(Darwin是Apple发布的一个开源的操作系统,是Mac OS X的基础。粗略地说,Mac OS X去掉Cocoa、Quartz、图形用户界面以及一堆驱动就是Darwin了)。MacPorts是2002年开始的项目,可谓历史悠久。
用MacPorts安装软件是这样的:
sudo port install packagename
MacPorts和Homebrew的区别主要是:
- MacPorts的软件依赖是自己搞一套,比如Python、Ruby什么的都自己弄一套,理由是不会因为系统自带的版本太老旧而出问题;Homebrew的哲学则是,既然系统预装了,为什么不用呢?
- MacPorts认为
/usr/local
应该留给用户自行编译安装的软件,所以用macports安装的软件都放在/opt/local/
。Homebrew采取了简单的方案,将软件安装到/usr/local
。 - MacPorts 使用 TCL 编写,Homebrew 使用 Ruby。
Fink
Fink的历史也不短,是2000年开始的项目。简单地来说Fink是把Debian/Ubuntu下的apt移植到Mac OS X和Darwin下。所以它理所当然地使用了Perl语言。
使用fink安装和删除软件:
fink install nedit
fink remove nedit
软件都安装在/sw
目录下,单搞一个目录的理由和MacPorts类似。
因为是移植apt,所以fink提供的都是二进制安装包,(这就意味着软件包的更新需要等志愿者打包……)而MacPorts和homebrew默认是编译安装。这也导致fink的包通常而言会比较旧一点。从DIY的角度,给HomeBrew写条Formula真是so easy,MacPorts因为用TCL,所以写起来啰苏一点,而fink打包就麻烦得多了。
呃,好像跑题了? 话说我本来只是想装一些CoffeeScript的说~ 怎么一个早上就这么不知不觉地过去了……这难道就是传说中的「结构性拖延」?