卸载步骤

本页面说明完全卸载 Fess 的步骤。

Warning

卸载前的重要注意事项

  • 卸载会删除所有数据

  • 如有重要数据,请务必获取备份

  • 关于备份步骤,请参阅 升级步骤

卸载前的准备

获取备份

请备份必要的数据:

  1. 配置数据

    从管理页面的「系统」→「备份」下载。 通过此操作,可以将各种配置(包括爬取配置)以及搜索日志等一并导出。

  2. 定制的配置文件

    ZIP 版:

    $ cp -r /path/to/fess/app/WEB-INF/conf /backup/
    $ cp -r /path/to/fess/app/WEB-INF/classes /backup/
    

    RPM/DEB 版:

    $ sudo cp -r /etc/fess /backup/
    

Note

Fess 的索引和大部分配置都保存在 OpenSearch 中。 备份索引数据时,请使用 OpenSearch 的快照功能。 详细步骤请参阅 升级步骤。

停止服务

卸载前,停止所有服务。

ZIP 版:

$ ps aux | grep -E 'fess|opensearch'
$ kill <fess_pid>
$ kill <opensearch_pid>

RPM/DEB 版:

$ sudo systemctl stop fess.service
$ sudo systemctl stop opensearch.service

Docker 版:

$ docker compose -f compose.yaml -f compose-opensearch3.yaml down

ZIP 版的卸载

步骤 1: 删除 Fess

删除安装目录:

$ rm -rf /path/to/fess-15.9.0

步骤 2: 删除 OpenSearch

删除 OpenSearch 的安装目录:

$ rm -rf /path/to/opensearch-3.9.0

步骤 3: 删除数据目录(可选)

Fess 的索引数据保存在 OpenSearch 中。 默认情况下保存在 OpenSearch 的安装目录内(如 opensearch-3.9.0/data), 但如果通过 path.data 指定了其他位置,请同时删除该目录:

$ rm -rf /path/to/data

步骤 4: 删除日志目录(可选)

删除日志文件:

$ rm -rf /path/to/fess-15.9.0/logs
$ rm -rf /path/to/opensearch-3.9.0/logs

RPM 版的卸载

步骤 1: 卸载 Fess

卸载 RPM 包:

$ sudo rpm -e fess

Note

卸载 Fess 包时,包的删除脚本会自动停止并禁用 fess 服务, 并删除 fess 用户和组。 后续步骤用于确认这些已被确实删除,或用于手动删除数据和配置文件。

步骤 2: 卸载 OpenSearch

$ sudo rpm -e opensearch

步骤 3: 确认服务已禁用

通常在删除包时服务会被禁用,但如需保险起见进行确认和禁用,请执行以下命令。

systemd 的情况:

$ sudo systemctl disable fess.service
$ sudo systemctl disable opensearch.service
$ sudo systemctl daemon-reload

旧版 SysV init(chkconfig)环境的情况:

$ sudo /sbin/chkconfig --del fess
$ sudo /sbin/chkconfig --del opensearch

步骤 4: 删除数据目录

Warning

执行此操作会完全删除所有索引数据。

数据目录在卸载包时不会被删除,因此需要手动删除:

$ sudo rm -rf /var/lib/fess
$ sudo rm -rf /var/lib/opensearch

步骤 5: 删除配置文件

删除配置文件和环境配置文件:

$ sudo rm -rf /etc/fess
$ sudo rm -rf /etc/sysconfig/fess
$ sudo rm -rf /etc/opensearch

Note

在 RPM 中,/etc/fess 内的配置文件可能会以 .rpmsave 的名称保留。 要完全删除,请如上所述手动删除。

步骤 6: 删除日志文件

$ sudo rm -rf /var/log/fess
$ sudo rm -rf /var/log/opensearch

步骤 7: 删除临时目录(可选)

$ sudo rm -rf /var/tmp/fess

步骤 8: 删除用户和组(可选)

通常在删除包时 fess 用户和组会被删除。 如果仍有残留,或要删除 OpenSearch 用的用户和组,请执行以下命令:

$ sudo userdel fess
$ sudo groupdel fess
$ sudo userdel opensearch
$ sudo groupdel opensearch

DEB 版的卸载

步骤 1: 卸载 Fess

卸载 DEB 包:

$ sudo dpkg -r fess

如需包括配置文件和环境配置文件在内完全删除,请使用 purge:

$ sudo dpkg -P fess

Note

使用 dpkg -r(remove)时,作为配置文件(conffile)的 /etc/default/fess 等会保留。 使用 dpkg -P(purge)时,这些配置文件以及 fess 用户和组也会被删除。

步骤 2: 卸载 OpenSearch

$ sudo dpkg -r opensearch

或者,包括配置文件一并删除:

$ sudo dpkg -P opensearch

步骤 3: 确认服务已禁用

通常在删除包时服务会被禁用。如需保险起见进行确认和禁用,请执行以下命令:

$ sudo systemctl disable fess.service
$ sudo systemctl disable opensearch.service
$ sudo systemctl daemon-reload

步骤 4: 删除数据目录

Warning

执行此操作会完全删除所有索引数据。

$ sudo rm -rf /var/lib/fess
$ sudo rm -rf /var/lib/opensearch

步骤 5: 删除配置文件(如未使用 dpkg -P)

$ sudo rm -rf /etc/fess
$ sudo rm -rf /etc/default/fess
$ sudo rm -rf /etc/opensearch

步骤 6: 删除日志文件

$ sudo rm -rf /var/log/fess
$ sudo rm -rf /var/log/opensearch

步骤 7: 删除用户和组(可选)

如果未使用 dpkg -P,则 fess 用户和组会保留。 如需删除,请执行以下命令:

$ sudo userdel fess
$ sudo groupdel fess
$ sudo userdel opensearch
$ sudo groupdel opensearch

Docker 版的卸载

步骤 1: 删除容器和网络

删除容器,以及 Docker Compose 创建的网络(search_net):

$ docker compose -f compose.yaml -f compose-opensearch3.yaml down

步骤 2: 删除卷

Warning

执行此操作会完全删除所有数据。

Fess 的数据(索引和词典等)保存在 OpenSearch 的卷中。 首先,确认卷列表:

$ docker volume ls

删除 OpenSearch 相关的卷:

$ docker volume rm <project>_search01_data
$ docker volume rm <project>_search01_dictionary

Note

卷名会带有 Docker Compose 的项目名(通常是放置 Compose 文件的目录名)作为前缀。 请使用 docker volume ls 确认实际名称。

如需一并删除容器和卷,请在 down 后加上 -v 选项:

$ docker compose -f compose.yaml -f compose-opensearch3.yaml down -v

步骤 3: 删除镜像(可选)

如需删除 Docker 镜像以释放磁盘空间:

$ docker images | grep fess
$ docker rmi ghcr.io/codelibs/fess:15.9.0
$ docker rmi ghcr.io/codelibs/fess-opensearch:3.9.0

步骤 4: 删除 Compose 文件

$ rm compose.yaml compose-opensearch3.yaml

确认卸载

确认所有组件已删除。

确认进程

$ ps aux | grep fess
$ ps aux | grep opensearch

如果没有显示任何内容,则进程已停止。

确认端口

$ sudo ss -tuln | grep 8080
$ sudo ss -tuln | grep 9200

确认端口未被使用。

确认文件

ZIP 版:

$ ls /path/to/fess-15.9.0  # 确认目录不存在

RPM/DEB 版:

$ ls /var/lib/fess  # 确认目录不存在
$ ls /etc/fess      # 确认目录不存在

Docker 版:

$ docker ps -a | grep -E 'fess01|search01'  # 确认容器不存在
$ docker volume ls | grep search01           # 确认卷不存在

确认包

RPM 版:

$ rpm -qa | grep fess
$ rpm -qa | grep opensearch

DEB 版:

$ dpkg -l | grep fess
$ dpkg -l | grep opensearch

如果没有显示任何内容,则包已删除。

部分卸载

仅删除 Fess 保留 OpenSearch

如果 OpenSearch 也被其他应用程序使用,可以仅删除 Fess。

  1. 停止 Fess

  2. 删除 Fess 的包或目录

  3. 删除 Fess 的数据目录(如 /var/lib/fess)

  4. 删除 OpenSearch 中创建的 Fess 索引

    Fess 索引的名称以 fess 开头(fess.*、fess_config.*、fess_user.*、fess_log.*、fess_crawler.*、fess_suggest* 等)。可以使用以下命令一并删除。

    $ curl -X DELETE 'http://localhost:9200/fess*'
    

    删除之前,请先用 curl 'http://localhost:9200/_cat/indices?v' 确认没有其他应用程序的索引名称以 fess 开头。用于同步词典的 configsync 索引,如果没有被其他应用程序使用,也可以删除。

  5. 不删除 OpenSearch

仅删除 OpenSearch 保留 Fess

Warning

删除 OpenSearch 后,Fess 将无法工作。 请更改配置以连接到其他 OpenSearch 集群。

  1. 停止 OpenSearch

  2. 删除 OpenSearch 的包或目录

  3. 删除 OpenSearch 的数据目录(如 /var/lib/opensearch)

  4. 更新 Fess 的配置以指定其他 OpenSearch 集群

故障排除

无法删除包

症状:

rpm -e 或 dpkg -r 出现错误。

解决方法:

  1. 确认服务已停止:

    $ sudo systemctl stop fess.service
    
  2. 确认依赖关系:

    $ rpm -qa | grep fess
    $ dpkg -l | grep fess
    
  3. 强制删除(最后手段):

    $ sudo rpm -e --nodeps fess
    $ sudo dpkg -r --force-all fess
    

无法删除目录

症状:

rm -rf 无法删除目录。

解决方法:

  1. 确认权限:

    $ ls -ld /path/to/directory
    
  2. 使用 sudo 删除:

    $ sudo rm -rf /path/to/directory
    
  3. 确认进程是否在使用文件:

    $ sudo lsof | grep /path/to/directory
    

重新安装的准备

如果卸载后要重新安装,请确认以下内容:

  1. 所有进程已停止

  2. 所有文件和目录已删除

  3. 端口 8080 和 9200 未被使用

  4. 没有残留以前的配置文件

关于重新安装步骤,请参阅 选择安装方法。

下一步

卸载完成后:

  • 要安装新版本,请参阅 选择安装方法

  • 要迁移数据,请参阅 升级步骤

  • 要考虑替代的搜索解决方案,请参阅 Fess 官方网站