3 Odoo的安装和配置
Odoo项目的github地址是 https://github.com/odoo/odoo 。我们可以看到这个项目非常活跃,下面的内容都基于Odoo8。推荐使用github的最新版本。
常规的安装就是到 Odoo的github 地址那里下载源码,然后运行:
sudo python setup.py install
安装之,当然Odoo框架稍微复杂一点,这么简单处理一般是不会安装成功的,下面就一些额外的操作做出说明。
首先强调第一个问题: 注意 ,在Ubuntu下,下载下的源码不要放在有中文名字的目录下面了,目前还不支持中文目录,包括桌面文件夹。
接下来我们git clone 下Odoo的源码,然后python-dev build-essential 是一般都要安装的,推荐先用apt-get安装上。
然后是pip工具要安装上去:
sudo apt-get install python-pip
然后运行
sudo pip install -U pip
来将pip升级到最新的工具。
setuptools模块应该通过pip也安装上去了,不太确定,推荐用pip安装一下,顺便也确保升级到最新的版本。
sudo pip install -U setuptools
3.1 PostgreSQL数据库
PostgreSQL是很有名的一个开源数据库,最初由加州大学伯克利分校的计算机系开发,其和sqlite3最大的区别就是其采用了client/server模型,Odoo搭建在PostgreSQL基础之上了,也继承了这种client/server模型。Odoo对PostgreSQL数据库的版本号要求不是很严格,用最新的也是可以的。
PostgreSQL数据库在ubuntu下安装是很方便的,就用apt-get简单安装即可。
sudo apt-get install postgresql
但是这样安装之后,你需要牢记一点的是,新安装的PostgreSQL数据库还只有 postgres 这个用户有新建role(或说用户)和新建数据库的权限。你需要通过postgres这个用户来执行createuser命令才能顺利创建一个新的用户。
sudo -u postgres createuser $USER
如果某个用户不存在,那么PostgreSQL将会报错:
createdb: could not connect to database template1: FATAL: role "wanze" does not exist
你还可以通过postgres创建一个数据库:
sudo -u postgres createdb dbname
如果你的用户名已经创建了,然后这个dbname也已经创建了,那么你就可以用psql命令行登入这个数据库来进行相关操作了。不过Odoo框架要求你这个用户还具有可以创建数据库的权限。这需要你如下这样去做:
sudo -u postgres psql postgres
ALTER USER wanze CREATEDB;
首先是用postgres用户身份登入postgres这个数据库,这个数据库放着PostgreSQL的一些配置信息。然后使用SQL语句 ALTER USER wanze CREATEDB;
这样你的用户就有了创建数据库的权限了,这块内容参考了 这个网页 。
如果系统提示你没有 .psql_history
这个文件,那么简单的touch一下即可。
3.2 Ubuntu14.04下可能缺失的软件包
这些缺失的软件包主要和一些依赖的python模块有关。也就是如果使用whell技术封装的whl包可能是不需要安装下述的这些软件包了,不过最好还是都确保安装上吧。
关于python-ldap 模块的安装参考了 这个网页 ,请确保下面两个软件包都安装了(否则会提示找不到lber.h错误):
sudo apt-get install libldap2-dev
sudo apt-get install libsasl2-dev
关于psycopg2模块请确保下面软件包安装了:
sudo apt-get install libpq-dev
还有这几个软件包确保安装了,其中libxml2和lxml模块有关。
sudo apt-get install libxml2-dev
sudo apt-get install libxslt1-dev
pillow模块需要安装下面这个软件包:
sudo apt-get install libjpeg-dev
随着系统的变动,你可能还缺少某些软件包,这个就要具体情况具体分析了。
3.3 网页显示node.js方面
按照官方文档的描述,ubuntu14.04 nodejs已经安装了,只需要通过npm安装 less 和 less-plugin-clean-css ,然后给nodejs创建一个别名链接 node 即可。
sudo apt-get install -y npm
sudo npm install -g less less-plugin-clean-css
sudo ln -s /usr/bin/nodejs /usr/bin/node
然后ubuntu小于14.04的版本还额外需要手工安装nodejs。
3.4 其他问题
- pydot因为googlecode不能用了,你需要用pip命令单独install pydot将其安装好。或者到 github这里下载之。
- 可能有其他模块因为网络问题或者其他问题下载失败,你可以考虑用pip命令来安装或者到github下载对一个模块的源码来安装之。
- PostgreSQL的连接配置可能会出问题,修改
/etc/postgresql/.../main/pg_hba.conf
文件,看到
# "local" is for Unix domain socket connections only
local all all peer
注意前面的postgres用户那一行绝对不要动,然后这里指本地连接,一般设置为peer,或者干脆设置为trust。
然后重启PostgreSQL服务器:
sudo service postgresql restart
3.5 通过命令行运行时的配置
在源码包目录下运行odoo.py文件即可启动Odoo,下面是一切其他参数的配置。
3.5.1 –xmlrpc-port=8888
设置网页显示的端口号,默认是8069,但可能会出于某些原因被占用了。
3.5.2 –addons-path=addons
设置插件addons的路径,默认会把源码addons文件夹加上去,但可能会出错。这里设置为源码的addons文件夹。
设置多个addons路径语法如下: --addons-path=addons, myaddons
,这可以用于加载你自己定义的某些模块。
上面两个参数配置是最常用的,我就简单设置这两个参数就可以运行Odoo了:
./odoo.py --addons-path=addons --xmlrpc-port=8888
3.5.3 数据库的一些配置
这一块推荐先不设置,就使用默认的 $USER
,然后创建数据库进入Odoo之后再配置。除非读者对PostgreSQL非常熟悉之后,再考虑更改这些配置(因为本地localhost登录还有用户权限还有连接方式上PostgreSQL里面还有很多内容,要小心啊。)。
- –db_user=
这个参数用于指定Odoo框架数据库的user,又是你不想使用默认的 $USER
,那么可以加上这个参数。
- –database=
这个参数用于指定具体Odoo框架使用的数据库,如上你不想使用默认的 $USER
,那么此时最好也为你想要的新用户名创建一个新的数据库。
- –db_password=
这个参数用于指定登录某个数据库时的密码。
3.5.4 –save
保存目前你的运行命令行配置,下次就可以简单使用./odoo.py来运行了。具体配置文件是主文件夹的 .openerp_serverrc
。有兴趣的可以打开看一下。
3.6 将安装环境封装起来
我们在开发的时候,最好把所有依赖的python模块包版本号都固定起来,这可以通过pyhon的virtualenv模块来实现。安装virtualenv模块是:
sudo apt-get install python-virtualenv
sudo pip install -U virtualenv
最好如上将virtualenv升级到最新的版本。
然后我们将Odoo框架的源码加入进去,然后再安装一次。这里不赘述了。安装成功之后,我们使用pip freeeze命令来将目前的python模块包版本号环境输出出来:
pip freeze > requirements.txt
这样下次我们可以直接 pip install -r requirements.txt
来将依赖的python模块包刷一遍。但这还不够好。利用最新的wheel技术,我们可以将这些依赖的python模块包打包出来,从而可以实现不依赖网络的更快速的安装。
首先是安装wheel模块:
pip install wheel
然后:
pip wheel -r requirements.txt
注意将requirements.txt中的odoo版本删除,然后将pychart改成:
http://download.gna.org/pychart/PyChart-1.39.tar.gz#egg=PyChart
命令行执行完之后看到wheelhouse文件夹里面有一大堆whl文件,这就是所谓的pip模块安装包,其安装不依赖任何系统的工具,如果你有python环境,然后已经安装了pip工具,然后运行:
sudo pip install *.whl
就可以把所有依赖的python模块安装上去了,这个安装过程也不依赖于网络。
借助于virtualenv工具和wheel工具,你可以快速对你的开发环境进行再更新。比如你想升级你的开发环境的某个模块了,将其升级之后测试没有问题,就可以将其pip freeeze出来,然后pip wheel出来,这样就可以快速在其他机器上部署这个开发环境了。有时可能有些模块的某些版本号wheel不出来,最好将这个模块版本号倒退。
3.7 文档编译
这部分是可选的,就是编译文档。需要通过pip安装sphinx和sphinx-patchqueue,然后就可以make html 和latex了,通过latex就可以make出pdf文档了,这方便在本机上查阅资料。
pip install sphinx
sudo pip install sphinx
sudo pip install sphinx-patchqueue
make html
make latex