由于对Windows的失望和对*nix系统的向往,外加对mac界面和产品外观的馋涎,终于下决心迁移到Mac,至今已经在Mac OS X环境下工作了一个月了,最大的心得是:windows是操作系统一般但软件牛逼,Mac正好相反,并不是说Mac的软件不好,只是优秀软件的基数和选择余地没有Windows平台那么多。不过随着这几年Apple的崛起,相信这种现状会逐步改善。话说Object-C在TIOBE上的排名一路飙升,发文当天已窜到第三,貌似又会成为年度最佳了。。。这个也是产生优秀软件的人才基础,呵呵。
【软件安装】
1. homebrew vs MacPorts
最后还是选择了homebrew,原因是前者会优先使用mac自带的库,而不是像MacPorts,全然不顾已有的东西,重新再装一套,不过没用过MacPorts也没多少发言权,而且google很多软件时也是同时支持使用这两种软件包管理工具来安装的,可惜两者不兼容,反正选一个就ok了。后面积累些经验再补充吧。
2. JavaHL
安装完eclipse的svn插件后会报JavaHL不存在的错误,这是因为创建默认设置为使用更加高效的JavaHL来与svn通信,每次都会找不到。如何安装?
其实mac自带有svn,只是版本较低,我用homebrew安装了一个新的,期间遇到不少问题:
参考 了Using Subclipse on OS/X with Homebrew文中的做法,貌似没起作用,后来想起来可能是安装过程中比较着急,以为已经装好了,被我中断掉了,于是重新再做了一次,结果到了步骤时homebrew警告说无法serf已经安装无法再次安装,除非先删除,于是按照提示先执行 brew rm serf,然后再装这次终于成果,也耐心等待安装完成,但安装好后突发发现下载svn是1.7.7,而且警告说:
Warning: Could not link subversion. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link subversion'
于是照做,执行brew link subversion,报了另个警告:
Linking /usr/local/Cellar/subversion/1.7.7... Warning: Could not link subversion. Unlinking...
Error: Could not symlink file: /usr/local/Cellar/subversion/1.7.7/bin/svnversion
Target /usr/local/bin/svnversion already exists. You may need to delete it.
To force the link and delete this file, do:
brew link --overwrite formula_name
To list all files that would be deleted:
brew link --overwrite --dry-run formula_name
于是看了下/usr/local/bin/svnversion,竟然指向了SCPlugin的svn:
svnversion -> /Library/Contextual Menu Items/SCFinderPlugin.plugin/Contents/Resources/SCPluginUIDaemon.app/Contents/bin/svnversion
试着svn --version下看看,果然显示1.6.5版本,这个烦人的SCPlugin(之前装过svn的这个插件,但在我的机器上不好用,弃之)竟然还阴魂不散。。。
按照官方文档,删除以下目录:
/Library/Contextual Menu Items/SCFinderPlugin.plugin
/Library/Receipts/SCPlugin.pkg
其实还应该删除/usr/local/bin/下与svn相关的link,比如svn,svnadmin,svndumpfilter,svnlook,svnsync,svnserve,svnversion,通过ls -l可以看到这些link都指向了SCPlugin插件相关的目录。
(顺便查了下几个OS X中几个目录的作用,Contextual Menu Items :附加的系统级关联菜单插件,如阿拉丁的解压缩关联菜单、iGetter的关联菜单。Receipts:安装过的.pkg安装包的替身,但不是.pkg安装包本身。例如系统升级或安装时的.pkg。或vpc安装时的.pkg包。 )
#简化命令的输入(网上有很多,个人觉得留些实用的就可以了)
alias ll='ls -al'
alias ..='cd ..'
alias ...='cd ../../../'
alias .4='cd ../../../../'
alias .5='cd ../../../../..'
alias h='history'
alias c='clear'
alias mve='mvn eclipse:eclipse'
alias mvec='mvn eclipse:clean'
alias mvc='mvn clean'
alias mvi='mvn clean install -Dmaven.test.skip'
alias mvd='mvn clean deploy -Dmaven.test.skip'