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下载源码:

准备工作

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中所有依赖项:

官方文档中还给出了阿拉伯语等从右往左书写的语言支持包,是一个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的源码安装和启动探索完毕。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容