nix-env
UbuntuホストにSystemDを使用してパッケージをインストールするとします。 UbuntuのSystemDにNixパッケージのSystemDモジュールを認識させるにはどうすればよいですか?
.service
Nixがインストールしたファイルを見つけてシンボリックリンクにリンクしましょう/lib/systemd/system/
。アパッチカフカパック。
nix-env -i apache-kafka
sudo systemctl start apache-kafka # Failed to start apache-kafka.service: Unit apache-kafka.service not found.
sudo updatedb && locate apache-kafka.service # No dice
locate kafka | grep service # Just a bunch of `.nix` files
ここでは、Nixのサービス構成名に基づいてサービス名を推測します。パッケージ定義。この構成がSystemDサービスファイルになる方法と場所を説明する文書が見つかりません。
それでもうまくいかなかったので、Nixがどこかにこのサービスファイルを作成したことは間違いないと仮定して本格的に調査を始めました。しかし、今はそれが存在するかどうか疑問になり始めました。もしそうなら、NixパッケージマネージャがインストールしたSystemDモジュールはNixOSの外部で動作する必要がありますか?それでは、どのように機能させるのでしょうか?
ベストアンサー1
NixOSでは、environment.systemPackages = [ package ];
パッケージのsystemdユニットを使用してシステムにインストールできます。証明する
の単位は、/nix/store/hash-package/lib/systemd/system
にコピーされた/run/current-system/sw/lib/systemd/system
後、systemdで追加のサービスディレクトリとして使用されます。
したがって、ルートとしてパッケージをインストールするときにサービスユニットを使用するには、サービスユニットを追加/root/.nix-profile/lib/systemd/system
で提供する必要があります/etc/systemd/system
。
NixOSを使用しているので、完全にテストされていません。