Ubuntu 安装 Odoo 17 详细教程

发布于:2025-07-22 ⋅ 阅读:(19) ⋅ 点赞:(0)

Ubuntu 安装 Odoo 17 详细教程

本教程将指导您在 Ubuntu 系统上从源代码安装 Odoo 17。Odoo 是一款功能强大的开源 ERP 和 CRM 软件套件。本教程适用于希望自行配置和管理 Odoo 环境的用户,尤其适合开发者和系统管理员。

教程概述

本教程将涵盖以下步骤:

  1. 系统更新: 确保您的 Ubuntu 系统是最新的。
  2. 安装依赖: 安装 Odoo 17 运行所需的软件包,包括 Python、PostgreSQL、wkhtmltopdf 等。
  3. 配置 PostgreSQL: 安装并设置 PostgreSQL 数据库,Odoo 使用它来存储数据。
  4. 安装 wkhtmltopdf: 安装用于生成 PDF 报表的 wkhtmltopdf 工具。
  5. 下载 Odoo 17 源代码: 从 GitHub 克隆 Odoo 17 的源代码。
  6. 创建 Python 虚拟环境: 为 Odoo 创建独立的 Python 运行环境。
  7. 安装 Python 依赖: 在虚拟环境中安装 Odoo 的 Python 依赖包。
  8. 首次运行 Odoo: 初始化数据库并启动 Odoo 服务。
  9. (可选)配置 systemd 服务: 将 Odoo 配置为 systemd 服务,以便长期稳定运行。

本教程假设您具备基本的 Linux 终端操作知识。

详细步骤

1. 系统更新

首先,更新您的 Ubuntu 系统软件包列表并升级已安装的软件包,确保系统处于最新状态。

sudo apt update && sudo apt upgrade -y
2. 安装依赖项

安装 Odoo 17 所需的各种依赖项,包括 Python 开发环境、PostgreSQL 数据库客户端库、XML 和 XSLT 处理库、压缩库、认证库、编译工具、Git 和 PostgreSQL 服务器。

sudo apt install -y python3-pip python3-dev python3-venv python3-wheel libpq-dev libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential git postgresql wget

这些依赖项的功能简要说明:

  • python3-pip: Python 包管理工具 pip。
  • python3-dev: Python 开发头文件,用于编译 Python 扩展。
  • python3-venv: Python 虚拟环境工具,用于创建隔离的 Python 环境。
  • python3-wheel: Python wheel 打包格式支持。
  • libpq-dev: PostgreSQL 客户端库开发文件,Python 需要连接 PostgreSQL。
  • libxml2-devlibxslt1-dev: XML 和 XSLT 处理库开发文件。
  • zlib1g-dev: 压缩库开发文件。
  • libsasl2-devlibldap2-dev: 认证和 LDAP 支持库开发文件。
  • build-essential: 编译软件所需的基本工具包,例如 gcc, make。
  • git: 版本控制系统,用于下载 Odoo 源代码。
  • postgresql: PostgreSQL 数据库服务器。
  • wget: 命令行下载工具,用于下载 wkhtmltopdf。
3. 设置 PostgreSQL

Odoo 使用 PostgreSQL 作为数据库后端。在之前的步骤中,我们已经安装了 PostgreSQL 服务器。现在需要进行一些基本设置。

  • 启动并启用 PostgreSQL 服务:
sudo systemctl start postgresql
sudo systemctl enable postgresql
  • 创建 PostgreSQL 用户: 为了安全起见,建议创建一个专门用于 Odoo 的 PostgreSQL 用户。通常使用当前 Ubuntu 用户名作为 PostgreSQL 用户名。
sudo -u postgres createuser --createdb --username postgres --no-createrole --no-superuser $USER

这条命令的含义:

  • sudo -u postgres: 以 postgres 用户身份执行命令(PostgreSQL 的默认管理用户)。

  • createuser: PostgreSQL 命令,用于创建用户。

  • --createdb: 允许新用户创建数据库。

  • --username postgres: 指定创建用户的用户名为 postgres(此参数是指定 createuser 命令自身的用户名,而非要创建的用户名)。

  • --no-createrole: 禁止新用户创建角色。

  • --no-superuser: 禁止新用户成为超级用户。

  • $USER: 环境变量,代表当前的 Ubuntu 用户名,新创建的 PostgreSQL 用户名将与此相同。

  • (可选)设置 PostgreSQL 用户密码: 为了增强安全性,可以为 PostgreSQL 用户设置密码。

sudo -u postgres psql -c "ALTER USER $USER WITH PASSWORD 'your_password';"

your_password 替换为您想要设置的密码。

4. 安装 wkhtmltopdf

wkhtmltopdf 是一个用于将 HTML 转换为 PDF 的工具,Odoo 使用它来生成 PDF 报表。务必下载与您的 Ubuntu 版本相匹配的 wkhtmltopdf 版本,否则可能导致 PDF 生成失败。

访问 wkhtmltopdf GitHub releases 页面,找到适合您 Ubuntu 版本的 .deb 包链接。

例如,对于 Ubuntu 22.04 (Jammy),可以使用以下命令下载并安装:

wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo apt install -y ./wkhtmltox_0.12.6.1-2.jammy_amd64.deb
rm wkhtmltox_0.12.6.1-2.jammy_amd64.deb

请根据您的 Ubuntu 版本,替换下载链接中的版本号和 Ubuntu 代号 (例如 jammy, focal, kinetic 等)。 如果您不确定您的 Ubuntu 版本,可以运行 lsb_release -a 命令查看。

5. 下载 Odoo 17 源代码

使用 Git 克隆 Odoo 17 的源代码仓库到您的用户主目录下的 odoo17 文件夹。

git clone https://github.com/odoo/odoo --depth 1 --branch 17.0 ~/odoo17
  • git clone: Git 命令,用于克隆仓库。
  • https://github.com/odoo/odoo: Odoo 的官方 GitHub 仓库地址。
  • --depth 1: 仅克隆最近一次提交,减少下载量。
  • --branch 17.0: 指定克隆 Odoo 17.0 分支。
  • ~/odoo17: 指定克隆到的本地目录,这里是用户主目录下的 odoo17 文件夹。
6. 创建 Python 虚拟环境

进入 Odoo 源代码目录,并创建一个 Python 虚拟环境,以隔离 Odoo 的 Python 依赖,避免与系统 Python 环境冲突。

cd ~/odoo17
python3 -m venv venv
source venv/bin/activate
  • python3 -m venv venv: 在当前目录下创建名为 venv 的 Python 虚拟环境。
  • source venv/bin/activate: 激活虚拟环境。激活后,您的终端提示符前会显示 (venv),表示您正在虚拟环境中工作。
7. 安装 Python 依赖

在激活的虚拟环境中,安装 Odoo 17 的 Python 依赖包。这些依赖包在 Odoo 源代码目录下的 requirements.txt 文件中列出。

pip install wheel
pip install -r requirements.txt
  • pip install wheel: 安装 wheel 包,用于安装 wheel 格式的 Python 包,可以提高安装速度。
  • pip install -r requirements.txt: 使用 pip 安装 requirements.txt 文件中列出的所有 Python 包。
8. 首次运行 Odoo

现在可以首次运行 Odoo 17,初始化数据库并启动服务。

python3 odoo-bin -i base --addons-path=addons -d odoo17db
  • python3 odoo-bin: 执行 Odoo 的主程序 odoo-bin,在虚拟环境的 bin 目录下。
  • -i base: 指定安装 base 模块,这是 Odoo 的核心模块,初始化数据库时需要安装。
  • --addons-path=addons: 指定附加模块的路径,默认为 addons 目录(位于 Odoo 源代码根目录下)。
  • -d odoo17db: 指定要创建的数据库名称为 odoo17db

首次运行 Odoo 会初始化数据库,并加载 base 模块。您可以在终端看到 Odoo 的日志输出。当看到类似 Odoo server is running ... 的信息时,表示 Odoo 服务已经启动。

打开浏览器,访问 http://localhost:8069,您应该能看到 Odoo 的设置界面,可以创建管理员账户并开始使用 Odoo。

注意: 首次运行 Odoo 时,为了初始化数据库,可能需要一些时间,请耐心等待。

9. (可选)配置 systemd 服务

为了让 Odoo 在后台长期稳定运行,并方便管理,建议将其配置为 systemd 服务。

  • 创建 systemd 服务文件: 使用文本编辑器创建 /etc/systemd/system/odoo17.service 文件,并添加以下内容。请根据您的实际安装路径和用户名进行调整。
[Unit]
Description=Odoo 17 Server
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
User=your_username  # 替换为您的 Ubuntu 用户名
WorkingDirectory=/home/your_username/odoo17  # 替换为 Odoo 源代码目录
ExecStart=/home/your_username/odoo17/venv/bin/python3 /home/your_username/odoo17/odoo-bin -c /etc/odoo/odoo.conf
Restart=on-failure
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
  • 创建 Odoo 配置文件: 创建 /etc/odoo/odoo.conf 配置文件,并添加以下内容。请根据您的实际情况修改配置,例如管理员密码、数据库连接信息等。
[options]
admin_passwd = your_admin_password  # 替换为您想要设置的管理员密码
db_host = localhost
db_port = 5432
db_user = your_username  # 替换为您的 Ubuntu 用户名,也是 PostgreSQL 用户名
db_password = your_database_password  # 如果您为 PostgreSQL 用户设置了密码,请在此处填写
addons_path = /home/your_username/odoo17/addons  # 替换为 Odoo 源代码目录下的 addons 目录路径

确保将 your_username 替换为您的 Ubuntu 用户名,your_admin_password 替换为您想要设置的 Odoo 管理员密码,如果设置了 PostgreSQL 用户密码,也需要填写 db_password

  • 启用并启动 Odoo 服务:
sudo systemctl daemon-reload
sudo systemctl enable odoo17
sudo systemctl start odoo17
  • sudo systemctl daemon-reload: 重新加载 systemd 配置,使新的服务文件生效。

  • sudo systemctl enable odoo17: 设置 Odoo 服务开机自启动。

  • sudo systemctl start odoo17: 立即启动 Odoo 服务。

  • 检查服务状态: 可以使用以下命令检查 Odoo 服务是否正在运行。

sudo systemctl status odoo17

如果服务正常运行,您应该看到 active (running) 的状态。

现在,Odoo 17 应该已经在后台作为 systemd 服务运行了。您仍然可以通过浏览器访问 http://localhost:8069 来使用 Odoo。

常见问题与注意事项

  • 端口占用: 默认情况下,Odoo 使用 8069 端口。如果该端口已被占用,您可以在运行 odoo-bin 时使用 --xmlrpc-port 参数指定其他端口,例如 python3 odoo-bin --xmlrpc-port=8070 ...
  • 依赖安装错误: 如果在安装依赖时遇到错误,请仔细检查错误信息,确保您的系统网络连接正常,并检查是否遗漏了某些依赖包。
  • 数据库连接错误: 如果 Odoo 无法连接到 PostgreSQL 数据库,请检查 PostgreSQL 服务是否正在运行 (sudo systemctl status postgresql),并检查 Odoo 配置文件 /etc/odoo/odoo.conf 中的数据库连接信息是否正确。
  • wkhtmltopdf 版本不兼容: 如果 PDF 报表生成失败,很可能是 wkhtmltopdf 版本不兼容。请务必下载并安装与您的 Ubuntu 版本匹配的 wkhtmltopdf 版本。
  • 权限问题: 确保 Odoo 运行用户(在 systemd 服务文件中指定)对 Odoo 源代码目录及其子目录具有读取和执行权限。

总结

通过以上步骤,您应该已经成功在 Ubuntu 系统上安装了 Odoo 17。您可以根据您的需求进一步配置 Odoo,例如安装更多模块、配置 SMTP 服务器等。 建议您参考 Odoo 官方文档和社区资源,以获取更多高级配置和使用技巧。


网站公告

今日签到

点亮在社区的每一天
去签到