一位Debian用户因不满systemd不断扩展职责(如集成年龄验证字段、推出系统安装程序systemd-sysinstall),决定在自家实验笔记本上将其替换为OpenRC。整个过程并不简单:卸载systemd需使用--allow-remove-essential参数,且安装顺序必须小心,否则OpenRC可能意外被移除。替换后系统启动正常,但电池状态和音频驱动需手动转换service脚本。作者认为实验成功,未来可能将工作设备也迁移至OpenRC。
背景:为什么想换掉systemd
作者并非systemd反对者,承认它工作良好,但两件事让他感到不适。一是systemd在部分国家年龄验证法案尚未通过时就集成了相关字段,违背了他对开源社区抵制不合理立法的预期。二是systemd开始接管系统安装程序职责(systemd-sysinstall),从一个PID 1的init系统向全能工具演变,这触发了他对Unix KISS哲学的坚持。好奇心驱动下,他决定在备用机——一台运行Debian Testing的ThinkPad X13s(骁龙平台)上尝试OpenRC。
安装过程与关键挑战
最直接的障碍是apt默认不允许卸载essential包。直接sudo apt purge systemd会报错,必须加上--allow-remove-essential。正确做法是同时安装OpenRC和sysvinit-core,再卸载systemd:
sudo apt purge --allow-remove-essential systemd && sudo apt install openrc sysvinit-core
但执行后首次重启失败。进恢复模式后发现OpenRC未被安装或已被移除,需要重新联网并安装。修复后系统顺利启动。
接着解决硬件支持:电池状态因内核回归问题失效(与替换init无关),音频需配置PipeWire/WirePlumber。作者将systemd原用于启动高通远程处理器(SLPI/ADSP/CDSP)的oneshot服务转换为OpenRC能识别的简单脚本,放入/etc/init.d/并启用,电池功能恢复正常。音频部分暂未深究。
作者坦言,在稳定工作系统上更换init系统风险不小,但实验给了他信心。“这也是Unix自由的体现——你可以选择任何可用的工具。”下一步他将继续在实验机上评估OpenRC的稳定性,若满意则迁移主力工作机。
编注:信源为个人技术博客,材料基于作者在Debian Testing环境下的实验,未涉及所有硬件兼容性,仅供参考。