私は現在systemd
Manjaroを使用しており、OpenRCを使用してArtixに切り替える予定ですsystemd
。私はsystemdではなくinitシステムの1つの問題は、いくつかのパッケージがsystemdに依存していることを読んでいますが、私が見つけることができる唯一の例はsnap
次のとおりです。次の投稿)。
OpenRCを使用することにした場合、現在使用中のパッケージが機能していないことを確認できるように、systemdおよび/または関連パッケージに依存する現在インストールされているパッケージを一覧表示する方法はありますか?
答え1
質問は少し不明ですが、システムにインストールされているsystemd
上記のパッケージをリストしていると仮定すると、Depends on
簡単に確認できますpacman
(manjaroにあるため)。
pacman -Qi systemd | grep Required
私の場合は、次のように表示されます。
Required By : android-udev at-spi2-core base bluez-utils colord dhcpcd dunst iio-sensor-proxy libcolord libgudev libinput libmbim libpulse libwacom mdadm media-player-info mkinitcpio netctl phodav polkit rtkit sbupdate-git subversion swayidle systemd-sysvcompat transmission-cli upower vte3 xdg-desktop-portal zram-generator
これは、systemdがなければ、これらのプログラムを使用できないことを意味しますか?不要。
私はアーチを使用しており、アーチとマンジャロは両方ともsystemdベースのシステムの公式サポートを提供しています。これは、公式リポジトリ(initシステム、udev、syslogなどが必要)のバイナリパッケージがそれを念頭に置いてパッケージ化されたことを意味します。 Systemdはこれらの役割を果たすので、アーチパッケージに必要な場合(実際にはそうではない)パッケージャsystemd
がPKGBUILD
。
いくつかの例を挙げてみましょう。私の場合は、dhcpcdを依存関係として一覧表示できますsystemd
。これは便宜上、実際に起動するためにinitシステムを必要としません。端末で実行できますdhcpcd
。パッケージマネージャは、dhcpcdを使用してdhcpcdを起動するか、systemctl
起動後にsystemdによって起動されるように一部のsystemdサービスをパッケージ化しました(これも〜/ .profileまたは他の自動起動スクリプトでシェルスクリプトを実行することで簡単に実行できます)。
別の例は、libinput
.libinputにはパッケージで提供されるため、依存関係で提供されるudevが必要であることsystemd
ですsystemd
。artix
はいeudev
、公式パッケージはこれを念頭に置いてパッケージ化されましたeudev
。 sucklessudev
などの他の選択肢があり、これらのさまざまな環境に対応するためにテキスト構成ファイルを少し調整するだけです。nldev
mldev
netctl
systemd
(Network Manager)もリストされていますが、そのサービスで起動する必要はありません。 (たとえば)から始めることができます ~/.profile
。
これはプログラムコードにハードコードされていません。一般人の観点から見ると、唯一の違いは、サービス管理者ごとに異なる構成構文と場所を使用して保存することです。
これはから抜粋したものです。Gentoo Wiki。 Gentooユーザーの場合は、次のアイデアを得ることができます。
一部のアップストリームパッケージは、systemdベースのディストリビューションに簡単にインストールできるようにsystemdユニットファイルを提供し、ほとんど基本的に動作するように努めますが、systemdとのより重い統合を実行したり、機能に応じて特定の機能を必要としません。システムの。これらのパッケージはsystemdへの実際の依存関係(「ソフト」または「ハード」)を持つとは見なされず、systemdの公式のebuildポリシーに従って、ユニットファイルは小さなテキストファイル(bash完了、logrotateなど)の一般的なガイドラインに従います。 ebuildはsystemd USEフラグに基づいてインストールを防止しないでください。
そして
sys-apps / openrcがインストールされていない場合、OpenRCサービススクリプトが何もしないように、ユニットファイルは無害で、systemdがインストールされていない場合は何もしません。ただし、システムデバイスファイルを自分のコンピュータに絶対に望まないユーザーは、/etc/portage/make.confのINSTALL_MASK変数にシステムデバイスファイルパスを追加できます。
したがって、manjaroからartixに変更すると、パッケージ(パッケージング用systemd
)が破損するのではなく、パッケージartix
マネージャがパッケージをパッケージ化するときに実装を念頭に置くことになるため、一般に何も破損する問題はありません。
snap
AFAIKの場合systemd-tmpfiles
でも一時ファイルを作成および削除しますsystemd.mount
。この人がやった
しかし、
一部のパッケージはsystemdまたは一部のパッケージに強い依存関係を持つことができるという事実です。Gnome desktop
環境などのサービスは次のように異なります。存在するsystemd-logind
。しかし、artixのテストにはgnome-openrc iso(アルファ)があります。ステップ。
答え2
あなたの質問は意味があります。
ただし、システム化されたシステムでは、openrc initシステムに必要なシステム依存関係を確実に見つけることができません。
openrc初期化システムで実際に見つけることができます。依存性の構築一部のパッケージはsystemdにあります。 (パッケージを構築するにはsystemdにいくつかのコードが必要です。)(udev、tmpfiles、elogind ...)
私が提案できる最善の方法は、ここで調査を始めることです。Gentooのsys-apps / systemdの逆依存性リスト[B]で始まる行を観察してください。
もちろん、一部のパッケージではシステムビルドの依存関係に代わるものを提供できます。興味があれば、もっと学びましょう。