5 ms·
Reproducible Development Environments with GNU Guix
- arianvanp 12y agoBeen using nix for a while for bookkeeping my development environments and it's been nice. The config syntax just is a bit unfamiliar so I'd be happy to check out Guix. The problem is that I also use non-free software and I haven't yet figured out how to set up my own Guix repo for that. Anyone got any luck with that?
- scourge 12y agoif you want to set up a channel, just make a channel and put it anywhere (github is free). if you do (in either nix or guix) let me know. I've been planning on doing something similar for non-free software for a while but to be honest it seems I don't have to use non-free software nearly as much nowadays.
- zwischenzug 12y agoA similar project, using docker and pexpect for dynamic and programmable - but auditable and deterministically built - images: http://ianmiell.github.io/shutit/ http://ianmiell.github.io/shutit/
- amelius 12y agoThat's nice, but why stop at being a package manager? Why not also replace the build tool (make et al.)? If all the functional machinery is in place, this would be perfect for a build tool.
- Sanddancer 12y agoBecause that means yet another build tool users have to maintain, check for security updates, etc. Packagers for people not using guix will need to start including it, etc, which will just add to the absolute excess of build tools out there. Currently installed on my system are bsd make, cmake, gmake, and scons, just to handle various software I've installed. Plus, you have samba in there that drags in Waf for its builds, and I know that there's some package out there I'm gonna want to poke at that's gonna wanna bring its buddies ant and/or nant in to party too. Unless the new and improved tool can understand all those tools, it's just gonna add to the mess.
- sparkie 12y agoEventually this will probably happen in one way or another - although make isn't going to be replaced - it'll remain there for compatibility. Currently, in a guix package, you specify how the package is built - and there are some predefined configurations built into guix, such as the gnu-build-system. It's perfectly possible to write your own build script in guile alone, or you can call other build tools. In case you missed it, GNU Make already has Guile support built in - so you can already use it to augment your build process without throwing away make. The real advantage of having a build process as part of Guix will come when we can throw away horrible hacks like pkg-config - since the Guix model of exact dependencies offers far more accurate information that pkg-config can guess, we'd have more reliability with less effort, and probably big performance gains.
- mat_jack1 12y agoWhat's the benefit of Guix compared to tools like Chef (https://www.getchef.com/ https://www.getchef.com/) or Puppet(https://puppetlabs.com/ https://puppetlabs.com/)?
- lsiebert 12y agoOne reason could be that the current version of both Chef and Puppet are licensed under Apache, and this is GPL licensed.
- mat_jack1 12y agoThat's a good reason, but I don't understand if the use case scenario is the same or different. And if different, in what?
- viraptor 12y agoGuix seems to be a package manager. Chef/Puppet are configuration management tools. In short (from what I understand, I have only read about guix), you can use all of them to install software. But Chef/Puppet give you much more - distribution of configuration data, runtime search between machines, control over services / resources, etc. In practice you'd probably want to use one of them to install guix and run guix commands locally when setting up the hosts.
- mat_jack1 12y ago
- sly010 12y agoIntroducing: "Meta" a package manager for package managers. To install, just type: meta install meta
- davexunit 12y agoIf I may indulge you, it's possible to 'guix package -i guix'.