Wie konfiguriere ich eine Nix-Umgebung außerhalb von NixOS?


8

Bisher habe ich den Nix-Paketmanager durch nix-env -iInstallieren von Paketen ausprobiert . Jetzt möchte ich das mit einem verwalten ~/configuration.nix, wie im Beispiel hier , damit ich es in meinen Punktedateien versionieren kann. Gibt es eine Möglichkeit, diese Konfiguration aus meiner aktuellen Umgebung zu generieren?

Alle Informationen, die ich zur Konfiguration auf Benutzer- oder Systemebene finden kann, sind spezifisch für NixOS und setzen voraus, dass ich ausgeführt habe nixos-generate-config, um die Datei zu erstellen. Dieses Tool ist bei nixpkgs nicht verfügbar, weshalb ich denke, dass es nur zum Erstellen einer NixOS-Installation gedacht ist, nicht für die allgemeine Erstellung von Konfigurationsdateien.

Warum erstellt der Nix-Paketmanager diese Datei nicht, wenn sie installiert ist? Wie konfigurieren Nix-Benutzer (nicht NixOS-Benutzer) ihre installierte Software, z. B. Vim-Plugins, ohne diese Datei?


1
Überprüfen Sie heraus github.com/rycee/home-manager
Ben Creasy

Es ist etwas mehrdeutig, was hier unter "Nix-Umgebung" zu verstehen ist.
Chris Stryczynski

Antworten:


5

Diese Datei ist in der Tat spezifisch für NixOS und wird bei der Installation von NixOS automatisch erstellt. Es gibt jedoch Problemumgehungen.


3

Ich verwalte meine Dotfiles unter Ubuntu mit Nix. Ich führe dieses Skript aus, das nur ein Wrapper um dieses Installationsprogramm ist .

Das Installationsprogramm versioniert die Punktedateien in ein Nix-Paket und verknüpft sie mithilfe von GNU stow wieder mit Ihrem Home-Verzeichnis.

Es ist wahrscheinlich für die meisten Leute etwas komplex, aber ich verwende es, um Punktedateien zwischen NixOS, Ubuntu und OSX zu verwalten.


0

Sie können eine "Nix-Shell" -Umgebung mit einem Nix-Ausdruck wie dem folgenden verwalten:

shell.nix

{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
  buildInputs = [ pkgs.bash pkgs.zsh pkgs.curl pkgs.wget ];
}

Und um diese Umgebung zu "betreten", führen Sie Folgendes aus: nix-shell shell.nix

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.