站内公告:

我们的虚拟社区正式开通了

Main Menu

如何完全禁用跟踪器,GNOME 的文件索引和搜索工具

作者 jvip_chen, 2022-1月-24 08:01 下午

« 上一篇主题 - 下一篇主题 »

jvip_chen

Tracker 是 Linux 的文件索引和搜索工具。 Gnome 将其用于某些功能,因此,默认情况下,Tracker 安装在许多 Linux 发行版上。

该工具可加快搜索速度并在"文件"应用程序中启用全文搜索,使基于元数据的批量重命名功能在"文件"应用程序中工作,并在"活动概览"中启用文件和文件夹搜索。 有一些 GNOME 应用程序也依赖于它(没有它就不能工作),比如音乐或照片。
如果没有 Tracker,您将失去这些功能,因此在完全禁用 Tracker 之前要考虑到这一点。

虽然它为 GNOME 桌面带来了许多有用的功能,但在某些情况下,Tracker 也会对性能产生影响。 这些性能问题据称已得到修复,现在甚至在 Ubuntu 19.04、19.10 和 20.04 中默认安装了 Tracker(在旧版本中默认不安装,例如 Ubuntu 18.04)。 但是仍然有用户遇到 Tracker 的性能问题,或者用户认为它过于占用资源。

那些不想使用Tracker的人在大多数情况下无法删除该应用程序,因为其他包依赖于它
. 这是来自 Ubuntu 19.04 的示例:

$ sudo apt remove tracker tracker-extract tracker-miner-fs

Reading package lists... Done
Building dependency tree     
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gir1.2-clutter-gst-3.0 gir1.2-evince-3.0 libgsf-1-114 libgsf-1-common libmusicbrainz5-2
  libtagc0
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  gnome-shell-extension-desktop-icons gnome-sushi insync-nautilus nautilus
  nautilus-mediainfo nautilus-share tracker tracker-extract tracker-miner-fs ubuntu-desktop
  ubuntu-desktop-minimal
0 upgraded, 0 newly installed, 11 to remove and 0 not upgraded.
After this operation, 5,517 kB disk space will be freed.
Do you want to continue? [Y/n]
因此,尝试在 Ubuntu 19.04 上删除 Tracker 会导致 Nautilus、桌面图标扩展和 ubuntu-desktop 元包被删除。 在 Fedora 另一方面,默认安装了更多的 Gnome 软件,删除 Tracker 也想删除 Gnome Boxes、Documents、Photos 和 Totem,以及其他 134 个包。

在 Gnome 桌面上禁用 Tracker 的官方方法是去 Settings -> Search,然后从搜索设置标题栏(窗口顶部)关闭开关。 然而,有用户声称这不会禁用它
,所以我决定尝试一下,在关闭此选项并重新启动系统后,
tracker status
声称它的索引中有超过 100000 个文件,并且它目前正在索引文件。 但是如果您愿意,您可以尝试一下,看看它是否对您的系统有任何影响。

我已经用禁用(和撤销更改)Tracker 3 的说明更新了这篇文章,它是随 GNOME 3.38 一起发布的。 请注意,并非所有使用 GNOME 3.38 和更新版本的 Linux 发行版都使用 Tracker 3 – 例如 Ubuntu 20.10 和 21.04 都使用 GNOME 3.38 但使用 Tracker 2; Fedora 例如 34,使用 GNOME 40 和 Tracker 3。

那么如何完全禁用 Tracker,使其不再索引任何文件,并停止在后台运行任何 Tracker 进程? 您可以使用以下命令屏蔽 Tracker systemd 服务以完全为当前用户禁用它:

对于跟踪器 2:
systemctl --user mask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service
对于追踪器 3:
systemctl --user mask tracker-extract-3.service tracker-miner-fs-3.service tracker-miner-rss-3.service tracker-writeback-3.service tracker-xdg-portal-3.service tracker-miner-fs-control-3.service
在此之后,重置跟踪器:

对于跟踪器 2:
tracker reset --hard
对于追踪器 3:
tracker3 reset -s -r
并重新启动。

如果您在屏蔽 Tracker 服务后重新启动系统,您应该不会再看到任何在后台运行的 Tracker 进程。 或者跑 tracker status (对于Tracker3,运行 tracker3 status) 并且它不应该工作,说该单元被屏蔽(这仅在您同时使用屏蔽和跟踪器重置命令时才会发生)。 你也可以运行 tracker daemon (对于跟踪器 3,运行 tracker3 daemon) 检查 Tracker 守护进程(Tracker Store 和 Tracker Miners)的状态——它们都应该被列为禁用/未运行:


您可能会收到一条警告,指出其中一些服务不存在 – 忽略它。 那是因为例如在 Ubuntu 19.04 上没有 tracker-miner-rss.service 默认情况下,但在 Solus OS 上有一个 Fedora,这反过来又没有 tracker-miner-apps.service.

当屏蔽一个 systemd 服务时,它的单元文件被符号链接到 /dev/null,即使其他服务尝试加载它,也无法加载该服务。 这比禁用服务要好,因为禁用后,如果启动了另一个依赖于它的服务,该服务可能仍会启动。

想要撤消此更改并重新启用 Tracker? 利用:

对于跟踪器 2:
systemctl --user unmask tracker-store.service tracker-miner-fs.service tracker-miner-rss.service tracker-extract.service tracker-miner-apps.service tracker-writeback.service
对于追踪器 3:
systemctl --user unmask tracker-extract-3.service tracker-miner-fs-3.service tracker-miner-rss-3.service tracker-writeback-3.service tracker-xdg-portal-3.service tracker-miner-fs-control-3.service
并在此之后重新启动您的系统.