当 systemd 已经安装时,如何在 Arch Linux 上用 openrc 替换 systemd?

当 systemd 已经安装时,如何在 Arch Linux 上用 openrc 替换 systemd?

我预计会有麻烦,所以不要警告我;-)。我正在寻求指导,而不是警告。

我想更换systemd我古老的 Arch 笔记本电脑,OpenRC所以我就跑了pacman -S openrc。美好的。现在有几个软件包,例如lvm2-openrc、which targetopenrc和 that 想要删除libsystemd。只是这pacman并不完全同意:

pacman -S lvm2-openrc
resolving dependencies...
looking for conflicting packages...
:: device-mapper-nosystemd and device-mapper are in conflict. Remove device-mapper? [y/N] y
:: libeudev and libsystemd are in conflict (libudev.so). Remove libsystemd? [y/N] y
:: lvm2-nosystemd and lvm2 are in conflict. Remove lvm2? [y/N] y
:: eudev and systemd are in conflict (udev). Remove systemd? [y/N] y
error: failed to prepare transaction (could not satisfy dependencies)
:: accountsservice: removing systemd breaks dependency 'systemd'
:: ceph: removing libsystemd breaks dependency 'libsystemd'
:: colord: removing systemd breaks dependency 'systemd'
:: crda: removing systemd breaks dependency 'systemd'
:: cups: removing systemd breaks dependency 'systemd'
:: dhcpcd: removing libsystemd breaks dependency 'libsystemd'
:: lib32-systemd: removing systemd breaks dependency 'systemd'
:: libatasmart: removing libsystemd breaks dependency 'libsystemd'
:: libgudev: removing libsystemd breaks dependency 'libsystemd'
:: libinput: removing systemd breaks dependency 'systemd'
:: libmbim: removing systemd breaks dependency 'systemd'
:: libpulse: removing systemd breaks dependency 'systemd'
:: libusb: removing libsystemd breaks dependency 'libsystemd'
:: libwacom: removing systemd breaks dependency 'systemd'
:: mariadb: removing libsystemd breaks dependency 'libsystemd'
:: mkinitcpio: removing systemd breaks dependency 'systemd'
:: modemmanager: removing systemd breaks dependency 'systemd'
:: netctl: removing systemd breaks dependency 'systemd'
:: openvpn: removing libsystemd breaks dependency 'libsystemd'
:: pcmciautils: removing systemd breaks dependency 'systemd'
:: pcsclite: removing systemd breaks dependency 'systemd'
:: plymouth: removing systemd breaks dependency 'systemd'
:: procps-ng: removing libsystemd breaks dependency 'libsystemd'
:: rpcbind: removing libsystemd breaks dependency 'libsystemd'
:: rtkit: removing systemd breaks dependency 'systemd'
:: subversion: removing systemd breaks dependency 'systemd'
:: upower: removing systemd breaks dependency 'systemd'
:: util-linux: removing libsystemd breaks dependency 'libsystemd'
:: xdg-user-dirs: removing systemd breaks dependency 'systemd'
:: xf86-input-evdev: removing libsystemd breaks dependency 'libsystemd'
:: xf86-input-wacom: removing libsystemd breaks dependency 'libsystemd'

我该如何解决这些冲突?一旦systemd安装了,如何删除呢?它可以被完全删除还是必须保留其中的一些(多少和什么)?

到目前为止,我只在一台计算机上安装了 Arch 和 OpenRC,并且没有遇到任何问题。我想从仅使用 systemd 的机器到达那里。到目前为止,我口袋里唯一的答案是重新安装所有东西,但我宁愿避免这种情况,除非被迫,原因很容易弄清楚,那么这可能吗?如何?

答案1

结果结果是一团糟。根据我的经验,切换更容易systemd...至少在 Arch 中是这样。我不相信这是一种不希望的效果。

有些教程引用了不再存在的存储库(出现 404 错误),有些教程指示不再适用的步骤,或者其他教程会让您陷入混乱的系统。我遵循的教程给我留下了一个图形系统,我的键盘、触摸板和鼠标不再工作。短期内无法使用。

还有一个从 Arch/Manjaro 到阿蒂克斯。但我遵循了迁移教程,却发现我的系统太混乱了,无法修复。

然后我看到一个视频(法语)演示了如何使用 Manjaro Architect 通过 OpenRC 安装 Manjaro。所以我决定按照步骤进行。在某些时候,即配置基础包时,系统会提示您选择:openrcvs systemd。不幸的是,我在安装过程中犯了错误,并认为我只需要重新启动,我就这样做了。我不知道为什么,但是 - 我重新开始安装 7 次 -openrcsystemd... 之间的选项消失了,只剩下一个选择:systemd。在我的所有尝试中,我都无法拿回选择权。即使覆盖 USB 安装介质也没有帮助。所以我得出结论,安装程序可能已更新,并且openrc不再是 Manjaro 中的一个选项。

我最终安装了 Gentoo,因为这是我所知道的唯一可以给我选择和控制的系统。 Gentoo 是我 2004 年的第一个发行版,所以我不在 Alien 地区。并感谢 Gentoo 开发人员提供的openrc.他们因此值得受到赞扬。

一次糟糕的旅行就这样结束了。

答案2

有一些有用的标志pacman这使得删除包变得更容易。

你可以直接用核武器攻击systemd,然后留下所有需要的libsystemd包裹systemd

pacman -Rdd systemd libsystemd

systemd或者您可以尝试删除依赖于的软件包

pacman -R systemd libsytemd $(pacman -Qi systemd | grep "Req" | sed -e 's/Required By\s*://') $(pacman -Qi libsystemd | grep "Req" | sed -e 's/Required By\s*://')

当然,根据您安装的内容,您可能需要再上几个级别,但您预料会遇到麻烦。

相关内容