2020-12-07 odoo探索日志:安装启动

CPU在进行多任务处理时,会进入中断模式,将当前任务压栈,为优先级更高的任务腾出资源。刚定下的中等规模网站架构实践计划就要进入中断模式,先研究一个更贴近需求的开源ERP系统odoo,待时机成熟,我想odoo的部署和改进也离不开集群计算资源的支撑,那时候回头再续前缘。
之前也接触过国内的优秀ERP服务商,很佩服他们能凭一个软件起家,发展到支撑起上万人的公司规模和服务百千万数量级的企业。但跟他们合作总有被绑架的感觉,特别是近些年这些做大了的信息化企业都开始推进云应用,SaaS大行其道,大有坐庄收租的倾向,标准由他们制定,数据都上了他们的云,想有个性化的订制需要付出很大代价。没有人喜欢被制约,这也就是开源社区人丁兴旺的原因。
odoo的软件许可接近免费,其可控的实施成本主要体现了咨询实施服务的价值,开源是以甲方为本,咨询和实施的价值又充分尊重了技术人员,是当今云垄断下的一股清流。马克思也没有想到,开源社区才是人类最早的共产主义理想国。
对odoo的研究计划,无非分五个层次:

  1. 安装部署和维护
  2. 熟悉已有的应用和插件
  3. 研究其软件架构和源码
  4. 在其基础上进行定制开发
  5. 集群化改造

odoo14的官方文档中有对安装、使用、二次开发等的详细介绍,我将基于该文档进行实践,根据实践过程对原英文文档做选择性翻译和补充相关细节。

安装Odoo

四种安装途径

odoo的安装有四种途径,一种是通过安装包安装,一种是通过脚本在线安装,一种是docker部署,一种是从源码安装。为了加深对odoo的了解,选择从源码安装。
先介绍一下Odoo的两个发行版:社区版和企业版。使用企业版可以获得Odoo官方的服务支持,且对企业版源码的使用和修改仅限于企业用户和合作伙伴。而社区版则没有任何限制,对任何人都是公开自由的。我选择Linux下的社区版作为研究对象。

创建系统用户

首先为Odoo创建一个系统用户,并建立用户目录:

  • useradd -m -g sudo -s /bin/bash odoo
    该命令创建'odoo' 用户;-m参数指定创建用户目录;-g sudo加入sudo用户组,授予sudo权限;-s参数默认shell到bash。
  • passwd odoo,为odoo用户设置密码。

创建odoo用户后,切换为该用户,并切换到主目录。

从国内镜像源下载镜像

创建源码下载的目录并切换到该目录下:

  • mkdir ~/odoo-dev

通过Git工具获取源码,若没有安装Git工具,可先安装Git:

  • apt install git

通过Git拉取源码到本地,git下载时选用国内的镜像源:gitee极速下载。在该网站搜索odoo,可以找到其镜像地址,复制该地址,并通过git下载源码:

  • git clone https://gitee.com/mirrors/odoo.git -b 14.0 --depth=1

准备工作

Python

Odoo14运行环境需要Python3.6或更高版本。可通过:

  • python3 --version
  • pip3 --version

查看版本是否符合要求,若版本过低,请先升级python版本。

PostgreSQL数据库

Odoo使用Postgres数据库,通过:

  • sudo apt install postgresql postgresql-client
    安装数据库和客户端。

Postgres数据库在Ubuntu下有一个图形化管理工具:PGAdmin III,也可一并安装:

  • sudo apt install pgadmin3

postgres数据库的默认用户是postgres,类似于mssql的su用户。Odoo禁止使用该用户直接连接数据库,因此需要新建一个数据库用户,你可以选择在终端使用指令创建用户:

  • sudo -u postgres createuser -s odoo
  • createdb odoo

也可以选择通过pgadmin3可视化地创建用户。
因为odoo用户与系统当前用户一致,所以免密码连接数据库。

依赖项安装

开发环境下需要安装一些Python的依赖包,官网提供了一键安装的指令:

  • sudo apt install python3-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev libpq-dev

接着通过virtualenv建立一个Python虚拟环境:

  • pip3 install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
    使用国内镜像源安装virtualenv,安装后需要将virtualenv所在路径添加到用户的环境变量下:
  • sudo gedit ~/.bashrc
    在最后添加一行命令:**export PATH=$PATH:/home/odoo/.local/bin **,该目录需根据你安装virtualenv的具体目录而定。编辑完环境变量文件,通过source导入:
  • source ~/.bashrc
    这样就在终端直接使用virtualenv指令了。

切换到odoo-dev目录下,创建python虚拟环境,并激活虚拟环境:

  • virtualenv venv
  • source venv/bin/activate

在该虚拟环境下安装python打包工具setuptools和wheel,并安装requirements.txt中所有依赖项:

  • pip3 install setuptools wheel -i https://pypi.tuna.tsinghua.edu.cn/simple
  • pip3 install -r odoo/requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

官方文档中还给出了阿拉伯语等从右往左书写的语言支持包,是一个rtlcss的js工具,可通过npm来安装。我们这里虽然不用安装这个rtlcss,但安装npm用来管理js库还是有必要的。npm在新版的nodejs中是自带的,所以只需要安装nodejs即可。apt源中并没有包含新版的nodejs,需要到官网下载安装包进行安装,并在bashrc中配置环境变量,将nodejs的bin目录export给PATH。

运行Odoo

当数据库、依赖包等都安装和配置好后,就可以运行Odoo。可以通过命令行参数的方式启动Odoo,也可以将这些命令行参数写进配置文件,通过配置文件启动。命令行参数中的--前缀在配置文件中不需要,连字符-在配置文件中变为_,例如--db-template的命令行参数在配置文件中写为db_template。也有一些例外。
由于前面已经创建了odoo数据库,该数据库的所有者也是当前用户odoo,可以不用用户名和密码参数,仅指定该数据库参数即可启动:-d odoo。首次启动odoo,可通过:-i base参数向数据库中导入初始数据,以后再启动odoo则无需该参数(关于各种参数的含义,可参考原始文档)。切换到~/odoo-dev/odoo目录下,执行如下指令:

  • python3 odoo-bin -d odoo -i base

服务启动成功后,可通过浏览器访问默认端口localhost:8069,可看到登录画面。默认用户名和密码是都admin,登录后在用户preference(首选项)中更改密码。
odoo默认语言是英文,可添加中文语言包。在用户首选项中,可以看到语言栏,右侧有一个地球的小按钮,点进去后选择中文简体包,并切换到中文即可。
odoo启动时可以添加一个-s(--save)参数,会将命令行参数写入默认的配置文件~/.odoorc中。以后再次启动odoo时就无需输入命令行参数。
至此,odoo的源码安装和启动探索完毕。

你可能感兴趣的:(2020-12-07 odoo探索日志:安装启动)