Zunächst das Paket aus den Repos installieren:
Dies installiert das Paket bzw. Nix als Multiuser-Variante. Allerdings ist die Konfiguration danach alles andere als komplett.
Zunächst muss bei Multiuser der Nix-Daemon gestartet werden:
sudo systemctl status nix-daemon.socket nix-daemon.service
sudo systemctl start nix-daemon.socket nix-daemon.service
sudo systemctl enable nix-daemon.socket nix-daemon.service
Zum Laden der Pakete verwendet Nix Zertifikate, welche es aber unter Tumbleweed von selbst nicht findet. Daher sollte (zumindest am Anfang) die Umgebungsvariable NIX_SSL_CERT_FILE eingerichtet werden. D.h. man weist ihr den Pfad zum openSUSE-Zertifikatspeicher zu, indem man die Servicedatei bearbeitet:
Im nun gestarteten Editor den Override-Bereich der Textdatei (zwischen den drei ### und den drei ###) posten:
vi dann mit <Esc>, ":wp" verlassen
Das erste Hello World könnte somit jetzt erfolgreich heruntergeladen werden und laufen:
Es wird "Hello, world!" ausgegeben.
"nix-shell -p hello" scheitert aber noch, da 'nixpkgs' nicht im Suchpfad liegt. Man kann sich zunächst mit
behelfen.
Es werden zum Test zahlreiche Pakete in den lokalen Nix-Store (Paketspeicher) geladen. Wenn man die Shell so anlegt, gilt nach meinem Verständnis :
Ruft das Tumbleweed-Python3 auf.
Der Clou:
zeigt, dass gcc aus dem lokalen Nix-Store kommt.
Mit
sorgt der --pure-Parameter dafür, dass man python3 nicht mehr aufrufen kann und man hat nach meinem Verständnis eine abgekapselte Nix-Shell. Was in eine Shell hinein installiert wird, kann man später z.B. über eine shell.nix -Datei festlegen!
Das oben genannte Problem mit der Unauffindbarkeit von nixpkgs ist ärgerlich und sollte sich mit einem ersten Update klären. Leider zerlegt es beim Aufruf von sudo die Umgebungsvariable für die Download-Zertifikate, sodass sich folgender Aufruf zum Updaten ergibt:
Hier ist dann die Frage, ob Nix schon auf einen Channel (sowas wie ein Repo) als Bezugsquelle für seine Pakete eingestellt ist.
Channel hinzufügen:
Konfigurierte Channels anzeigen:
jedenfalls sollte das Update möglich sein und sich die Hello-Shell auch auf kurzem Wege anlegen lassen:
oder auch
![]()
Behelfen kann man sich beim Update bezüglich der blöden Umgebungsvariable und sudo risikofreudigerweise durch das Bearbeiten der sudo-Konfiguration mit "sudo visudo". Etwas weiter unten, bei "Defaults env_keep" kann man NIX_SSL_CERT_FILE in der Aufzählung, mit Leerzeichen getrennt hinzufügen. Im Moment bin ich mir aber über die Konsequenzen noch nicht abschließend im Klaren, denn an der sudo-Konfiguration herumzuspielen ist immer riskant! Oder man legt sich einfach ein Alias an...