安装 Odoo 有很多种方式,或者是根本无需进行安装,这取决于你的用例。
本文旨在描述大部分的安装选项。
在线使用
在生产环境或测试使用Odoo最简便的方式。
安装包
适于测试Odoo、开发模块及用于通过额外的部署和维护工作来在长期生产环境使用。
源码安装
提供更强的灵活性:例如允许在同一个系统中运行多个Odoo版本。有益于开发模块,可用作生产部署的基础。
Docker
如果你经常使用docker来进行开发或部署,可使用获取官方docker基础镜像。
Odoo有两种不同的版本:社区版和企业版。使用企业版可以通过SaaS并获取仅限于企业版客户和合作伙伴的代码。社区版免费向所有人开放。
如果你在使用社区版并希望升级到企业版,请参考社区版升级到企业版 (源码安装除外)。
Demo
要快速了解Odoo, 可使用demo实例。这是仅供使用几小时的共享实例,可在不进行安装购买的情况下浏览及测试功能。
Demo实例无需本地安装,仅需通过浏览器访问即可。
SaaS
轻松开启, 由Odoo S.A.全权管理及进行迁移,Odoo的 SaaS提供私有实例并可免费开始使用。可用于发现和测试Odoo并进行无本地安装非代码自定义(即与Odoo应用商店中的自定义模块不相兼容)。
既可用于测试Odoo,也可供长期生产使用。
类似demo实例,SaaS实例无需本地安装,仅通过浏览器即可访问。
Odoo提供针对Windows、基于deb的发行版(Debian, Ubuntu, …)及基于RPM的发行版 (Fedora, CentOS, RHEL, …) 的安装包,包括社区版和企业版。
这些安装包自动安装(社区版的)所有依赖,但可能会很难进行最新版的更新。
带有所要求相关依赖的官方社区版安装包可通过nightly服务器获取。 社区版和企业版的安装包均可通过下载页面进行下载(必须要通过付费用户或合作伙伴账户登录才能下载企业版安装包)。
警告
在Windows 8中,你可能会看到标题为“Windows protected your PC”的警告。点击更多信息并继续运行。
Odoo会在安装的最后自动启动。
Debian/Ubuntu
Odoo 13.0的deb安装包当前支持Debian Buster, Ubuntu 18.04及以上版本。
Odoo需要有PostgreSQL服务才能正常运行。Odoo的deb包默认配置是使用在Odoo实例的相同主机上的PostgreSQL。以 root 用户执行如下命令来安装PostgreSQL服务:
apt-get install postgresql -y
要进行PDF报表的打印,必须要自己安装wkhtmltopdf: Debian仓库中的wkhtmltopdf版本无法支持页眉和页脚,因此不能直接用作依赖。推荐的版本是 0.12.5,可通过wkhtmltopdf的下载页面的存档版块进行获取。之前推荐的0.12.1版本是一个不错的替代。针对各种版本的更多详情以及各自的特殊情况可通过wiki页面进行了解。
Odoo S.A.提供一个可用于Debian和Ubuntu不同发行版的仓库。可通过以 root 执行如下命令来安装Odoo社区版:
wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
echo "deb http://nightly.odoo.com/13.0/nightly/deb/ ./" >> /etc/apt/sources.list.d/odoo.list
apt-get update && apt-get install odoo
然后可以通过常规的 apt-get upgrade
命令来保持安装为最新版本。
截至目前,还没有针对企业版的仓库。
作为上述仓库的替代方法,可通过如下方式下载deb安装包:
然后可以使用 gdebi
:
gdebi
或 dpkg
:
dpkg -i # 这步可能会由于缺少依赖而失败
apt-get install -f # 应该会安装所缺少的依赖
dpkg -i <path_to_installation_package>
这会将Odoo安装为一个服务、创建必要的PostgreSQL用户并自动启动服务。
警告
python3-xlwt Debian包在Debian Buster和Ubuntu 18.04中不存在。这个python模块在导出为xls 格式时需要用到。
如果需要这一功能,可以手动进行安装。一种方式是简单地通过下面的pip3命令来安装:
sudo pip3 install xlwt
警告
Debian9和Ubuntu中不提供针对python模块num2words的包。文本数量值在Odoo中不会进行渲染,使用l10n_mx_edi模块时会产生问题。
如果你需要这一功能,可以像下面这样安装该 python模块:
$ sudo pip3 install num2words
Fedora
Odoo 13.0的rpm包支持Fedora 26。截至2017年,CentOS还没有对Odoo 13.0的所要求最小Python版本(3.5)的支持。
译者注:CentOS 8中已添加了对 Python 3的默认支持
这里主要介绍linux安装教程
有两种获取Odoo源代码的方式:zip压缩包或通过git。
压缩包
社区版:
企业版:
Git
以下部分要求在电脑主安装了git,并且你已掌握了git 命令的基础知识。
社区版:
$ git clone https://github.com/odoo/odoo.git
译者注:可使用sudo git clone -b 13.0 --depth 1 https://github.com/odoo/odoo.git 来减少下载的代码量
企业版:(参见 版本部分进行获取)
$ git clone https://github.com/odoo/enterprise.git
企业版git仓库并不包含完整的Odoo源代码。它仅是一个附加插件的集合。主服务端代码在社区版中。运行企业版实际是将addons-path选项设置为企业版的文件夹并运行社区版服务。你需要同时克隆社区版和企业版来得到一个运行中的Odoo企业版安装。
Python
Odoo运行要求Python 3.5或更新的版本。如尚未安装Python 3请使用官方的包管理器来在你的电脑上下载并安装。
如果已经安装了Python 3,请确保版本为3.5或以上,因为更早的版本与Odoo并不兼容。
$ python3 --version
同时验证是否安装了相应版本的 pip。
$ pip3 --version
PostgreSQL
Odoo使用PostgreSQL来作为数据库管理系统。使用包管理器来下载并安装最新版本的PostgreSQL。
默认仅有用户postgres
,但Odoo禁止通过postgres
来进行连接,因此你需要新建一个PostgreSQL用户:
$ sudo -u postgres createuser -s $USER
$ createdb $USER
因为你的PostgreSQL用户名称与Unix登录名相同,可以无需密码来连接数据库。
依赖
Odoo的依赖在Odoo社区版根目录下的requirements.txt
文件中列出了所需的依赖。其中大部分都可以通过pip进行安装。
推荐不要将不同Odoo实例间或者与系统的python模块包混放在到一起。可以使用virtualenv来创建隔离的Python环境。
导航到Odoo社区安装位置的路径 (YourOdooCommunityPath
) 并对requirements文件运行pip命令:
$cd /YourOdooCommunityPath
/YourOdooCommunityPath$ pip3 install -r requirements.txt
警告
对于使用原生代码的库 (Pillow, lxml, greenlet, gevent, psycopg2,ldap),可能在pip在能够安装依赖之前需要安装开发工具和原生依赖。在针对Python, PostgreSQL, libxml2,libxslt, libevent, libsasl2和libldap2的-dev 或 -devel包中均可获取。
警告 一些依赖无法通过pip进行安装,要求手动安装。尤其是:
- 要支持页眉和页脚,wkhtmltopdf的安装版本必须为 0.12.5。查看wiki页面获取更多有关更多版本的详情。
对于从右向左的语言 (如阿拉伯语或希伯来语),需要使用 rtlcss
包:
$ sudo npm install -g rtlcss
运行Odoo
一旦配置了所有依赖, 可通过运行服务端命令行工具odoo-bin
来启动Odoo。它位于Odoo社区版所在的根目录下。
要进行服务端的配置,可以通过命令行参数或 配置文件进行指定。
企业版中必须将
enterprise
插件的路径添加addons-path
参数中。注意要将它放在addons-path
中的其它路径之前,这样才能正确地加载插件。
通常所需配置有:
通常运行服务端的方式为:
/YourOdooCommunityPath$ python3 odoo-bin --addons-path=addons,../mymodules --db-filter=mydb$
YourOdooCommunityPath
是 Odoo社区版安装的路径, ../mymodules
是带有附加插件的目录,而 mydb
是通过localhost:8069
提供服务的默认数据库。
如何通过Docker使用Odoo的完整文档中参见官方的Odoo docker镜像页面。
# 更新为国内apt源(以阿里云镜像为例)
sudo sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list
sudo sed -i "s/security.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list
sudo apt-get update
sudo adduser -system -home=/opt/odoo -group odoo -shell /bin/bash # 添加odoo用户和组
sudo apt-get install -y postgresql # 安装PostgreSQL数据库
sudo service postgresql start # 启动 PostgreSQL
# 创建数据库用户
sudo su - postgres
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
exit
sudo service postgresql restart
# 安装依赖
sudo apt-get install -y python3-pip
sudo apt-get install virtualenv
sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev python3-pypdf2
sudo su - odoo
git clone -b 13.0 --depth 1 https://github.com/odoo/odoo.git
virtualenv -p python3 odoo-env
source odoo-env/bin/activate
pip3 install -r odoo/requirements.txt
# 配置文件
sudo vim /etc/odoo-server.conf
# 示例配置内容
[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = False
db_port = False
db_name = odoo
db_user = odoo
db_password = False
logfile = /var/log/odoo/odoo-server.log
addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo/odoo/addons
# 设置权限
sudo chown odoo: /etc/odoo-server.conf
sudo chmod 640 /etc/odoo-server.conf
sudo mkdir /var/log/odoo
sudo chown odoo:root /var/log/odoo
# 安装 wkhmtltopdf(选择对应的 Ubuntu 版本)
wget "https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.xenial_amd64.deb" -O /tmp/wkhtml.deb
sudo dpkg -i /tmp/wkhtml.deb # 忽略此处报错,直接执行下一步
sudo apt-get -fy install
# 设置服务启动
vi /etc/systemd/system/odoo13.service
# 内容
[Unit]
Description=Odoo13
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo13
PermissionsStartOnly=true
User=odoo
Group=odoo
WorkingDirectory=/opt/odoo
Environment=/opt/odoo/odoo-env/bin/activate
ExecStart=/opt/odoo/odoo-env/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo-server.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
# 启动服务
sudo systemctl start odoo13