3 ms·
That's the point: without using Nix, you'd have to do LD_LIBRARY_PATH hacking to have two programs use two different versions of glibc. When people say "oh nix
by Arkh4m 5y ago
That's the point: without using Nix, you'd have to do LD_LIBRARY_PATH hacking to have two programs use two different versions of glibc. When people say "oh nix looks so complicated I can do this using bash scripts" I reply "well show me these beautifully expressive and simple bash scripts then".
- ducktective 5y agoI updated my reply. Can you confirm that inheriting from a forked nixpkgs with a patched default.nix in ruby directory is the solution for cases that a particular version was not ever present in history?
- Arkh4m 5y agoThere is no need to literally fork the nixpkgs repo. Most language derivations were written with the idea of supporting multiple versions at the same time. In this guide (https://www.breakds.org/post/nix-shell-for-nodejs https://www.breakds.org/post/nix-shell-for-nodejs), the key example is this one: let pkgs = import <nixpkgs> {}; buildNodejs = pkgs.callPackage <nixpkgs/pkgs/development/web/nodejs/nodejs.nix> {}; nodejs-8 = buildNodejs { enableNpm = true; # We need npm, do we? version = "8.17.0"; sha256 = "1zzn7s9wpz1cr4vzrr8n6l1mvg6gdvcfm6f24h1ky9rb93drc3av"; }; in pkgs.mkShell rec { name = "webdev"; buildInputs = with pkgs; [ nodejs-8 (yarn.override { nodejs = nodejs-8; }) ]; } where we import the normal nixpkgs, then we use `callPackage` to re-use the code that was written by the Nix mantainers, and we specify our own version and SHA. If the derivation hadn't been written to be reusable what you can do is to copy this whole directory https://github.com/NixOS/nixpkgs/tree/nixos-21.05/pkgs/development/web/nodejs https://github.com/NixOS/nixpkgs/tree/nixos-21.05/pkgs/devel... to your local project and import the nix files locally. In this case, some of the artifact might be missing from the nix cache and you might need to compile some from source. We do this in some cases and upload the artifacts to our private store on https://www.cachix.org https://www.cachix.org so that no engineer has to recompile them again on their own computer.
- dmitriid 5y agoFunny how you're talking about how horrible it is to install glibc, when the entire reason lazamar's tool exists is that he couldn't figure out how to install a specific version of a tool using nix https://lazamar.github.io/download-specific-package-version-with-nix/ https://lazamar.github.io/download-specific-package-version-... "Why do you look at the speck of sawdust in your brother’s eye and pay no attention to the plank in your own eye?" Also, not all of us depend on glibc or changes in glibc. Making this solely about glibc while ignoring the larger issue is... can't find a proper word for it. (and of course there are issues with glibc in nix as well, https://discourse.nixos.org/t/clarification-on-package-names-and-versions/9819/6 https://discourse.nixos.org/t/clarification-on-package-names... because glibc is weird in itself)