ubuntu源码安装Odoo

序言:时间是我们最宝贵的财富,珍惜手上的每个时分

Odoo具有非常多的安装方式,除了我最爱用的 apt-get install,我们还可以使用git拉取Odoo源码进行安装。

本次示例于ubuntu20.04 Desktop上进行操作,理论上在ubuntu14.04之后都可以用此操作。

目录

1.准备工作

1.1更换国内源

1.2更新软件包

1.3添加odoo用户

1.4安装git

1.5安装npm

1.6安装python

1.7安装postgres

2.安装Odoo

2.1克隆代码

2.2下载Odoo的python依赖

[2.3 Odoo.conf设置](#2.3 Odoo.conf设置)

2.4尝试启动Odoo

[2.5 odoo.service](#2.5 odoo.service)


1.准备工作

正式安装Odoo前,我们需要做如下准备工作

1.1更换国内源

将apt源换成阿里云(其他的国内源也行)

bash 复制代码
vi /etc/apt/sources.list

将文件内容替换为:
eb http://mirrors.aliyun.com/ubuntu/ focal main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse

替换后的样子

1.2更新软件包

输入以下内容即可

bash 复制代码
apt-get update

1.3添加odoo用户

我们需要一个专门的odoo用户,运行odoo服务(虽然我很想在root下运行,但是由于postgres的安全原因,是不允许的,实际上我们可以直接在postgres用户下运行,但是不推荐)

输入如下命令即可新建odoo用户

bash 复制代码
adduser odoo

依据提示输入所有内容

用户新建成功后,需要修改权限

bash 复制代码
vi /etc/sudoers  修改odoo用户权限

新增odoo为sudoer

1.4安装git

输入如下命令安装git

bash 复制代码
sudo apt-get install git

1.5安装npm

输入如下命令安装npm

bash 复制代码
sudo apt-get install -y npm

1.6安装python

输入如下命令安装python

bash 复制代码
sudo apt-get install -y python3-pip

需要注意的是odoo与python对应的版本

1.7安装postgres

运行如下命令安装postgres

bash 复制代码
sudo apt-get install -y postgresql

安装完成后还需要新建postgres 的odoo数据库用户

bash 复制代码
su postgres  #	切换到postgres
psql #进入数据库的shell
create_role odoo superuser login password '123456';  #创建数据的 odoo用户,密码是123456

输入完成后回车,看到 CREATE ROLE 字样 即为数据库用户创建成功 。

2.安装Odoo

做完如上操作,我们终于可以开始安装Odoo了。

2.1克隆代码

进入odoo主目录(你可以选择任意目录)

bash 复制代码
cd /home/odoo

选择你想要的版本进行克隆,此处是odoo16,也可以改为odoo17 或者 odoo15。按自己需要操作即可

bash 复制代码
git clone https://github.com/odoo/odoo.git odoo16 -b 16.0 --depth=1

2.2下载Odoo的python依赖

进入git 克隆下来的odoo目录,当前示范的目录是 /home/odoo/odoo16,该目录下有requirement.txt文件,输入如下指令一键安装依赖。

bash 复制代码
pip3 install -r requirements.txt -i https://pypi.doubanio.com/simple //一键安装odoo依赖包

如果一键安装依赖报错,尝试手动升级pip 或者手动安装python库

bash 复制代码
pip install --upgrade pip
sudo apt-get install libpq-dev
sudo apt-get install libldap2-dev libsasl2-dev
sudo apt-get install libpq-dev
sudo apt-get install libpq-dev

2.3 Odoo.conf设置

在/home/odoo/odoo16文件夹下新建一个odoo.conf文件

注意:db_password 为 安装postgres时创建的odoo用户的password

2.4尝试启动Odoo

bash 复制代码
cd /home/odoo/odoo16
python3 odoo-bin  -c odoo.conf#启动odoo

如果一切正常,可以在控制台上看到如下界面

浏览器访问localhost:8069,也可以看到内容。

2.5 odoo.service

如果运行成功,我们还需最后一步:创建 odoo.service,方便操作与运行。

创建一个名为odoo.service的文件,将其放在/etc/systemd/system/目录下

bash 复制代码
sudo touch /etc/systemd/system/odoo.service
vim /etc/systemd/system/odoo.service

文件内容

bash 复制代码
[Unit]
Description=Odoo Service
After=network.target

[Service]
User=odoo
Group=odoo
WorkingDirectory=/home/odoo/odoo16
ExecStart=/home/odoo/odoo16/odoo-bin -c /home/odoo/odoo16/odoo.conf
Restart=always

[Install]
WantedBy=multi-user.target

注意:Odoo文件夹的位置不要写错了

继续输入如下内容,将odoo服务加入系统

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable odoo.service

干完如上内容后,可以使用以下命令来启动、停止或重启Odoo服务

bash 复制代码
sudo service odoo start

sudo service odoo stop

sudo service odoo restart

完结,撒花

qq:543127346 (穆尘)

相关推荐
进击的丸子几秒前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
字节逆旅11 小时前
ubuntu应用深度守护
ubuntu
甲鱼92920 小时前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
Johny_Zhao1 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1233 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑3 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件3 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒3 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号3 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash4 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)