web-dev-qa-db-ja.com

systemdがすでにインストールされている場合、Arch Linuxでsystemdをopenrcに置き換えるにはどうすればよいですか?

トラブルが予想されるので、警告しないでください;-)。警告ではなく、ガイダンスを求めています。

由緒あるArchラップトップのsystemdOpenRCに置き換えたいので、pacman -S openrcを実行しました。いいよこれで、openrcをターゲットとし、libsystemdを削除するlvm2-openrcなどのパッケージがいくつかあります。ただ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がインストールされているコンピューターを1台だけインストールしており、問題はありませんでした。 systemdのみのマシンからそこに行きたいのですが。今のところ私がポケットに持っている唯一の答えは、すべてを再インストールすることですが、強制されない限り、非常に理解しやすい理由でそれを避けたいので、それは可能ですか?

4
user86969

それは完全な混乱であることがわかりました。私の経験から、fromsystemd ...よりもtoに切り替える方が簡単です...少なくともArchでは。それが望ましくない効果であると私は確信していません。

存在しない(404エラーが発生する)リポジトリを参照するチュートリアルがあります。いくつかは、適用されなくなったステップを示したり、システムをめちゃくちゃにしてしまうものがあります。私が従ったチュートリアルでは、キーボードとタッチパッドとマウスが機能しなくなったグラフィックスシステムを残しました。短い間使用できません。

Arch/Manjaroから Artix への移行ガイドもあります。しかし、移行チュートリアルは私が従ったものであり、私のシステムが修正するにはあまりにも混乱していることを発見しただけです。

次に、Manjaro Architectを使用してOpenRCでManjaroをインストールする方法を示す video (フランス語)を見ました。だから私は手順に従うことにしました。ある時点で、つまりopenrcsystemdの選択肢が表示されたベースパッケージを構成します。残念ながら、インストール中に間違えたので、もう一度やり直さなければならないのではないかと思いました。理由はわかりませんが、インストールを7回再起動しましたが、openrcsystemd...の間のオプションがなくなったため、選択肢が1つだけ残っています:systemd。私の試みはどれも、選択肢を取り戻すことはできませんでした。 USBインストールメディアを上書きしても問題は解決しませんでした。そのため、インストーラはおそらく更新されていて、openrcはManjaroのオプションではなくなったと結論付けました。

私が最終的にGentooをインストールしたのは、その選択と制御を可能にする唯一のシステムであるためです。 Gentooは2004年に私の最初のディストリビューションだったので、私はエイリアンエリアにはいません。そして、openrcを提供してくれたGentoo開発者に感謝します。彼らはそのことで称賛されるに値する。

これは悪い旅の終わりです。

4
user86969

pacman には、パッケージの削除を容易にする便利なフラグがいくつかあります。

systemdlibsystemdをnukeして、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*://')

もちろん、インストールした内容によっては、さらにいくつかのレベルに進む必要があるかもしれませんが、問題が発生すると予想していました。

2
StrongBad