Ubuntu 22.04 安装 Zammad 指南

在 Ubuntu 22.04 服务器上从零安装 Zammad 7.2.2 的完整实测:官方仓库在线安装与 deb 离线包两条路线、Elasticsearch 9 集成、服务验证、首次初始化与四类真实故障排障实录。

Zammad工单系统邮件服务器2026/10/21

Ubuntu 22.04 安装 Zammad 指南

目标:在 Ubuntu 22.04 服务器上从零安装并跑通 Zammad 7.2.2——覆盖官方仓库在线安装与 deb 离线包安装两条路线、Elasticsearch 9 集成、服务验证、管理员初始化,以及四类真实故障的排障实录。本文全部命令与回显均在 Ubuntu 22.04 (x86_64) 服务器实测通过(2026-10-21)。

一、环境信息

  • 操作系统:Ubuntu 22.04 (jammy),x86_64
  • Zammad 版本:7.2.2-1792508402.43c767a.ubuntu22(官方 packager.io stable 仓库候选版本,2026-10-21 实查,与 GitHub 最新稳定 tag 7.2.2 一致,双源依据见《Zammad 7.2.2 介绍与选型指南》)
  • Elasticsearch:9.5.5(官方 9.x apt 仓库,deb 安装,2026-10-21 实查候选版本)
  • PostgreSQL:14.24(Ubuntu 22.04 系统仓库随 Zammad 依赖自动安装)
  • Redis:6.0.16(Ubuntu 22.04 系统仓库随 Zammad 依赖自动安装)
  • Nginx:1.18.0(随 Zammad 依赖自动安装,站点配置 /etc/nginx/sites-available/zammad.conf 自动生成)
  • 安装路径:/opt/zammad/
  • Web 端口:80(HTTP,由 Nginx 承接;生产建议 443 + TLS)

💡 说明:本文主线命令均在 root 或 sudo 环境执行;示例中管理员账号统一为 admin / 密码 q1w2e3r4。

二、前置条件

安装开始前需要确认硬件、软件与系统环境三项。Zammad 是 Rails 全栈应用,对内存基线要求明显高于 PHP 系轻量工单系统,务必先核对。

  1. 硬件:官方最低要求 2 核 CPU、6 GB 内存(同机加跑 Elasticsearch 再 +4 GB)。不足时安装能完成但运行吃力。
  2. 网络与端口:需要访问 go.packager.io(Zammad 仓库)与 artifacts.elastic.co(Elasticsearch 仓库);本地监听 80/443 需空闲。若 /tmp 被单独分区并挂载了 noexec 选项(安全加固常见),需临时恢复 exec(见常见问题 8.1)。
  3. 软件仓库:确认 apt 源可用(archive.ubuntu.com 或镜像);Elasticsearch 与 Zammad 官方仓库按后文步骤添加。

验证系统环境:

cat /etc/os-release | grep -E "^(NAME|VERSION)=" && dpkg --print-architecture && free -m | head -2

实测回显:

NAME="Ubuntu"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
amd64
               total        used        free      shared  buff/cache   available
Mem:            7987         958        4650           1        2378        6741

三、版本选型说明

Zammad 的 deb 包版本号由「上游版本 + 构建时间戳 + commit + 发行版」组成,选型时抓住三点:

  1. 上游版本:官方 stable 仓库当前提供 7.2.2(2026-10-08 tag 发布,2026-10-21 实查仓库候选版本一致)。仓库只有一个 stable 通道,apt upgrade 会自动跟进最新稳定版,不存在「锁小版本」的仓库配置需求。
  2. 发行版后缀:ubuntu22 表示该二进制为 Ubuntu 22.04 构建,与 ubuntu24/ubuntu26 互不通用,跨版本升级主机时需按官方 Host Upgrade 指南迁移仓库源。
  3. Elasticsearch 兼容:Zammad 7.2+ 要求 Elasticsearch ≥ 8.15 且 < 10(官方 Software 页兼容矩阵)。本文按官方当前推荐选 Elasticsearch 9.x(实测 9.5.5),不建议给新部署装 7.x 旧版。

查询仓库当前候选版本的命令(安装前后的版本依据):

apt-cache policy zammad | head -3

实测回显(添加仓库后):

zammad:
  Installed: (none)
  Candidate: 7.2.2-1792508402.43c767a.ubuntu22

四、在线安装方案(A:官方包管理器仓库,推荐)

这是官方文档的标准主线,整体顺序为「装 Elasticsearch 9 → 添加 Zammad 仓库 → apt 安装 Zammad(自动带齐 PostgreSQL/Redis/Nginx)→ 连接 ES」。Zammad 的 deb 包会自动检测并安装缺失的依赖服务,数据库、缓存与 Web 服务器都不需要手动预装。

4.1 安装基础工具并确认 locale

Zammad 官方要求系统 locale 为 en_US.UTF-8(否则后续数据库初始化可能踩到编码问题,见常见问题 8.4)。先装基础工具并检查 locale:

sudo apt install curl apt-transport-https gnupg
locale | grep "LANG="

实测回显:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
curl is already the newest version (7.81.0-1ubuntu1.21).
apt-transport-https is already the newest version (2.4.14).
gnupg is already the newest version (2.2.27-3ubuntu2.4).
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
LANG=

LANG= 为空说明 locale 未设置。生成并启用 en_US.UTF-8:

sudo apt install locales
sudo locale-gen en_US.UTF-8
echo "LANG=en_US.UTF-8" | sudo tee /etc/default/locale

实测回显:

Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
LANG=en_US.UTF-8

⚠️ 注意:/etc/default/locale 对当前已登录的 shell 不生效,重新登录后 locale 才会显示 LANG=en_US.UTF-8。PostgreSQL 集群初始化会读取系统 locale,因此应先完成本步、再进入 PostgreSQL 安装(本方案中 PostgreSQL 由 Zammad 包自动安装,时序天然满足)。

4.2 安装 Elasticsearch 9(官方强烈推荐)

Elasticsearch 是可选项,但官方明确强烈推荐:不装时搜索功能受限且性能降级。官方当前安装主线指定 Elasticsearch 9.x。

第一步,添加 ES 官方签名密钥与 9.x 仓库:

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \
  gpg --dearmor | sudo tee /usr/share/keyrings/elasticsearch-keyring.gpg \
  && sudo chmod 644 /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-9.x.list

实测回显(tee 写入仓库文件会回显其内容):

deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/9.x/apt stable main

第二步,安装并启动 Elasticsearch:

sudo apt update && sudo apt install elasticsearch
sudo systemctl enable elasticsearch.service --now

实测回显(输出节选,实测首尾):

Get:1 https://artifacts.elastic.co/packages/9.x/apt stable/main amd64 elasticsearch amd64 9.5.5 [686 MB]
...
Processing triggers for libc-bin (2.35-0ubuntu3.11) ...
Synchronizing state of elasticsearch.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /lib/systemd/system/elasticsearch.service.

第三步,验证 ES 启动并限制堆内存(同机跑 Zammad 时建议显式限制 ES 堆,默认堆会按机器内存比例占用过大):

mkdir -p /etc/elasticsearch/jvm.options.d
printf -- "-Xms512m\n-Xmx512m\n" > /etc/elasticsearch/jvm.options.d/heap.options
systemctl restart elasticsearch
systemctl is-active elasticsearch

实测回显:

active

第四步,ES 9 默认启用安全特性并自动生成 elastic 用户密码。安装时若未记录密码,用重置命令重新生成(密码会打印在 New value: 一行,请妥善保存,连接 Zammad 时要用):

/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic --batch

实测回显(密码属敏感信息,以下以占位示意,实际执行会打印明文):

WARNING: The generated password will be shown once.
New value: <自动生成密码,请记录>

用该密码验证 ES 认证访问:

curl -sk -u "elastic:<自动生成密码>" https://localhost:9200 | head -12

实测回显:

{
  "name" : "zammad-server",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "p8LesZBMRpqyjzggwv_dmw",
  "version" : {
    "number" : "9.5.5",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "48acba663b09e70b115dd879329141506c377890",
    "build_date" : "2026-09-30T22:12:03.984586187Z",
    "build_snapshot" : false,
    "lucene_version" : "10.5.1",

4.3 添加 Zammad 官方仓库

sudo curl -fsSL "https://go.packager.io/srv/deb/zammad/zammad/gpg-key.gpg" \
  -o /usr/share/keyrings/zammad.gpg && sudo chmod 644 /usr/share/keyrings/zammad.gpg
sudo curl -fsSL "https://go.packager.io/srv/zammad/zammad/stable/installer/ubuntu/22.04.list" \
  -o /etc/apt/sources.list.d/zammad.list

查看生成的源文件内容:

cat /etc/apt/sources.list.d/zammad.list

实测回显:

# This file was automatically generated.
deb [signed-by=/usr/share/keyrings/zammad.gpg] https://go.packager.io/srv/deb/zammad/zammad/stable/ubuntu/ 22.04 main
# GPG key: https://go.packager.io/srv/deb/zammad/zammad/gpg-key.asc

刷新索引并确认候选版本:

sudo apt update && apt-cache policy zammad | head -3

实测回显(输出节选):

Get:5 https://go.packager.io/srv/deb/zammad/zammad/stable/ubuntu 22.04/main amd64 Packages [36.2 kB]
zammad:
  Installed: (none)
  Candidate: 7.2.2-1792508402.43c767a.ubuntu22

4.4 安装 Zammad 主包

sudo apt install -y zammad

实测回显(输出节选,实测首尾——Zammad 主包 213 MB,连同 PostgreSQL、Redis、Nginx 等依赖共 82 个包):

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  ... (略去通用依赖) ... nginx postgresql-14 postgresql-common redis-server ssl-cert sysstat
...
Selecting previously unselected package postgresql-14.
Preparing to unpack .../78-postgresql-14_14.24-0ubuntu0.22.04.1_amd64.deb ...
Unpacking postgresql-14 (14.24-0ubuntu0.22.04.1) ...
...
Selecting previously unselected package zammad.
Preparing to unpack .../82-zammad_7.2.2-1792508402.43c767a.ubuntu22_amd64.deb ...
...
Setting up zammad (7.2.2-1792508402.43c767a.ubuntu22) ...

⚠️ 注意:安装脚本会自动完成数据库初始化、/opt/zammad/config/database.yml 生成(内含随机数据库口令)、Nginx 站点配置等全部工作。安装输出里若出现 There was an error trying to connect to Redis. 提示,属于安装时 Redis 服务尚未就绪的时序问题,处理方式见常见问题 8.2。

确认包安装状态:

dpkg -s zammad | grep -E "^Status|^Version"

实测回显:

Status: install ok installed
Version: 7.2.2-1792508402.43c767a.ubuntu22

4.5 检查服务与端口

Zammad 的 systemd 单元结构:zammad.service 为总入口(管理便捷单元),实际进程由模板单元 zammad-web-1(Rails 应用)、zammad-websocket-1(WebSocket)、zammad-worker-1(后台任务)承载:

systemctl is-active zammad zammad-web zammad-web-1 zammad-websocket zammad-worker nginx elasticsearch
systemctl list-unit-files "zammad*" --no-legend

实测回显:

active
active
active
active
active
active
active
zammad-web-1.service       enabled enabled
zammad-web.service         enabled enabled
zammad-websocket-1.service enabled enabled
zammad-websocket.service   enabled enabled
zammad-worker-1.service    enabled enabled
zammad-worker.service      enabled enabled
zammad.service             enabled enabled

端口与页面验证:

ss -ltn | awk 'NR>1 {print $4}' | grep -oE '[0-9]+$' | sort -un | tr '\n' ' '
curl -s -o /dev/null -w "HTTP %{http_code}\n" http://localhost/
curl -s http://localhost/ | grep -oE "<title>[^<]+" | head -1

实测回显:

53 80 3000 5432 6042 6379 9200 9300 44511
HTTP 200
<title>Zammad Helpdesk

端口解读:80 为 Nginx 对外入口;3000 为 Rails 应用(Puma);6042 为 WebSocket;5432 为 PostgreSQL;6379 为 Redis;9200/9300 为 Elasticsearch。

4.6 首次初始化(管理员账号)

浏览器打开 http://<服务器IP>,进入 Zammad 首次设置向导,按界面提示完成四步:创建管理员账号(本文示例 admin@lab.local / q1w2e3r4)、填写组织信息、配置发送与接收邮件渠道、完成初始化。向导创建的管理员同时具备 Admin 与 Agent 角色,登录后即进入工单工作台。

⚠️ 注意:若希望跳过向导、用命令行直接创建首个管理员(自动化部署场景),可用 Zammad 自带的 Rails 控制台(等价于向导第一步的结果,实测可用):

zammad run rails r "User.create!(login: 'admin', firstname: 'Admin', lastname: 'User', email: 'admin@lab.local', password: 'q1w2e3r4', roles: Role.where(name: ['Admin','Agent']), created_by_id: 1, updated_by_id: 1)"

创建后即可用 admin / q1w2e3r4 登录 Web 界面;后续渠道与组织信息可在管理界面补配。

4.7 连接 Elasticsearch(官方第三步)

Zammad 安装完成后需显式连接 ES 并重建搜索索引。四条命令按官方文档执行(密码取 4.2 节记录的 elastic 密码):

zammad run rails r "Setting.set('es_url', 'https://localhost:9200')"
zammad run rails r "Setting.set('es_user', 'elastic')"
zammad run rails r "Setting.set('es_password', '<自动生成密码>')"
cat /etc/elasticsearch/certs/http_ca.crt | zammad run rails r 'SSLCertificate.create!(certificate: STDIN.read)'

实测回显:四条命令执行后均正常返回(无报错输出即成功)。

重建搜索索引:

zammad run rake zammad:searchindex:rebuild

实测回显(输出节选,实测首尾):

  - Organization...
    done in 0 seconds.
  - Group...
    done in 0 seconds.
  ...
  - Trigger...
    done in 0 seconds.
  - User...
    done in 0 seconds.
  - Webhook...
    done in 0 seconds.

最后验证 ES 连接状态(管理界面 Settings → System → Elasticsearch 亦可查看):确认无 ECONNREFUSED 类报错、且 done 系列任务完成,即表示 Zammad ⇄ ES 9.5.5 集成成功。

五、离线安装方案(B:deb 包手动下载)

隔离网络(不能访问 go.packager.io)或需要把包先下载审查再安装的场景,可以先把 Zammad 的 deb 包一次性下载下来,再离线安装。该方案同样需要先能装齐 PostgreSQL/Redis/Nginx 等系统依赖(内网 apt 镜像或本地源)。

第一步,在能联网的机器上下载 deb 包(apt-get download 从已配置的 Zammad 仓库取包,实测 213 MB):

apt-get download zammad
ls -lh zammad_*.deb

实测回显(输出节选):

Get:1 https://go.packager.io/srv/deb/zammad/zammad/stable/ubuntu 22.04/main amd64 zammad amd64 7.2.2-1792508402.43c767a.ubuntu22 [213 MB]
Fetched 223 MB in 17s (13.5 MB/s)
213M zammad_7.2.2-1792508402.43c767a.ubuntu22_amd64.deb

第二步,把 deb 包传到目标服务器后安装(apt install ./xxx.deb 会自动解析并尝试补齐依赖):

sudo apt install ./zammad_7.2.2-1792508402.43c767a.ubuntu22_amd64.deb

⚠️ 注意:纯离线机器上该命令会因缺依赖报错,需先在本地源备齐 postgresql、redis-server、nginx、ssl-cert、sysstat 等依赖(清单可用 apt-cache depends zammad 在联网机上查询)。安装完成后的服务验证、初始化与 ES 连接步骤与方案 A 的 4.5-4.7 完全一致。

六、方案对比与选择建议

维度方案 A:官方仓库在线安装方案 B:deb 包离线安装
是否需联网需访问 go.packager.io 与 artifacts.elastic.co仅需拿到 deb 包;依赖仍需本地源
版本stable 通道自动跟进最新稳定版锁定包内版本,升级需手动取新包
依赖处理apt 自动带齐 PostgreSQL/Redis/Nginx需自行确保依赖可装
适用场景标准服务器、可联网环境(绝大多数)隔离网络、需先审查包、批量分发
升级方式apt upgrade 一条命令重新下载新 deb 覆盖安装

选择建议:能联网就用方案 A(主线、升级省心);隔离网络或需包审计走方案 B,依赖清单先备齐。

七、配置说明

安装完成后,需要知道的关键文件与配置位置如下(逐项说明用途与默认值):

文件/位置用途说明
/opt/zammad/Zammad 全部应用代码与运行时Rails 应用根目录;Ruby 运行时打包在 vendor/ruby/ 内,与系统 Ruby 隔离
/opt/zammad/config/database.ymlPostgreSQL 连接配置安装时自动生成,库 zammad、用户 zammad、口令随机;改库连接在此处调整后 systemctl restart zammad
/opt/zammad/VERSION版本标识内容如 7.2.2-1792508402.43c767a.ubuntu22,快速核对版本
/etc/nginx/sites-available/zammad.confNginx 站点配置(已自动启用)upstream 指向 127.0.0.1:3000(Rails)与 127.0.0.1:6042(WebSocket),root /opt/zammad/public;TLS 配置在此文件调整
/etc/elasticsearch/elasticsearch.ymlES 主配置Zammad 官方建议设置 http.max_content_length: 400mb
/etc/elasticsearch/jvm.options.d/heap.optionsES 堆内存本文 4.2 节创建,同机部署建议 512m-2g
/var/log/zammad/应用日志production.log、websocket.log 等排障入口

常用服务管理命令(每行一个单元):

systemctl restart zammad
systemctl status zammad

实测回显(输出节选):

● zammad.service
     Loaded: loaded (/etc/systemd/system/zammad.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2026-10-21 04:29:57 UTC; 5min ago
   Main PID: 11028 (sleep)

zammad run 包装器是运维入口:zammad run rails r "..." 执行一行 Rails 表达式、zammad run rake <task> 执行 rake 任务、zammad run console 进入 Rails 控制台。所有配置参数(Settings 表)的查看与修改方式详见本专栏《Zammad 7.2.2 配置参数详解》。

八、常见问题(FAQ)

以下四例均来自本次安装实测的真实故障,给出「错误现象 → 定位 → 解决」完整路径。

Q1:apt install zammad 报 pre-installation script Permission denied(exit status 126)

错误现象(实测回显):

/var/lib/dpkg/tmp.ci/preinst: line 91: /tmp/tmp.kOVCxT4xK2: Permission denied
dpkg: error processing archive /tmp/apt-dpkg-install-vUS3Kb/82-zammad_7.2.2-1792508402.43c767a.ubuntu22_amd64.deb (--unpack):
 new zammad package pre-installation script subprocess returned error exit status 126
E: Sub-process /usr/bin/dpkg returned an error code (1)

定位:Zammad 的 preinst 脚本会在 /tmp 下创建临时脚本并执行;当 /tmp 分区挂载了 noexec 选项(安全加固常见做法)时,执行被拒绝。用 mount | grep " /tmp " 检查挂载选项是否含 noexec。

解决:临时恢复 /tmp 的 exec 权限再重装:

sudo mount -o remount,exec,mode=1777 /tmp
sudo apt install -y zammad
# 安装成功后按安全基线决定是否恢复 noexec

Q2:安装/启动后 zammad-web-1 反复 failed,日志报 Redis CannotConnectError

错误现象(实测回显,journalctl -u zammad-web-1):

There was an error trying to connect to Redis.
#<Redis::CannotConnectError: Failed to connect to localhost:6379 (ECONNREFUSED) (redis://localhost:6379)>
systemd[1]: zammad-web-1.service: Start request repeated too quickly.

定位:Zammad 启动时 Redis 必须已在 6379 就绪。安装时序中 Redis 服务晚于 Zammad 首次启动,或 Redis 未启动时都会出现;连续失败 5 次后 systemd 进入 "Start request repeated too quickly" 锁定,此时 systemctl restart zammad 也拉不起来。

解决:先确认 Redis 运行,再清除失败状态并重启:

systemctl start redis-server
systemctl reset-failed zammad-web-1
systemctl restart zammad

实测验证(等待约 30 秒让 Rails 完成启动):

$ systemctl is-active zammad zammad-web zammad-web-1 zammad-websocket zammad-worker
active active active active active

Q3:zammad-web-1 报 "We could not find your database: zammad" 或 socket 连接失败

错误现象(实测回显,journalctl -u zammad-web-1):

connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
...
/opt/zammad/.../postgresql_adapter.rb:63:... We could not find your database: zammad.
    bin/rails db:create

定位:第一段报错说明 PostgreSQL 服务未真正运行;第二段说明库还没建。用 pg_lsclusters 检查 Ubuntu/Debian 的 PG 集群状态——systemctl is-active postgresql 显示 active 并不代表集群已初始化(该服务只是包装器)。实测中 pg_lsclusters 输出为空(集群缺失)。

解决:手动创建并启动集群,再补齐数据库初始化:

pg_createcluster 14 main --start
pg_lsclusters

实测回显:

Ver Cluster Port Status Owner    Data directory                                    Log file
14  main    5432 online postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log

数据库侧修复(database.yml 中的口令以实际文件为准):

su postgres -c "psql -c \"CREATE ROLE zammad LOGIN PASSWORD '<口令>' CREATEDB;\""
su postgres -c "createdb -O zammad zammad"
cd /opt/zammad && zammad run rails db:create db:migrate db:seed

Q4:db:create 报 "new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)"

错误现象(实测回显):

PG::InvalidParameterValue: ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)

定位:系统 locale 不是 en_US.UTF-8(locale | grep LANG= 为空或为 C)时,PostgreSQL 集群以 SQL_ASCII 初始化,模板库编码与 Zammad 要建的 UTF8 库冲突。这正是官方安装文档「Ensure Correct Locale」一节存在的原因。

解决:先补 locale,再重建 PG 集群(会清空该集群内数据,新装机无损),最后重跑数据库初始化:

sudo apt install locales && sudo locale-gen en_US.UTF-8
echo "LANG=en_US.UTF-8" | sudo tee /etc/default/locale
systemctl stop postgresql@14-main
pg_dropcluster 14 main
pg_createcluster 14 main --locale en_US.UTF-8 --start
su postgres -c "psql -tAc 'SHOW server_encoding;'"   # 应输出 UTF8
cd /opt/zammad && zammad run rails db:create db:migrate db:seed

实测验证:重建后 SHOW server_encoding; 返回 UTF8,db:create db:migrate db:seed 全程无报错、最后一条迁移(AlternativeFqdnFrontend)完成,systemctl restart zammad 后首页 HTTP 200。

九、升级、多版本与卸载

升级(方案 A 仓库安装):stable 仓库只有一个通道,升级即普通 apt 升级,升级前按官方文档先备份数据库:

sudo apt update && sudo apt install --only-upgrade zammad

版本核对:

cat /opt/zammad/VERSION

实测回显:

7.2.2-1792508402.43c767a.ubuntu22

⚠️ 注意:跨大版本升级前先阅读官方 Updating Zammad 文档的兼容性说明(尤其 Elasticsearch 版本要求);跨 Ubuntu 版本迁移主机需按官方 Host Upgrade and Repository Migration 指南换仓库源,不能直接 apt upgrade 跨发行版。

卸载:只删应用保留数据用 apt remove;连同配置与数据一起清理用 purge(数据库本身随 postgresql 包保留,如需彻底删除数据目录另行处理):

sudo apt purge zammad
sudo apt autoremove

十、参考链接