1.1 Ubuntu 22.04上从源代码安装Odoo17

在企业数字化转型的浪潮中,Odoo作为一款强大的开源企业资源规划(ERP)软件,备受关注。今天,我们将深入探讨如何在Ubuntu 22.04操作系统上从源代码安装Odoo,并详细解释每个步骤背后的原理。

一、前期准备

1. 系统选择

建议使用Linux Ubuntu操作系统进行Odoo的安装。这是因为Odoo在其所有测试、调试和企业版安装中都使用该系统,而且大多数Odoo开发者也使用GNU/Linux发行版,遇到操作系统级问题时更易从社区获得支持。若工作站使用不同操作系统,可在工作站上设置虚拟机并安装GNU/Linux发行版。本书使用Ubuntu Server 22.04 LTS,但也可选择其他Debian GNU/Linux操作系统。使用前需对所选Linux发行版的命令行操作有一定了解。

2. 系统状态与权限

假设已成功运行Ubuntu 22.04,并且拥有root访问权限或已配置sudo。在后续操作中,部分配置需要系统登录用户名,此时将使用$(whoami)命令来获取当前登录用户名。若没有GitHub账户,建议前往https://github.com创建一个,这会使一些操作更加便捷。

二、安装步骤

1. 安装主要依赖项

打开终端,依次执行以下命令:

sudo apt-get update
sudo apt install openssh-server fail2ban python3-pip python3-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libmysqlclient-dev libpq-dev libjpeg8-dev liblcms2-dev libblas-dev libatlas-base-dev git curl python3-venv python3.10-venv fontconfig libxrender1 xfonts-75dpi xfonts-base -y

这些依赖项包含了各种工具,如gitpip3wget以及Python的一些开发和配置工具等。它们是后续安装其他Odoo依赖项的基础,能够帮助我们通过简单命令完成复杂的安装过程。

2. 下载并安装wkhtmltopdf

wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb

若在执行上述命令后遇到错误,可使用以下命令强制安装依赖项:

sudo apt-get install -f

wkhtmltopdf用于在Odoo中打印PDF文档,如销售订单、发票和其他报告。Odoo 17.0需要特定版本(0.12.6.1)的wkhtmltopdf,该版本可能未包含在当前Linux发行版中,因此我们从官方提供的地址下载并安装。

3. 安装PostgreSQL数据库

在终端中执行:

sudo apt install postgresql -y

PostgreSQL将用于Odoo的数据库管理。

4. 配置PostgreSQL

依次执行以下命令:

sudo -i -u postgres createuser -s $(whoami)
sudo su postgres
psql
alter user $(whoami) with password 'your_password';
\q
exit

这里创建了一个与系统登录名相同的数据库用户,并赋予超级用户权限(-s选项)。这是因为Odoo默认使用psycopg2库连接PostgreSQL数据库,默认情况下会尝试使用与当前用户相同的用户名进行本地连接,以实现无密码认证(适用于开发环境)。本地连接使用Unix域套接字,数据库服务器监听端口为5432。对于开发服务器,给予超级用户权限方便操作;但在生产环境中,应使用--createdb命令行选项来限制权限,避免因超级用户权限带来安全风险。若要使用不同登录名的数据库用户,创建用户时需通过--pwprompt标志提供密码。若用户已创建但需设置或修改密码,可使用psql -c "alter role $(whoami) with password 'newpassword'"命令。若该命令因数据库不存在而失败,可添加--dbname选项指定现有数据库名,如--dbname template1

5. 配置git

在终端中输入以下命令,将"Your Name"替换为你的真实姓名,[email protected]替换为你的邮箱地址:

git config --global user.name "Your Name"
git config --global user.email [email protected]

配置git用户信息,方便后续从GitHub获取Odoo代码库及进行相关操作。

6. 克隆Odoo代码库

执行以下命令:

mkdir ~/odoo-dev
cd ~/odoo-dev
git clone -b 17.0 --single-branch --depth 1 https://github.com/odoo/odoo.git

首先创建odoo-dev目录,进入该目录后,使用git clone命令从Odoo官方GitHub仓库下载源代码。这里指定了-b 17.0表示只下载17.0版本的分支,--single-branch仅获取单一分支,--depth 1避免下载分支的完整提交历史,可加快下载速度。若需要,也可省略这些选项获取完整代码。

7. 创建并激活虚拟环境

在终端中依次执行:

python3 -m venv ~/venv-odoo-17.0
source ~/venv-odoo-17.0/bin/activate

创建一个名为venv-odoo-17.0的Python虚拟环境,并激活它。在虚拟环境中安装Odoo的Python依赖项,可避免与系统Python环境的冲突。

8. 安装Odoo的Python依赖项

在激活虚拟环境后,执行以下命令:

cd ~/odoo-dev/odoo/
pip3 install -r requirements.txt

进入Odoo代码目录,使用pip3安装requirements.txt文件中列出的Python依赖项,确保Odoo正常运行。

9. 创建并启动Odoo实例

在终端中输入:

createdb odoo-test
python3 odoo-bin -d odoo-test -i base --addons-path=addons --db-filter=odoo-test$

首先创建一个名为odoo-test的数据库,然后使用python3 odoo-bin命令启动Odoo实例。-d指定数据库名称,-i指定要安装的模块(这里为基础模块base),--addons-path指定附加模块的路径,--db-filter设置数据库过滤器。

10. 访问Odoo

打开浏览器,访问http://localhost:8069,使用admin账户登录,密码为admin。若需要RTL(从右到左)支持,可执行以下命令安装nodertlcss

sudo apt-get install nodejs npm -y sudo
npm install -g rtlcss

三、安装原理

1. 依赖项安装原理

在第一步安装主要依赖项时,这些依赖项构成了一个基础工具集。它们为后续安装其他Odoo依赖项提供了便利,例如通过pip3可以方便地安装Python库,git用于获取代码库等。

2. wkhtmltopdf安装原理

Odoo在处理PDF文档打印功能时依赖wkhtmltopdf。由于Odoo 17.0对其版本有特定要求(0.12.6.1),而当前Linux发行版可能未包含该版本,因此从官方提供的针对不同发行版的预构建包下载地址获取并安装,以确保Odoo的PDF打印功能正常工作。

3. PostgreSQL配置原理

PostgreSQL作为Odoo的数据库管理系统,其配置与Odoo的连接方式紧密相关。Odoo默认使用psycopg2库连接PostgreSQL,在开发环境中,通过创建与当前用户同名且具有超级用户权限的数据库用户,利用默认的本地连接方式(无密码认证、Unix域套接字、端口5432)实现便捷的数据库连接。但在生产环境中,为了安全考虑,应限制用户权限,避免因超级用户权限带来的潜在安全风险。

4. git配置与代码获取原理

配置git用户信息后,通过git clone命令从GitHub获取Odoo代码库。选择特定版本分支和下载选项可以根据需求灵活获取代码,例如只获取17.0版本的代码且避免下载完整提交历史可加快下载速度,同时也方便在不同版本间切换和管理代码。

你可能感兴趣的:(Odoo17学习,ubuntu,linux,运维)