为什么是 SearXNG

SearXNG 是一个开源的互联网元搜索引擎,主要为用户提供隐私保护的搜索体验。它的好处就是聚合多个搜索引擎(超过70多个)和数据库的搜索结果,为用户提供一站式的搜索服务。与传统的搜索引擎不同,SearXNG 不会追踪用户的搜索历史或建立个人档案,从而确保用户的隐私安全。

基于 SearXNG 的特点,我们可以将它部署到小型的开发板上,为家庭或者中小型企业提供搜索服务。其实,作为我个人而言,部署 SearXNG 的目的是为了配合 Perplexica 使用,实现本地人工智能搜索,不过目前 Perplexica 的 node 模块在 RISC-V 上编译还有些问题,于是就先聊聊 SearXNG 在 RISC-V 上的部署。

创建正确的 Python 版本运行环境

目前我在两个常用的 Linux 发行版上尝试过,一个是 Archlinux ,另一个是来自 RuyiSDK 团队 Revy 主导的 RevyOS,RevyOS 本质是基于 Debian 开发的发行版,目的是更好的兼容玄铁 RISC-V 芯片,包括且不限于c906fdv,c910v,c908 等。

不论哪个发行版,非常建议使用 python 3.11 来创建 SearXNG 的运行环境,当然啦,也是目前 SearXNG 官方文档提到的。

我个人在 RevyOS 的 3.11.4 和 Archlinux 3.11.11 上都实践了。但是 RevyOS 上失败了,而在 Archlinux 上是成功了

下面先聊一聊在 RevyOS 上实践的经过。实际操作起来,网络一定要顺畅,比方说下载 Python 相关包;另外试试大家的运气能不能更好。

RevyOS 上的 python 版本比较方便,正好是 3.11 这个大版本号,我们需要安装一些必备工具,方便后续折腾。

sudo apt install rustc cargo rustfmt python3.11-venv

以上可能是必须的依赖,后面在看情况调整。

python3 -m venv searxng

用这个代码创建一个 python 3.11 下的 searxng 环境。在通过下面的命令激活这个环境。

source searxng/bin/activate

随后就可以到你觉得方便操作的目录下开始准备 searxng 了。我是到 searxng 这个目录下操作,以下以我的情况为例。

cd searxng
git clone https://github.com/searxng/searxng
cd searxng

在目录下可以看到有两个 requirements 名字的文件,一个是 requirements-dev.txt,还有一个就是 requirements.txt,我两个都安装了:

pip install -r requirements.txt
pip install -r requirements-dev.txt

随后我还是按照官方文档的步骤,如下操作:

pip install -U pip
pip install -U setuptools
pip install -U wheel
pip install -U pyyaml
pip install --use-pep517 --no-build-isolation -e .

一般来说,如果没有意外,在目前的目录下会出现一个 searx 的目录,里面有个 webapp.py 的文件,直接运行:

python webapp.py

这样就能运行 SearXNG 了,不过有可能会提示你 secret_key 修改成其它的,用文档编辑器打开:settings.yml 文件修改保存即可。再重新跑一下 python webapp.py 就好了。

不过,情况不会有那么顺利,运行后会提示缺少 searx 模块,这个时候我们运行 pip install -U searx 会提示 lxml 错误。所以目前在 RevyOS 上暂时没有实践通过。


下面聊一聊在 Archlinux 上实践经过。实践过程同上,在网络一切正常的情况下,通过 pip 下载包能顺畅一些。

Archlinux 上目前默认的 python 版本是:3.13.1 ,并不方便使用 venv 创建 3.11 的 python 虚拟环境,于是可以考虑使用 pyenv 这个工具实现。首先可以通过下面的命令安装一些必要的工具:

pacman -S pyenv pyenv-virtualenv rust

rust 后面在编译依赖的时候需要。安装完成后,需要大概了解一下关于 pyenv 的命令,方便后续操作起来就能更加简单:

查看有些什么 python 版本pyenv install --list

安装我们需要的 python 版本pyenv install -v 3.11.11

为 3.11.11 版本的 python 创建名为 searxng 的虚拟环境pyenv virtualenv 3.11.11 searxng

激活这个环境pyenv activate searxng

这个时候会在你所在目录下(一般是你个人用户的目录下)有一个叫做 searxng 的目录,cd 进入这个目录,使用 git clone 将 searxng 项目抓到本地。

git clone https://github.com/searxng/searxng

这个时候再 cd 到 searxng 目录下。可以利用 pip 安装依赖甚至是开发环境,我个人是将 requirements.txtrequirements-dev.txt 都全部安装了。随后的步骤如下:

pip install -U pip
pip install -U setuptools
pip install -U wheel
pip install -U pyyaml
pip install --use-pep517 --no-build-isolation -e .

一般来说就能正常跑完了。如果到 searx 目录下 python webapp.py 仍然提示缺少 searx 模块,可以正常通过 pip install -U searx 完成。运行一切正常的话,应该在本地打开 127.0.0.1:8888 就能正常访问 SearXNG 搜索页面了。


写在最后

其实折腾 SearXNG 只是我想折腾本地化 Perplexica 的一个子项目。个人对 SearXNG 这个搜索大致了解一些,感觉搜索的结果还不错。如果朋友们恰好有这样一个小机器,并希望为局域网内的成员提供统一搜索的功能,那么这个实践是不容错过的。祝好运。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注