[HN Gopher] Show HN: Nixhub.io - Find Specific Versions of Nix P...
___________________________________________________________________
Show HN: Nixhub.io - Find Specific Versions of Nix Packages
Author : jljljl
Score : 10 points
Date : 2023-07-17 19:10 UTC (3 hours ago)
(HTM) web link (www.nixhub.io)
(TXT) w3m dump (www.nixhub.io)
| Alifatisk wrote:
| I am currently using asdf, is there anything Nix does better than
| asdf?
| jljljl wrote:
| Two benefits to Nix that I can think of:
|
| 1. It has a wider range of packages available vs asdf. Asdf can
| support runtimes that have an asdf plugin, whereas Nix has over
| 80,000 packages available in it's registry
|
| 2. Nix also handles the dependencies for the packages you want
| to install. If you runtime requires a compiler, specific
| libraries, etc, Nix will ensure those are installed.
|
| Of course, Nix can be challenging to get started with. If you
| want to try Nix but find the language intimidating, you can try
| something like Devbox first.
| drunner wrote:
| Ok, as a nix noob. I find a given package, say
| `nixpkgs/3276b62e6639096014652132f4824ac2b4f2a2c4#nodejs`
|
| Then what? How do I throw that in a configuration.nix or
| flake.nix file?
| lucilleh wrote:
| If you are unfamiliar with Nix, just install with devbox. That
| said, you can also do `nix profile install` but then you kinda
| lose that nice declarative layer that devbox has. Now for some
| reason if you really want to do advanced customization of
| nodejs, then make a flake. Overkill for nodejs tho. Rust maybe.
| breakds wrote:
| For flake.nix, you add that to the inputs, for example, call it
| `nixpkgs-old`, and then reference the package of interest with:
|
| `nixpkgs-old.legacyPacakges.linux-x86_64.node`, or something
| like below let pkgs = import nixpkgs-old {
| system = "linux-x86_64"; } in pkgs.mkShell {
| packages = [ pkgs.node ]; }
| jljljl wrote:
| You can use 2 spaces after a newline to format it:
| let pkgs = import nixpkgs-old { system =
| "linux-x86_64"; } in pkgs.mkShell { packages
| = [ pkgs.node ]; }
|
| Combine this with the input statement in the comment below to
| get a decent flake. You can mix and match multiple inputs if
| you want to install different versions of packages
| jljljl wrote:
| A few ways to use it are:
|
| 1. Install in your global profile with the CLI:
| nix profile install
| nixpkgs/3276b62e6639096014652132f4824ac2b4f2a2c4#nodejs
|
| 2. In a flake.nix, you can set an input with the nixpkgs commit
| hash, like: inputs = { node-nixpkgs.url
| = "nixpkgs/3276b62e6639096014652132f4824ac2b4f2a2c4"; };
|
| ...and then use nodejs from that `node-nixpkgs` input to get
| the exact version you wanted
___________________________________________________________________
(page generated 2023-07-17 23:02 UTC)