I’ve always wondered why no one ports FreeBSDs pkg/ports package management system. From all the operating systems I’ve used it’s the clear leader.
Show HN: Brioche – A new Nix-like package manager
71–80 of 90 posts
Re: Show HN: Brioche – A new Nix-like package manager
#72Reading the comments makes me think I'm turning into my dad. He was a simple man in terms of education and career. He was a fire man on a stream train in 1950, a farmer, barman, handyman. Out in the sticks, he was everyone's go-to guy when a vet couldn't be found, because he kept a "livestock first aid kit" including penicillin & syringes. He talked to vets and read books and knew about the most common ailments and h…
Be like your father except with knowledge of Category Theory That's the best we can do.
What do you want to tell us with category theory and how does your comment fit into the discussed problem?
Re: Show HN: Brioche – A new Nix-like package manager
#73Re: Show HN: Brioche – A new Nix-like package manager
#74I'm really happy to see more work on package managers in this space. I used Nix for a little bit, but I shared the frustration expressed by other commenters on the language itself. I have found my zen on GNU Guix, but more options are better :)
"It should be possible to write an evaluator that plugs in the Guile language (for compatibility with GNU Guix), to use arbitrary builders, and to replace the store implementation."
Re: Show HN: Brioche – A new Nix-like package manager
#75Earlier quoted context omitted.
ever use nix repl? i found my complaints about grokkability disappeared once i realized i could easily introspect my build (and all my dependencies' builds) at any level. that + learning the like 5 or so idioms that pervade nixpkgs and you can use Nix quite successfully imo.
Could you share an example of how you use nix repl? I use it every once in a while, but usually I'm starting from scratch and trying to replicate an error for debugging. It almost sounds like you're using the `--debugger` option (isn't there something like that?) which I've not had much luck with.
When a build fails, I use the option to keep the output directory and inspect things. That's another main useful method.
Re: Show HN: Brioche – A new Nix-like package manager
#76Earlier quoted context omitted.
flox is the best thing I know of for articulating binary dependencies (language runtimes, etc.), which is probably the sweet spot for nix anyways at the moment (i.e. as opposed to trying to build everything "With the One [Tool] to [Replace] Them All"). flox uses nix for its backend, but has a simple TOML syntax and is properly humble about what it can do -- but killer at it -- as opposed to promising the world. https…
There's also [devbox]( https://github.com/jetify-com/devbox ). Tried a lot of them, and after a while I found the nix the package manager on non NixOS requires too many workarounds. Things don't just work. For example, installing alacritty requires an OpenGL wrapper. Neovim can't find libraries to build some plugins. Basically, anything GUI had issues. In the end, `cargo install`, `go install` and download a release…
Re: Show HN: Brioche – A new Nix-like package manager
#77Earlier quoted context omitted.
> have all done a great job building amazing tooling to download and verify resources from the network against a lockfile This is a bad assumption
Why? Are you referring to the fact that it's opt-in; you have to use `cargo build --locked` or `npm ci`?
Re: Show HN: Brioche – A new Nix-like package manager
#78Earlier quoted context omitted.
What foot guns are you seeing specifically?
Go find a place where the struct value is clearly defined. It may seem that any definition is final, but none is. Since the last definition of a struct field overwrites a previous one, the order in which e.g. files are interpreted matters. It's like writing a config by using Python dicts, with the added complication that creation of a new one and updating of an existing one are indistinguishable. This may be okay in…
You can have wider types being overridden by more closed types. e.g. string => "this literal". But you cant have two disagreeing values.
I use this to create kubernetes manifests at work, at a reasonably large scale. The inability to join multiple files without fear of collision is specifically one of the best features.
Re: Show HN: Brioche – A new Nix-like package manager
#79Reading the comments makes me think I'm turning into my dad. He was a simple man in terms of education and career. He was a fire man on a stream train in 1950, a farmer, barman, handyman. Out in the sticks, he was everyone's go-to guy when a vet couldn't be found, because he kept a "livestock first aid kit" including penicillin & syringes. He talked to vets and read books and knew about the most common ailments and h…
Here's what's been key for me: Absolutely separate -- in your mind -- NixOS from Nix. The latter I've seen be a very useful tool that does what people here talk about: cleans up dependency and build and installation management in a reasonably nice way. The former is a religion/world-view that requires a complete mindset change, accepting a whole dogma, and differs entirely from how you're used to using Linux. I gave…
Huh? NixOS doesn't require any special configuration to use SSH keys or Git or even SSH keys stored on special hardware like Yubikeys. What went wrong here, or did I misunderstand your use case?
Re: Show HN: Brioche – A new Nix-like package manager
#80Earlier quoted context omitted.
This was one of my bigger pain points with Nix as well: there was a lot of "reinventing the world" just to avoid network access. With Brioche, I stuck with disabling network access by default, but there's an escape hatch to specifically opt-in to networking (by calling `.unsafe({ networking: true })` on a process recipe). My thoughts are that Cargo, NPM, Poetry, etc. have all done a great job building amazing tooling…
> have all done a great job building amazing tooling to download and verify resources from the network against a lockfile This is a bad assumption
If the underlying package manager is good (Rust, Go) then there’s just no need to reinvent the wheel.