Bericht Updates unter Linux: Paketmanager NIX aktualisiert (fast) alles

M-X schrieb:
Mir fehlt ein wenig die Beschreibung was NIX jetzt besser macht als die Vorinstallierten Paketmanager der jeweiligen Distribution ?
"Er funktioniert aber unabhängig vom verwendeten System, wie es etwa auch bei Flatpak der Fall wäre. Daher funktioniert ein Paket, das auf einem System läuft, auch auf einem anderen. Ein weiterer Vorteil, der sich bei NIX ergibt: Verschiedene Versionen eines Paketes können installiert werden, ebenso ist eine Rückkehr zu vorherigen Programmversionen jederzeit möglich, falls Probleme im Zuge eines Updates entstehen."


mojitomay schrieb:
Ein Curl (ungeprüft) in die Shell ballern ist aber schon grob fahrlässig...
Ungefähr so fahrlässig wie einen Installer unter Windows zu starten.
Es hängt von der Vertrauenswürdigkeit der Softwarequelle ab.

werpu schrieb:
Was macht das Ding jetzt z.b. besser als Flatpak?
Siehe oben.
Flatpak ist kein Paketmanager und Flatpaks gibt es vielleicht einige hundert.


Lotsenbruder schrieb:
...und als Snap und als Appimage?
Nicht für alles gibt es Snaps, Flatpaks und Appimages.
Außerdem kann es bei den ersteren beiden Probleme mit Rechten geben und die Dinger starten recht träge.
 
  • Gefällt mir
Reaktionen: Deinorius, tic-tac-toe-x-o, Kaulin und 4 andere
Ich hoffe, kein potentieller Linux-User liest das hier.

SlaterTh90 schrieb:
Bei nix gehts eher darum, Software reproduzierbar zu bauen - jedenfalls ist das ein großer Fokus. Mit nix (flakes) kann man alle build inputs versionieren
Als 2. Wort muesste da "flatpak" stehen.
 
Werden denn bestehende Installationen und Pakete erkannt? Auf einem Bestandssystem würde ich mir jetzt eigentlich nicht noch einen Manager installieren wollen.
 
  • Gefällt mir
Reaktionen: Rassnahr, Feuerbiber und DaVinz
flmr schrieb:
Als 2. Wort muesste da "flatpak" stehen.
Das stimmt auch, aber nix ist nochmal auf einem ganz anderen Level unterwegs. Flatpak hat ja eher den Charakter einer Docker-File (was das bauen angeht), plus die bereitgestellten einheitlichen Runtimes. Bei nix ist wirklich alles versioniert, bis runter zum kleinsten minor patch der winzigsten Abhängigkeit.
 
  • Gefällt mir
Reaktionen: Deinorius, MordragT und Tanzmusikus
Martinipi schrieb:
Diese ganzen Paketmanager sind etwas, für das ich Linux-Nutzer beneide. Keine Installer von dubiosen Seiten laden müssen und nicht manuell nach Updates suchen müssen ... das was Steam für Spiele vorgemacht hat einfach auch für Software, toll.
Wenn Windows: nutze winget in der powershell, mit z.B. upgrade --all. Die gängigen Anwendungen (Steam, Discord, Office, OBS etc etc) sind da alle drin.
 
  • Gefällt mir
Reaktionen: Rassnahr, 4nanai, Evil95 und 3 andere
Wie sorgt Nix jetzt eigentlich für die Isolation der verschiedenen Programmversionen gegeneinander bzw. sorgt dafür, das zu jedem Programm die richtigen Abhängigkeiten in der Richtigen Version geladen werden.
Und wer maintained die ganzen Pakete?
 
Ich nutze Flatpaks schon länger unter Linux Mint.
Um die Frage nach dem GUI zu beantworten, es ist gut integriert in die Linux Mint Anwendungsverwaltung und Aktualisierungsverwaltung.

Prinzipiell ist wichtig zu verstehen, Flatpaks sind eine Parallelwelt neben der normalen Paketverwaltung.
Das ergibt Möglichkeiten, die in der normalen Paketverwaltung nicht darstellbar sind.
 
chillking schrieb:
Linux-Anfänger hier:
Ich glaube kaum, dass ein Linux Anfänger sich mit NIX beschäftigt. Der hat ganz andere Sorgen. 🙂
 
  • Gefällt mir
Reaktionen: Deinorius, h00ver, Ray Donovan und 8 andere
chillking schrieb:
Wie sollte man es dann machen?
Du laedst damit ein Skript runter und fuehrst es aus. Die einzige "Sicherheit" ist, dass der Server ein zur Domain gueltiges TLS Zertifikat haben muss (https).

Windows Installer sind manchmal (aber natuerlich bei weitem auch nicht immer) signiert.

Paketmanager willst du u.a. gerade aus dem Grund, dass du vertrauenswuerdige Software aus vertrauenswuerdigen Quellen erhaeltst.

Kuristina schrieb:
Ich glaube kaum, dass ein Linux Anfänger sich mit NIX beschäftigt.
Besser so.
 
  • Gefällt mir
Reaktionen: Kaulin
chillking schrieb:
Wie sollte man es dann machen?
Der ordentliche Weg wäre CURL aufzurufen und damit das Script auf seinen Rechner zu speichern, das Script zu sichten und nach erfolgter Prüfung auszuführen. Vor allem sollte man prüfen, dass etwaige Scripte und Programmpakete wirklich von der Quelle stammen, von der man sie erwartet (also Signaturen und nicht nur Hashes prüfen!).
Wobei man damit die Gefahr einer Supplychainattacke verringert, aber nicht komplett verhindern kann. Im Zweifelsfall müsste man dazu den Quellcode vom installierten Programm, aller Bibliotheken selber prüfen und kompilieren.. (das ist hochgradig unrealistisch).

Naja und unter Windows wäre anzuraten den AppStore zu nutzen bzw. als Paketmanager winget (auch wenn winget mitunter ganzschön müllig ist..). Verringert die Chancen von bösartigen Installern, beseitigt sie aber nicht. Microsoft/Windows hat ja auch eine lange Geschichte, dass signierte Installer von Drittanbietern dennoch verseucht waren bzw. Lücken hatten.
 
  • Gefällt mir
Reaktionen: Deinorius, h00ver, Kaulin und 4 andere
Nutze seit jeher Brew, kannte Nix noch gar nicht. Nicht zuletzt deswegen ein Danke von mir!
 
mojitomay schrieb:
Ein Curl (ungeprüft) in die Shell ballern ist aber schon grob fahrlässig...
Kontrollierst du dann auch den Source Code vom Paketmanager? Verstehe nicht, warum es gefährlicher sein soll ein Script von Website X auszuführen als ein Programm.
 
Hatte ja eigentlich vor, NixOS als nächstes mal auszuprobieren, wenn Arch irgendwann mal Probleme macht die relevante Arbeit machen....Nur 'leider' habe ich noch nie ein OS erlebt, das so problemlos läuft wie Arch :freak:
Aber IRGENDWANN komme ich sicher dazu, das Konzept finde ich schon sehr interessant.

Was ich von NIX als 'standalone' Paketmanager on top einer anderen Distro halten soll bin ich mir aber tatsächlich noch nicht so ganz sicher. Ich würde da irgendwie unerwünschte Wechselwirkungen befürchten ^^

Miuwa schrieb:
Verstehe nicht, warum es gefährlicher sein soll ein Script von Website X auszuführen als ein Programm.
Es ist immer eine Frage des Vertrauens - den Maintainern meiner Distro traue ich idr mehr als einem random script von irgend einer Webseite ;)
Zumal die Paketmanager mit Schlüsseln und Checksum auch besser gegen MITM-Attacken geschützt sind als curl, das ggf. noch nichtmal https nutzt.
Das sind schon unterschiedliche Risikostufen würde ich sagen :D
 
  • Gefällt mir
Reaktionen: Snakeeater
Also habs mir jetzt angeschaut
a) Nix gibts nicht nur für Linux, sondern auch MacOs Windows etc...
b) Es ist ein Package manager in Verbindung mit einem Environment Verwalter. Sprich man kann virtuelle Umgebungen einrichten wo bestimmte Programme in bestimmten vorkommen, die halt von Nix geliefert werden. Das ist vergleichbar mit PipEnv auf Python!
 
  • Gefällt mir
Reaktionen: Deinorius, tic-tac-toe-x-o und Tanzmusikus
Kaito Kariheddo schrieb:
Ja, wie schon geschrieben wurde: nicht der "perfekteste" Name für den deutschsprchigen Raum, aber besser als
"Paketmanager FAST aktualisiert (nahezu) nix" (sorry, für noch ein Wortspiel) :daumen:

Ich bin zwar noch nicht ganz soweit, dass ich von Windows weg bin und Linux installiert habe, aber nun habe ich endlich mal so grob das Paketmanagement unter Linux-Disrtibutionen begriffen. Danke dafür schonmal!
Allerdings sind mir die Unterschiede +die Vorteile und Nachteile der benutzten Manager der einzelnen Distributionen noch nicht klar. Sehr verwirrend das Ganze.
Unter Windows benutze ich Chocolatey. Hinkt bei manchen Programmen (sehr) hinterher und hat auch nicht alles drin, hilft aber trotzdem viel Sucherei abzunehemen. Darauf freue ich mich schon bei Linux... :)
 
Martinipi schrieb:
Diese ganzen Paketmanager sind etwas, für das ich Linux-Nutzer beneide. Keine Installer von dubiosen Seiten laden müssen und nicht manuell nach Updates suchen müssen ... das was Steam für Spiele vorgemacht hat einfach auch für Software, toll.
Paketverwaltung ist das Schlüsselfeature von Linux. Und so kann man ein Linux auch zehn - oder mehr Jahre - stabil und sauber betreiben.

Und bei Windows werde ich sowieso schnell frustriert. Langsam, keine Updates von A auf Z sondern A, B, C… und die unendlichen Reboots nach denen angeblich das System aktuell ist. Und dann kann man die Versionen nicht selbst kontrollieren. Und das ist jetzt seit Win95 bis Win11 in diesem Zustand, nur dass es mit den Zwangsupdates ab Win10 noch schlimmer geworden ist. Professionell nutzen kann man Windows nicht ernsthaft.

Und so gibt es neben MSYS (Port von Pacman auf Windows) noch unzählige Paketverwaltungen für Windows. Inzwischen auch eine von Microsoft. Natürlich neben dem Windows-Store. Aber nur für Entwickler, der Rest soll Schmerz leiden.

So. Neues Release von Foo für schlecht befunden? Pacman regelt das:

IgnorePkg=Foo :)

Notwendigkeit von Nix sehe ich jetzt nicht zwingend für mich. Weil zufrieden mit Pacman und Flatpak (hier noch ausbaufähig). Aber im Auge behalten lohnt sich ja auch.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Deinorius und Termy
Kaulin schrieb:
Na es ist eben kein all inclusive Paket. Es löst immernoch Abhängigkeiten auf und installiert zum Beispiel python nicht 5 mal. Jedes Programm kann dann auf die die python Version zugreifen.
Nein, das ist leider falsch. In dem Moment wo du mehrere Pakete (p1 und p2) in deine nix-Shell hineinziehst die verschiedene Versionen der gleichen Abhängigkeit (libA) benötigen, hast du auch unter nix einen Konflikt. Den kannst du auf zwei Arten versuchen zu lösen: Entweder gibt es Versionen von p1 und p2 die beide mit der gleichen Version von libA funktionieren, dann kannst du diese verwenden (auf Kosten der Aktualität mindestens eines der Pakete) oder du erstellst halt eine zweite nix-Shell.

Damit kommen wir zum Kern: Kennt man Python, kennt man evtl. virtenv. Und so würde ich mir nix vorstellen: Du erstellst hier Umgebungen. Im Idealfall hast du nur eine. Ansonsten halt mehrere...

Ich finde es schwer von Vor-/Nachteilen gegenüber Flatpak, Snap, Appimage zu sprechen. Das sind in der Regel ja keine Paketmanager sondern eher Anwendungs-Container-Lieferanten und werden immer öfter direkt von den Entwicklern einer Anwendung gepflegt.

Bei nix-OS ist man wie unter einem klassischen Linux noch immer selber dafür verantwortlich alles bereitzustellen. D.h. man ist darauf angewiesen, dass alle Abhängigkeiten paketiert sind oder muss fehlende Dinge selber paketieren.

nix-OS hat ganz andere Vorteile: Statt zig Konfigurationsdateien in /etc und Co. zu pflegen wird alles in einer zentralen Datei gemacht. In dieser beschreibt man sein System. nix garantiert dann, dass wenn man basierend auf dieser Datei ein neues nix baut, es Bit-für-Bit identisch mit dem Ausgangssystem ist. D.h. du kannst die CFG weitergeben und derjenige der damit sein nix baut, hat am Ende ein zu deinem identisches System. Zu jeder Zeit. Auch noch in 10 Jahren.

Das kann einem Endanwender evtl. egal sein. In der Software-Entwicklung ist so etwas aber hilfreich. Auch in der Wissenschaft: Wenn auf einem System heute Messungen durchgeführt werden will man evtl. in 10 Jahren diese noch einmal nachstellen und ist dabei wirklich auf exakt die gleiche Umgebung angegeben. Da kann es dann halt Unterschiede zwischen foo-9.18.12-1 und foo-9.18.12-2 geben.

Da nix-OS in der Regel die Pakete selber baut (es gibt auch Build-Services die Erzeugnisse bereitstellen), brauchst du lediglich das Quellpaket. Letzteres ist einfacher zu finden als bspw. ein Debian-Paket von vor 10 Jahren, denn Debian selber behält nur die letzte genutzte Version. Der Unterschied zu anderen Quell-basierten Distributionen ist, dass nix eben auch darauf achtet, dass die Build-Umgebung genau beschrieben. Würden hier nur kleine Details abweichen (andere {CF,LD,CXX}FLAGS, gcc-12.2.0-15 statt 12.2.0-14, Last-abhängige MAKEOPTS etc.) könnte sich das Erzeugnis vom vorherigen Build unterscheiden und ist damit nicht mehr identisch.

Ein weiteres nettes Feature sind atomare Updates und Rollbacks: Wer keine Rolling-Distribution verwendet wird sich evtl. fragen was atomare Updates einem bringen. In der Regel läuft hier ja alles. Spaßig wird es aber wenn auf die nächste Major-Version ("apt-get dist-upgrade") aktualisiert wird. Hier kann sich während des Prozesses erst herausstellen, dass Pakete zueinander inkompatibel sind (oftmals, weil man verschiedene Repositories gemischt hat). Dank eines atomaren Updates ist sichergestellt, dass das Upgrade durchlaufen wird.

Und sollte das aktualisierte System dann doch einmal Probleme machen kann man schmerzfrei weil sicher und zuverlässig jederzeit ein Rollback machen.


Die Frage ist: Wie sehr kann man sich auf dieses System einlassen? Will man bspw. den root-Login via SSH erlauben, könnte man einfach /etc/ssh/sshd_config anpassen und die Zeile "permitRootLogin yes" ergänzen und nach einem Neustart des Dienstes wäre der Login als root möglich.

Das kann man auch unter nix OS tun, beim nächsten Aufruf von "nixos-rebuild" ist das aber wieder weg.

Der richtig Weg unter nix OS wäre stattdessen /etc/nixos/configuration.nix zu editieren und dort ein /services.openssh.permitRootLogin = "yes";/ hinzufügen. Nachdem man dann "nixos-rebuild" aufgerufen hat befindet man sich in einem System wo dann der Login als root möglich ist.
 
  • Gefällt mir
Reaktionen: Deinorius, Snakeeater, MordragT und 7 andere
flaphoschi schrieb:
Pacman regelt das:

Wobei Pacman da jetzt auch nicht unbedingt der heilige Gral ist - wenn das Problem ein isoliertes Paket betrifft ist alles super, vor allem in Verbindung mit downgrade. Unschön wird es, wenn es versionierte Abhängigkeiten gibt. Wenn du z.b. Mesa downgraden möchtest, dann hast du da einiges zu tippen :D
 
  • Gefällt mir
Reaktionen: nyster, Rassnahr und flaphoschi
Zurück
Oben