Mac下利用homebrew部署python+mysql(postgresql)开发环境

比较windows,mac和linux三大系统的软件安装管理。我还是最喜欢linux的软件安装方式,由APT之类的系统统一管理安装升级。Mac虽然号称安装最简单,不过管理起来还是跟windows一样麻烦的不行:一方面下了安装文件备份,不过软件自动升级后,这些安装软件也没用。所以windows上出现了软件管家之类的软件来统一管理。Mac下出现了Mac App Store。不过还是觉得linux最方便。(觉得Linux其实也最适合有App Store这样的平台出现……) Mac出身于unix,跟Linux有亲戚关系,也可以实现类似的软件包管理系统。 目前最流行的是MacPorts。好吧,这个我没用过,我道听途说来的……MacPorts的软件很新,不过需要完全基于自己系统的依赖(一般都装在/opt/local里)。这样浪费了很多空间,因为Mac下就预装了很多软件,包含了不少库。据说MacPorts开发现在很少有人在维护…… 而homebrew可以有效的基于自己系统已有的库来建立依赖。它托管在github上,虽然软件数量,更新什么的没有Macports及时,不过会发展的越来越好。 像我这样对系统有些洁癖的孩子来说,homebrew真是很赞的东西。 好吧,其实我是看这篇文章,如果想了解更多关于homebrew和MacPorts的对比的话,就看看这篇文章吧。 http://blog.jjgod.org/2009/12/21/homebrew-package-management/ 因为本文主要叙述如何部署开发环境,所以稍微赘述一下homebrew的安装。(你也可以根据官方文档上叙述的方法安装) 1、homebrew安装: (1)homebrew希望在没有sudo的环境下工作(Homebrew is designed to work without using sudo.)所以首先对/usr/local/这个文件夹赋权限。(homebrew的软件是安装在这里的)
sudo chown -R `whoami` /usr/local 
(2)我们通过git来安装,所以需要你先安装git-osx-installer。 (3)然后:
cd /usr/local
git init
git remote add origin git://github.com/mxcl/homebrew.git
git pull origin master
(4)需要配置一下环境变量: 在你的home文件夹里添加或编辑.bash_profile(这是一个隐藏文件,你更改一下查看选项或许能看到)。 或者直接命令:
vi ~/.bash_profile
加入一下内容:
# Setting PATH for Homebrew
PATH="/usr/local/bin:${PATH}"
export PATH
Ok,这样home就装好了。下面是基本使用方法: (1)brew search 这个命令用来搜索可以安装的软件,例如:
$brew search rar
unrar gnu-scientific-library
(2)brew install [software_name] 这个用来安装软件,例如:
$ brew install unrar
==> Downloading http://www.rarlab.com/rar/unrarsrc-3.9.10.tar.gz
######################################################################## 100.0%
==> make --makefile makefile.unix
/usr/local/Cellar/unrar/3.9.10: 3 files, 272K, built in 6 seconds
(3)brew list 用来列出你所安装的软件,例如:
$brew list
distribute postgresql readline unrar
gdbm ossp-uuid python sqlite wget
(4)brew uninstall [softeware_name] 这个用来卸载,例如:
$ brew uninstall unrar
Uninstalling /usr/local/Cellar/unrar/3.9.10...
(5)brew update 这个用来更新,例如:
$ brew update
remote: Counting objects: 56, done.
remote: Compressing objects: 100% (43/43), done.
remote: Total 45 (delta 35), reused 4 (delta 2)
Unpacking objects: 100% (45/45), done.
From http://github.com/mxcl/homebrew
* branch master -> FETCH_HEAD
Updated Homebrew from 57bd5a22 to a9a48ed7.
==> The following formulae are new:
dcfldd
==> The following formulae were updated:
afflib aria2 drush libevent llvm mpc mpd parallel
No external commands were updated.
(6) brew info [soft_name] 可以用这个命令来查看一些软件的基本帮助文档。
brew info mysql
2、安装python mac下预装了python2.5和python2.6 homebrew可以安装python2.7 直接输入:
brew install python
3、新装python的site-packge下什么组件都没,所以需要安装python必备组件——setuptools setuptools被包含在distribute中,所以直接安装distribute就可以了。
brew install brew distribute
4、安装postgresql 为何要先说安装postgresql,额……因为homebrew安装mysql有问题的说……所以我是从官方下二进制包安装的……所以这个在下一篇文章说。 安装postgresql倒是一路顺畅,不用怎么太详细说明。(FYI:http://blog.lxneng.com/?p=184
brew install postgresql
安装好之后会出现一段初始化配置文档。如果你之后想再看的话,可以用brew info postgresql 来查看。 初始化数据库:
initdb /usr/local/var/postgres
启动数据库:
Erics-MacBook:~ eric$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start &
创建一个数据库:
createdb mydb
打开数据库:
psql mydb
5、安装postgresql的python驱动-psycopg 有好几款驱动(FYI:http://wiki.postgresql.org/wiki/Python ),据说这款是最流行的…… 由此下载:http://initd.org/psycopg/ 解压之后,用setup.py安装即可:
python setup.py install
然后验证一下能否import:
python -c "import psycopg2"
不报错就Ok啦! 6、安装Mysql 行文至此,其实已经差不多的说。不过我使用homebrew的主要原因就是因为使用mysql官方安装文件失败。至今天有三天了,终于解决了这个问题。所以我想记录下来,供他人参考。 在homebrew安装mysql:
brew install mysql
安装成功后,初始化数据库却失败……
$ mysql_install_db
Installing MySQL system tables...
ERROR: 1004  Can't create file '/var/folders/+h/+hAXmfM0H4ar10FJcbOHXE+++TI/-Tmp-/#sql15f4a_1_0.frm' (errno: 9)
110110 15:34:24 [ERROR] Aborting
110110 15:34:24 [Note] /usr/local/Cellar/mysql/5.1.54/libexec/mysqld: Shutdown complete
之后也有加sudo成功导入,不过root却连不上。然后使用mysql_safe --skip-grant&连上后,查看mysql.user表,却没有用户存在。 之后有多次尝试,却一直出现 can't find ./mysql/db.fm 之类的错误。 总之就是一直不能导入初始化数据库。我在homebrew上询问了,也一直没有回复。 不过在python下import MySQLdb却正常……之所以说它正常,是因为我用官方安装的mysql,在python一直import错误。 好吧这个我在下篇文章开始讲吧。