Der entschlossene Nix-Installer

Bei Determinate Systems freuen wir uns, die Veröffentlichung des Determinate Nix Installers bekannt zu geben, einem brandneuen Installer für Nix. Mit diesem Befehl können Sie das Installationsprogramm auf verschiedenen Systemen ausführen, darunter macOS, Linux, Windows über WSL2 usw.:

Sehen Sie sich den Zero to Nix-Schnellstart an, um einen tieferen Einblick zu erhalten. In diesem Artikel erklären wir, wie unser neuer Installer den aktuellen offiziellen Installer verbessert, warum und wie wir ihn erstellt haben und wie wir seine Zukunft sehen.

Warum die Installation von Nix ein komplexes Problem ist

Manchmal ist die Installation von Software einfach. Sie holen sich eine Binärdatei von einer URL, kopieren sie in ein Verzeichnis in Ihrem PATH und schon kann es losgehen. Aber manchmal sind die Dinge nicht so einfach. Nix, so mächtig und transformativ wie er ist, fällt fest in das Lager der „nicht so einfachen“. Nix ist weit davon entfernt, eine statische Binärdatei zu sein, die Sie eines Tages abrufen, kopieren und aufrufen können, Nix erfordert eine Vielzahl von Änderungen an Ihrem System, von der Erstellung neuer Benutzer bis zur Installation und Ausführung eines Daemons, der Erstellung eines Root-Volumes und darüber hinaus. Die Installation von Nix ist ein nicht triviales Problem, das per Definition nicht von Nix selbst gelöst werden kann.

Derzeit ist der offizielle Nix-Installer ein Bash-Skript, das die Arbeit erledigt. Es wurde tausendfach erfolgreich in verschiedenen Zusammenhängen eingesetzt. Einige Mitglieder unseres Teams haben sogar am offiziellen Installationsskript gearbeitet. Es ist weit verbreitet, weil es funktioniert. Aber aus Gründen, die wir hier skizzieren, glauben wir seit einiger Zeit, dass der offizielle Installer Fehler hat, die die Integration von Nix schwieriger machen, als es sein sollte.

Ein neuer Anfang

Aus unserer Sicht hat der aktuelle offizielle Installer drei Hauptprobleme:

Es ist in Bash geschrieben. Wir mögen Bash hier bei Determinate Systems, aber wir denken, dass es nicht für etwas so dünnes wie die Installation von Nix geeignet ist. Unterschiedliche Implementierungen von Bash weisen subtile Unterschiede auf, die es schwierig machen, Inkonsistenzen und Grenzfälle auszuschließen, und es ist schwierig, sie überhaupt zu entdecken, da Bash praktisch nicht testbar ist.

Dies kann Ihr System in einen lästigen "Zwischenzustand" versetzen, wobei einige Installationsaktionen erfolgreich sind und andere nicht. Das Installationsprogramm kann beispielsweise erfolgreich ein Root-Volume erstellen, aber dann die entsprechenden Systembenutzer nicht erstellen. Aber ein unangenehmer oder kaputter Zustand ist etwas, von dem Nix soll dich befreien.

In ähnlicher Weise bietet es keine integrierte Möglichkeit, Nix zu deinstallieren, sodass die Leute auf GitHub und Stack Overflow nach Hilfe suchen müssen. Aber wir glauben, dass es helfen würde, die Akzeptanz von Nix zu fördern, wenn Benutzer Nix in der Gewissheit installieren könnten, dass sie alle Systemänderungen, die für den Installationsprozess erforderlich sind, mit einem einzigen Befehl rückgängig machen könnten: /nix/nix-installer uninstall (das Installationsprogramm entfernt sich selbst, wenn Sie deinstallieren ).< /p>

Wir hielten die „Verbesserung des bestehenden Bash-Skripts“ nicht für einen radikalen Ansatz, also begannen wir, intern über eine Vision für einen neuen Installer zu diskutieren. Später sahen wir die Diskussion der Installateure auf dem NixOS-Gespräch und schlossen uns begeistert der Arbeitsgruppe der Installateure an. In dieser Gruppe hielten wir die Gruppenmitglieder über unsere Fortschritte auf dem Laufenden und diskutierten, was der Determinate Nix-Installer bieten sollte, um von der Nix-Community weithin angenommen zu werden. Wir denken, dass es auf dem richtigen Weg ist, aber hoffentlich wird diese Veröffentlichung viel Feedback von der Community erhalten.

Hauptunterscheidungsmerkmale

Wir glauben, dass der Installer von Determinate Nix zwei wesentliche Verbesserungen bietet:

Wir...

Bei Determinate Systems freuen wir uns, die Veröffentlichung des Determinate Nix Installers bekannt zu geben, einem brandneuen Installer für Nix. Mit diesem Befehl können Sie das Installationsprogramm auf verschiedenen Systemen ausführen, darunter macOS, Linux, Windows über WSL2 usw.:

Sehen Sie sich den Zero to Nix-Schnellstart an, um einen tieferen Einblick zu erhalten. In diesem Artikel erklären wir, wie unser neuer Installer den aktuellen offiziellen Installer verbessert, warum und wie wir ihn erstellt haben und wie wir seine Zukunft sehen.

Warum die Installation von Nix ein komplexes Problem ist

Manchmal ist die Installation von Software einfach. Sie holen sich eine Binärdatei von einer URL, kopieren sie in ein Verzeichnis in Ihrem PATH und schon kann es losgehen. Aber manchmal sind die Dinge nicht so einfach. Nix, so mächtig und transformativ wie er ist, fällt fest in das Lager der „nicht so einfachen“. Nix ist weit davon entfernt, eine statische Binärdatei zu sein, die Sie eines Tages abrufen, kopieren und aufrufen können, Nix erfordert eine Vielzahl von Änderungen an Ihrem System, von der Erstellung neuer Benutzer bis zur Installation und Ausführung eines Daemons, der Erstellung eines Root-Volumes und darüber hinaus. Die Installation von Nix ist ein nicht triviales Problem, das per Definition nicht von Nix selbst gelöst werden kann.

Derzeit ist der offizielle Nix-Installer ein Bash-Skript, das die Arbeit erledigt. Es wurde tausendfach erfolgreich in verschiedenen Zusammenhängen eingesetzt. Einige Mitglieder unseres Teams haben sogar am offiziellen Installationsskript gearbeitet. Es ist weit verbreitet, weil es funktioniert. Aber aus Gründen, die wir hier skizzieren, glauben wir seit einiger Zeit, dass der offizielle Installer Fehler hat, die die Integration von Nix schwieriger machen, als es sein sollte.

Ein neuer Anfang

Aus unserer Sicht hat der aktuelle offizielle Installer drei Hauptprobleme:

Es ist in Bash geschrieben. Wir mögen Bash hier bei Determinate Systems, aber wir denken, dass es nicht für etwas so dünnes wie die Installation von Nix geeignet ist. Unterschiedliche Implementierungen von Bash weisen subtile Unterschiede auf, die es schwierig machen, Inkonsistenzen und Grenzfälle auszuschließen, und es ist schwierig, sie überhaupt zu entdecken, da Bash praktisch nicht testbar ist.

Dies kann Ihr System in einen lästigen "Zwischenzustand" versetzen, wobei einige Installationsaktionen erfolgreich sind und andere nicht. Das Installationsprogramm kann beispielsweise erfolgreich ein Root-Volume erstellen, aber dann die entsprechenden Systembenutzer nicht erstellen. Aber ein unangenehmer oder kaputter Zustand ist etwas, von dem Nix soll dich befreien.

In ähnlicher Weise bietet es keine integrierte Möglichkeit, Nix zu deinstallieren, sodass die Leute auf GitHub und Stack Overflow nach Hilfe suchen müssen. Aber wir glauben, dass es helfen würde, die Akzeptanz von Nix zu fördern, wenn Benutzer Nix in der Gewissheit installieren könnten, dass sie alle Systemänderungen, die für den Installationsprozess erforderlich sind, mit einem einzigen Befehl rückgängig machen könnten: /nix/nix-installer uninstall (das Installationsprogramm entfernt sich selbst, wenn Sie deinstallieren ).< /p>

Wir hielten die „Verbesserung des bestehenden Bash-Skripts“ nicht für einen radikalen Ansatz, also begannen wir, intern über eine Vision für einen neuen Installer zu diskutieren. Später sahen wir die Diskussion der Installateure auf dem NixOS-Gespräch und schlossen uns begeistert der Arbeitsgruppe der Installateure an. In dieser Gruppe hielten wir die Gruppenmitglieder über unsere Fortschritte auf dem Laufenden und diskutierten, was der Determinate Nix-Installer bieten sollte, um von der Nix-Community weithin angenommen zu werden. Wir denken, dass es auf dem richtigen Weg ist, aber hoffentlich wird diese Veröffentlichung viel Feedback von der Community erhalten.

Hauptunterscheidungsmerkmale

Wir glauben, dass der Installer von Determinate Nix zwei wesentliche Verbesserungen bietet:

Wir...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow