当前位置: 首页 > news >正文

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.4尝试启动Odoo

2.5 odoo.service


1.准备工作

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

1.1更换国内源

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

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更新软件包

        输入以下内容即可

apt-get update

         1.3添加odoo用户

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

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

adduser odoo

        依据提示输入所有内容

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

vi /etc/sudoers  修改odoo用户权限

        新增odoo为sudoer

 1.4安装git

        输入如下命令安装git

sudo apt-get install git

1.5安装npm

输入如下命令安装npm

sudo apt-get install -y npm

1.6安装python

输入如下命令安装python

sudo apt-get install -y python3-pip

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

1.7安装postgres

        运行如下命令安装postgres

sudo apt-get install -y postgresql

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

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

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

2.安装Odoo

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

2.1克隆代码

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

cd /home/odoo

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

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文件,输入如下指令一键安装依赖。

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

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

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

cd /home/odoo/odoo16
python3 odoo-bin  -c odoo.conf#启动odoo

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

              

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

2.5 odoo.service

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

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

sudo touch /etc/systemd/system/odoo.service
vim /etc/systemd/system/odoo.service

        文件内容

[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服务加入系统

sudo systemctl daemon-reload
sudo systemctl enable odoo.service

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

sudo service odoo startsudo service odoo stopsudo service odoo restart

完结,撒花

qq:543127346 (穆尘)

相关文章:

ubuntu源码安装Odoo

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo具有非常多的安装方式,除了我最爱用的 apt-get install,我们还可以使用git拉取Odoo源码进行安装。 本次示例于ubuntu20.04 Desktop上进行操作,理论上在ubuntu14.04之后都可以用此操作。 …...

大鲸鱼docker-compose单机容器集群编排工具

目录 一、Docker-compose 概述 二、Docker-compose简介 三、YML文件格式及编写注意事项 1.yml文件是什么 2.yml问价使用注意事项 3.yml文件的基本数据结构 四、Docker-compose 配置 1.Docker-Compose 配置常用字段 2.Docker Compose常用命令 3.使用Docker-compose创建…...

Dify中的高质量索引模式实现过程

思考在什么情况下会使用到高质量索引模式呢?第1种情况是在知识库中上传文档,文档被拆分为段落后需要进行编码(增加);第2种情况是在召回测试的时候,需要对query进行编码(查询);第3种情况是当文档中的段落增加和更新时需要进行编码(增加和更新)。索引模式是针对知识库…...

GO:Socket编程

目录 一、TCP/IP协议族和四层模型概述 1.1 互联网协议族(TCP/IP) 1.2 TCP/IP四层模型 1. 网络访问层(Network Access Layer) 2. 网络层(Internet Layer) 3. 传输层(Transport Layer&#…...

wls2下的centos使用桥接模式连接宿主机网络独立静态ip

前提:wsl2已安装,可正常更新 1.在控制面板中,打开开启或关闭windows功能,将里面的 Hyper-V功能打开,此处涉及重启 2. 按一下win键,输入hy,上面可以看到Hyper-V Manager,点进去 3.选择右边的 Vi…...

R语言实现神经网络ANN

# 常用激活函数 # 自定义Sigmoid函数 sigmod <- function(x){return(1/(1exp(-x))) } # 绘制Sigmoid曲线 x <- seq(-10,10,length.out 100) plot(x,sigmod(x),type l,col blue,lwd 2,xlab NA,ylab NA,main Sigmoid函数曲线)# 自定义Tanh函数 tanh <- function(…...

实战:shell脚本练习

高效编写Bash脚本的技巧 总结了10个实用技巧&#xff0c;帮助提高脚本的效率和可靠性&#xff0c;具体包括&#xff1a; 多写注释&#xff1a;在脚本中添加注释&#xff0c;以帮助理解脚本的不同部分。 当运行失败时使脚本退出&#xff1a;使用set -o errexit或set -e&#x…...

常见排序算法总结

文章目录 比较排序冒泡排序选择排序插入排序归并排序快速排序堆排序希尔排序 非比较排序&#xff08;桶排序&#xff09;计数排序基数排序 比较排序 冒泡排序 嵌套循环&#xff0c;每次内层循环执行时&#xff0c;数组的每两个元素交换&#xff0c;将一个最大/小的数排到数组…...

网页HTTP协议 get请求和post请求区别?(HTTP中Get、Post、Put与Delete的区别)(HTTP请求方法、HTTP请求方式、HTTP方法)

文章目录 设计GET、POST、DELETE 等多种请求方法的原因1. 符合语义化设计2. 允许服务器对不同的请求方法进行优化处理3. 提高数据传输的安全性4. 遵循现有的网络架构5. 提高网络通信的效率6. 支持 RESTful API 设计 设计GET、POST、DELETE 等多种请求方法的原因 后端之所以要分…...

攻防世界 re新手模式

Reversing-x64Elf-100 64位ida打开 看if语句&#xff0c;根据i的不同&#xff0c;选择不同的数组&#xff0c;后面的2*i/3选择数组中的某一个元素&#xff0c;我们输入的是a1 直接逆向得到就行 二维字符数组写法&#xff1a;前一个是代表有几个字符串&#xff0c;后一个是每…...

Ajax是什么?如何在HTML5中使用Ajax?

Ajax是什么&#xff0c;它如何工作&#xff1f; Ajax是什么 Ajax&#xff0c;全称Asynchronous Javascript And XML&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是一种创建交互式网页应用的网页开发技术。它允许网页在不重新加载整个页面的情况下&#xff0c;与…...

Python+Flask+MySQL/Sqlite的个人博客系统(前台+后端管理)【附源码,运行简单】

PythonFlaskMySQL/Sqlite的个人博客系统&#xff08;前台后端管理&#xff09;【附源码&#xff0c;运行简单】 总览 1、《个人博客系统》1.1 方案设计说明书设计目标工具列表 2、详细设计2.1 管理员登录2.2 程序主页面2.3 笔记新增界面2.4 文章新增界面2.5 文章/笔记管理界面2…...

【Android性能优化】Android CPU占用率检测原理和优化方向

【Android性能优化】Android CPU占用率检测原理和优化方向 CPU相关知识 CPU占用的基本计算公式 (1 - 空闲态运行时间/总运行时间) * 100% Hz、Tick、Jiffies&#xff1a; Hz&#xff1a;Linux核心每隔固定周期会发出timer interrupt (IRQ 0)&#xff0c;HZ是用来定义每一秒有…...

AWS Certified Developer Associate备考笔记

AWS Certified Developer Associate备考笔记 缓慢更新中&#xff0c;如果你也正在关注该考试&#xff0c;请点赞后评论感兴趣的章节&#xff0c;可加快我的更新速度 &#x1f603; 文章目录 AWS Certified Developer Associate备考笔记一、IAM二、EC2三、EC2 Instance Storage…...

数据质量8个衡量标准

在数据驱动的时代&#xff0c;数据质量对于企业的决策和业务运营至关重要。为了确保数据的有效性和可靠性&#xff0c;我们需要根据一些关键要素来衡量数据的质量。本文将介绍数据质量的8个衡量标准&#xff0c;包括准确性、精确性、真实性、及时性、即时性、完整性、全面性和关…...

Redis 跳跃列表与紧凑列表

Redis 跳跃列表&#xff08;Skip List&#xff09; 跳跃列表是一种高效的数据结构&#xff0c;它结合了有序数组和链表的优点&#xff0c;能够在 O(log n) 时间内进行插入、删除和查找操作。Redis 使用跳跃列表来实现有序集合&#xff08;sorted set&#xff09;的底层数据结构…...

达梦数据库的系统视图v$arch_status

达梦数据库的系统视图v$arch_status 在达梦数据库&#xff08;DM Database&#xff09;中&#xff0c;V$ARCH_STATUS 是一个动态性能视图&#xff08;Dynamic Performance View&#xff09;&#xff0c;用于显示归档日志的状态信息。这个视图可以帮助数据库管理员监控和管理数…...

【Rust光年纪】Rust 中常用的数据库客户端库:核心功能与使用场景

探秘 Rust 语言下的多种数据库客户端库&#xff1a;从安装到实际应用 前言 在现代的软件开发中&#xff0c;数据库是不可或缺的一部分。为了与数据库进行交互&#xff0c;开发人员需要使用各种数据库客户端来执行操作、构建查询等。本文将介绍一些用于 Rust 语言的常见数据库…...

网络安全防御【防火墙双机热备带宽管理综合实验】

目录 一、实验拓扑图 二、实验要求 三、实验思路&#xff1a; 四、实验步骤&#xff1a; 1、FW3的网络相关配置&#xff1a; 2、FW1的新增配置&#xff1a; 3、交换机LSW6&#xff08;总公司&#xff09;的新增配置&#xff1a; 4、双机热备技术配置&#xff08;双机热…...

19.x86游戏实战-创建MFC动态链接库

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...