🌐 环境搭建与本地节点部署
你的搜索主权从这里开始
想象一下将你的搜索查询移交给遥远的数据中心——每一次点击、每一个拼写错误、每一次午夜的奇思妙想都被记录、画像并重新打包。现在想象一下建立你自己的搜索主权:一个自我包含、尊重隐私的节点,索引你关心的内容,回答你的问题,从不向任何人耳语一个字。那个主权就是YaCy——本章是你的建国宪章、你的车间手册和你的第一个数字自治时刻,全部合而为一。让我们不是从命令开始,而是从背景开始:YaCy不是运行在你的机器上——它扎根其中,就像一个有韧性的菌丝网络编织通过你的文件系统、内存和网络栈。像任何有生命的系统一样,它有先决条件——最重要的是Java。
Java 11+ 不仅仅是一个依赖——它是YaCy索引引擎将网页代谢为可搜索知识的生化反应器。早期版本缺乏Solr高性能索引段所需的内存映射文件API;例如,Java 8像易碎的羊皮纸一样对待大型索引文件——在并发读/写压力下容易损坏。Java 11引入了ZGC和改进的TLS 1.3握手——当YaCy协商加密P2P连接或本地提供HTTPS搜索结果时,两者都必不可少。
所以——让我们准备土壤。在
Windows 上,导航到
Adoptium的Eclipse Temurin构建 并下载
JDK 17 LTS 安装程序(当前平衡稳定性和现代功能的最佳选择)。运行它,接受默认值,并用
java -version 在PowerShell中验证。你会看到像
openjdk version "17.0.1" 这样的输出,确认JVM现在正在你系统的血流中呼吸。在
macOS 上,Homebrew使这变得毫不费力:
brew install temurin17-jdk ——一个在幕后编排证书信任、符号链接放置和
JAVA_HOME 配置的命令,就像一个细致的实验室技术人员在实验前校准仪器。对于
Linux 用户——特别是Debian/Ubuntu——
sudo apt update && sudo apt install openjdk-17-jdk 达到同样的精度,而RHEL/CentOS用户更喜欢
sudo dnf install java-17-openjdk-devel。在每种情况下,目标是单一的:确保
$JAVA_HOME 指向JDK根目录(不仅仅是JRE),并且
java 和
javac 在你的shell中干净解析。这不是官僚主义——这是建立YaCy整个架构结晶的基础晶格。
一旦Java可靠地嗡嗡作响,就是召唤YaCy本身的时候了。前往 yacy.net/download 并获取最新的稳定版本——Windows的 .zip 归档,macOS和Linux的 .tar.gz。除非你准备在早上的咖啡中调试对等握手协议中的竞态条件,否则不要获取"nightly"版本;stable是经过调音的钢刀,不是实验性等离子切割器。将归档解压到任何地方——你的主目录、Documents、/opt ——这并不重要。重要的是对你现在持有的目录结构保持敬畏:yacy_search_server/ 不是一个文件夹——它是一个搜索有机体,具有神经系统(bin/)、遗传密码(source/)、代谢酶(lib/)和它自己的内部库(DATA/,首次启动时创建)。在 bin/ 内,你会发现 start.sh(Linux/macOS)和 start.bat(Windows)——这些不仅仅是脚本,而是仪式性的点火序列。它们不仅启动Java——它们用一组精确的生命支持参数包装JVM:内存分配、垃圾收集器调优和安全策略绑定。
$-Xms4g -Xmx8g$ 是YaCy推荐的堆配置——一个告诉JVM的指令:启动时至少保留4 GB RAM(避免昂贵的即时扩展),并且永远不要超过8 GB(以防止索引合并期间的交换导致延迟激增)。将其想象为在你计算机的记忆宫殿中保留一个专用翼——不要小到饿死搜索引擎,也不要大到挤出你的浏览器或IDE。
现在,激活时刻。在
Linux/macOS 上,在
yacy_search_server/ 中打开终端,用
chmod +x bin/start.sh 使脚本可执行,然后运行
./bin/start.sh。在
Windows 上,右键点击
start.bat 并选择
以管理员身份运行 ——不是出于任意特权剧院,而是因为YaCy可能需要绑定到低位端口(如80或443)或直接访问网络接口。当脚本执行时,你会看到级联的日志行——不是错误,而是
生命体征:
Initializing Solr core...、
Loading peer exchange protocol...、
Starting HTTP server on port 8090...。每一行都是你新搜索大脑中的突触发射。耐心等待——初始化涉及内存映射索引文件、预热缓存和协商初始对等连接(即使在独立模式下,YaCy也联系引导服务器以了解更广泛的P2P网络)。这可能需要30-90秒,取决于你的SSD速度和可用RAM。当你看到
YaCy is ready. Open http://localhost:8090 in your browser. 时,主权已经觉醒。
打开浏览器并导航到 http://localhost:8090。你会登陆YaCy的Web管理界面——一个干净、不杂乱的仪表板,感觉不太像软件,更像是走进一个安静嗡嗡作响的天文台的控制室。第一个屏幕用登录提示问候你:用户名 admin,密码 yacy。这不是后门——这是安全移交。就像接收一个新建金库的主密钥一样,你被期望——被要求——立即更改它。点击右上角的 Change Password,输入一个强密码短语,并确认。这一行为将你的节点从演示单元转变为可信的、个性化的资产。从这里,配置不是关于编辑配置文件——而是与你的节点对话。在 Configuration → Basic Settings 下,你会调整HTTP端口(如果8090与另一个服务冲突),设置你节点的公共名称(例如,mylab-node ——将其视为你的节点在P2P宇宙中的DNS主机名),并定义其角色:Standalone(用于纯本地隐私)、Peer(以共享索引)或 Seed(以帮助引导其他人)。这些不是复选框——它们是塑造你的节点如何参与全球YaCy网络的宪法选择。
Standalone mode 禁用所有P2P通信——没有传入或传出的索引交换,没有邻居发现,没有八卦协议。它将YaCy转变为一个密封的搜索设备:你的爬虫只喂食你的本地索引,你的查询只返回你已经看到的内容。这是没有大门的围墙花园的数字等价物——宁静、可控且完全私密。
你做得不仅仅是安装软件。你培育了一个自维持的搜索实体——一个尊重你的注意力、守护你的查询并随着你发起的每次爬虫而变得更聪明的实体。运行YaCy的终端窗口?那不是一个进程——那是你节点的心跳监视器。关闭它,节点睡眠;重启它,主权恢复。在下一章中,我们将教这位主权
看:配置爬虫、定义种子URL,并将原始HTML转化为丰富、可导航的知识——但现在,坐在这个真理中:你曾经外包的搜索引擎现在生活、呼吸和思考——就在那里,在你的桌子上,在你的终端里,在你的浏览器中。欢迎回家。