parent
329861feca
commit
1575695e7b
22
README.md
22
README.md
|
@ -1,9 +1,11 @@
|
||||||
# The Determinate Nix Installer
|
# The Determinate Nix Installer
|
||||||
|
|
||||||
|
_🎉 Celebrating over 500,000 successful installations! 🎉_
|
||||||
|
|
||||||
[![Crates.io](https://img.shields.io/crates/v/nix-installer)](https://crates.io/crates/nix-installer)
|
[![Crates.io](https://img.shields.io/crates/v/nix-installer)](https://crates.io/crates/nix-installer)
|
||||||
[![Docs.rs](https://img.shields.io/docsrs/nix-installer)](https://docs.rs/nix-installer/latest/nix_installer/)
|
[![Docs.rs](https://img.shields.io/docsrs/nix-installer)](https://docs.rs/nix-installer/latest/nix_installer/)
|
||||||
|
|
||||||
`nix-installer` is an opinionated alternative to the [official Nix install scripts](https://nixos.org/download.html).
|
`nix-installer`, the fast and reliable Nix installer.
|
||||||
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -27,7 +29,7 @@ The `nix-installer` tool is ready to use in a number of environments:
|
||||||
|
|
||||||
## Installation Differences
|
## Installation Differences
|
||||||
|
|
||||||
Differing from the current official [Nix](https://github.com/NixOS/nix) installer scripts:
|
Differing from the upstream [Nix](https://github.com/NixOS/nix) installer scripts:
|
||||||
|
|
||||||
* In `nix.conf`:
|
* In `nix.conf`:
|
||||||
+ the `auto-allocate-uids`, `nix-command` and `flakes` features are enabled
|
+ the `auto-allocate-uids`, `nix-command` and `flakes` features are enabled
|
||||||
|
@ -41,17 +43,16 @@ Differing from the current official [Nix](https://github.com/NixOS/nix) installe
|
||||||
|
|
||||||
## Motivations
|
## Motivations
|
||||||
|
|
||||||
The current Nix install scripts do an excellent job, however they are difficult to maintain. Subtle differences in the shell implementations and certain characteristics of bash scripts make it difficult to make meaningful changes to the installer.
|
The upstream scripts do a good job, however they are difficult to maintain.
|
||||||
|
Subtle differences in the shell implementations and certain characteristics of Bash scripts make it difficult to make meaningful changes to the installer.
|
||||||
|
|
||||||
Our team wishes to experiment with the idea of an installer in a more structured language and see if this is a worthwhile alternative. Along the way, we are also exploring a few other ideas, such as:
|
The Determinate Nix installer has numerous advantages:
|
||||||
|
|
||||||
|
* keeping an installation receipt for easy uninstallation
|
||||||
* offering users a chance to review an accurate, calculated install plan
|
* offering users a chance to review an accurate, calculated install plan
|
||||||
* having 'planners' which can create appropriate install plans
|
* having 'planners' which can create appropriate install plans for complicated targets
|
||||||
* keeping an installation receipt for uninstallation
|
|
||||||
* offering users with a failing install the chance to do a best-effort revert
|
* offering users with a failing install the chance to do a best-effort revert
|
||||||
* doing whatever tasks we can in parallel
|
* improving performance by maximizing parallel operations
|
||||||
|
|
||||||
So far, our explorations have been quite fruitful, so we wanted to share and keep exploring.
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
@ -69,7 +70,8 @@ $ chmod +x nix-installer
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Note**
|
> **Note**
|
||||||
> `nix-installer` will elevate itself if needed using `sudo`. If you use `doas` or `please` you may need to elevate `nix-installer` yourself.
|
> `nix-installer` will elevate itself if needed using `sudo`.
|
||||||
|
> If you use `doas` or `please` you may need to elevate `nix-installer` yourself.
|
||||||
|
|
||||||
`nix-installer` installs Nix by following a *plan* made by a *planner*. Review the available planners:
|
`nix-installer` installs Nix by following a *plan* made by a *planner*. Review the available planners:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue