4 ms·
I agree. I'm actually trying a hello-world example from the tweag website, and it complains about "gcc" not existing. I try adding buildInputs = [ nixpkgs.
by baby 4y ago
I agree. I'm actually trying a hello-world example from the tweag website, and it complains about "gcc" not existing. I try adding
buildInputs = [ nixpkgs.gcc ];
but it complains that nixpkgs.gcc does not exist. There's nothing helpful. I remember fixing this issue a month ago, and I have no recollection on how I did it.
- kaba0 4y agoI don’t know what is the specific file you are working on, but shouldn’t it be pkgs.gcc?
- hypersoar 4y agoAre you using flakes? You need to use the legacyPackages output for your system, e.g. buildInputs = [ nixpkgs.legacyPackages."x64_64-linux".gcc ]; In practice, it usually looks something like this: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; in stdenv.mkDerivation { ... buildInputs = [ pkgs.gcc ]; ... }
- SuperSandro2000 4y agoThat's strange. GCC is part of the stdenv on Linux and though always available. To correct your coffee snippet: nativeBuildInputs = [ pkgs.gcc ];
- baby 4y agoI’m on mac, I managed to fix it with https://mimoo.github.io/nixbyexample/flakes-packaging.html https://mimoo.github.io/nixbyexample/flakes-packaging.html
- baby 4y agoAnd now I’m trying to understand how devshells work in flakes and there’s pretty no doc
- Smaug123 4y agoAsk your questions on discourse.nixos.org please - the documentation situation in Nix-land is generally exactly as you have noted, which means centralised question-asking in well-known locations is much much more helpful for Those Who Come After.
- benreesman 4y agoI say this with the utmost respect for those who work hard to answer questions on discourse, but I have found it singularly unhelpful. I strongly encourage the Nix community to embrace a mainstream Q&A platform like StackOverflow or GitHub Issues. Nix is “weird” enough for beginners already, the kind of janky interface and uneven moderation/quality on discourse is IMHO self-defeating for Nix.
- pxc 4y agoAside: I love the Discourse UI. It feels easy and thoroughly modern to me. What's janky about it, in your opinion?
- baby 4y agoAgree. I feel the same way about OCaml, and I have forced myself to ask every questions I have on SO to build the list of answers there. Yet, people tend to answer on SO with “you should ask on the OCaml discourse”…
- 4y ago
- Smaug123 4y agoMaybe you got confused (like I did every time until I stopped doing anything non-flakey) about when `nixpkgs` is called `nixpkgs` and when it's called `pkgs`? In the flakes world it's considerably easier because everything is explicitly named, so you take an actual decision about what to call it.
- benreesman 4y agoSo there is more than one way to skin this cat. ‘nixpkgs’ as handed to you as part of a flakes ‘inputs’ is (jargon alert) partially applied, which is to say you have to put a battery in it. In this instance what you have to pass is ‘system’ because nixpkgs supports many systems (e.g. ‘linux-x86_64’ or ‘darwin-aarach64’). It sort of makes sense that it wouldn’t know what GCC you want without that information. You can do this up top by hand, e.g. P = inputs.nixpkgs { inherit system; }, but more commonly you would use a library like ‘flake-utils’ or ‘flake-utils-plus’ to issue system configuration for all supported packages to all your packages/derivations/devShells.
- baby 4y agoAh right, I saw that library but it didn’t have examples and I didn’t manage to use it. Do you know a page that would explain that?
- benreesman 4y agoThe ‘flake-utils’ readme is a pretty good jumping off point: https://github.com/numtide/flake-utils https://github.com/numtide/flake-utils I have this or that nitpick with FL and FLP but overall it’s very solid stuff. FLP is a little more “magical”, and that’s not always the best starting out, but you really can’t go wrong with either.