5 ms·
GNU Guix 0.8.1
- taylanub 12y agoVersion 0.8.1 of GNU's purely functional package manager Guix has been released. The project develops, at the same time, GNU GSD (Guix System Distribution), a GNU operating system. GNU GSD is an avant-garde GNU system utilizing Guix as its package manager, and the similarly Guile/Scheme based dmd as its init system.
- josteink 12y agoFirst of all: Guix (and Nix) seems like really interesting projects, I'm just not there yet that I'm going to nuke what I know and love for it. I probably will one day, but not right now. But: I'm not sure you're doing your work any justice by labelling it "avant-garde". I think you risk looking "weird" or more dangerous than you need to and might detract people from looking into it.
- taylanub 12y agoSomeone else just pointed that out to me too. I didn't know of all the connotations of the term, sorry about that. :-)
- ArneBab 12y agoInstalling it just for your user instead of system wide is a pretty neat way to test Guix and profit from some of its benefits.
- dublinben 12y agoAvant-garde is a perfect description of Guix. It is an experimental OS that pushes the boundaries of the status quo. What negative connotations do you think this has among hackers?
- Zardoz84 12y agoCould someone explain in a simple way, why this is better that using, for example, apt-get ?
- antocv 12y agoapt-get can not install the same package/software in many different versions, there is always some package conflicts happening and you cant describe the state of your desired system with any "apt-get" language. You must script your desired state manually or use puppet or chef or whatever, which will perform the steps/tasks that you desire on your system using multitude of software and languages. With guix gsd and nixos, the package manager is the configuration manager. The package manager is not just package manager, its not just apt-get, it is also puppet/chef/salt, and a distribution-maker or manager. I believe with guix you could make your own distribution (software collection) in the same descriptive language as making packages. You cant do that with apt or any debian tools.
- masklinn 12y agoDon't know about Guix, it seems to be inspired by/similar to Nix. As far as I understand, the advantage of Nix is that it's a stateless description of the system, so the advantages are: * you can describe a tree of dependencies using any version of the package you want, and can easily rollback to a previous tree if an update broke it * because you describe a tree of packages, you're actually describing the complete state of the system, there's no leftovers from previous installations which make it work by chance * as a result you can easily partially alter (and rollback) or move nix configurations from one machine to the next Essentially nix (and guix?) merges package management and configuration management in a stateless and declarative, easily audited and customised, manner.
- chriswarbo 12y agoGuix is based on Nix, so the following applies to both. apt-get allows at most one version of a package to be installed at a time; if you want two versions, you need to ask the maintainers to split the package into two. Guix doesn't suffer this problem; packages are given an ID based on a hash of their contents and dependencies, so two versions will happily sit side-by-side. An "update" is treated more like installing a separate package. If two applications depend on two different versions of some library, you can't install both applications. In Guix you can, since each can use the version it needs. apt-get affects the whole system. All users are affected by a change; if some other user installs/removes/updates a package, you have to just deal with it. In Guix, every user gets a "profile" package, which can depend on anything they like. Installing/removing/updating packages just creates a new version of your profile, with its dependencies added/removed/changed according to what you asked for. apt-get is stateful: the contents of /usr, /etc, etc. are changed as packages are installed/removed. Guix is immutable: packages live in their own read-only directories, so nothing can break them after installation. apt-get can't roll back: packages can't be down-graded, all kinds of actions are taken by pre/post install scripts which can't be undone, etc. Since Guix is immutable, "rolling back" just means going back to the old selection of packages; ie. installing the old version of the profile package.
- dangirsh 12y agoAwesome to see this here! I've been using Nix/Nixos (which Guix is heavily based on) on my personal laptop for several months now. I'll never look back from the purely declarative system configuration - I finally feel like I have full control of my machine's state. It looks like Guix provides a significantly more expressive interface with Scheme than Nixos does with Nix expressions. IIRC, there's also better integration with the system (Nixos auto-generates plenty of bash), which will surely accelerate development / debugging. Does anyone here have Guix experience to share?
- antocv 12y agoMy experince is running it in a VM and getting really strange scheme-like errors from guix command-line-tool, then giving up. I think I managed to install it once to a virutal-harddrive, but then grub2 was a disaster and the "system" did not boot. Oh well.
- cmthornton 12y agoI've been using Guix for about a week and it's mostly worked for me. I'm not sure why but sometimes `guix package -i <pkg>` will fail yet I can do a `guix build <pkg> [--with-source=<src>] ; guix package -i <pkg>` and the package will then get installed as expected. (I've only had to use the `--with-source` option once, and it was with openssl, iirc, because the tar.gz guix was looking for was no longer in openssl's ftp site at `/source/openssl<ver>.tar.gz` instead it was moved to `/source/old/openssl<ver>.tar.gz`) But in general I have no idea what I'm doing with it. Just trying it out and it's mostly working for me.
- davexunit 12y agoI'm one of the developers, but my first experience before that was installing it on top of my Debian system. There were a few manual setup steps to follow to make it work, but once it did it was awesome. Guix lives perfectly alongside a host system like Debian and doesn't interfere with apt. Guix packages, while being fewer in number, are more up-to-date, so I used Guix to get versions of software that weren't in Debian yet. Installing the full OS is for the brave at the moment, but we'd certainly like you to give it a try if you have the machine/VM to spare. If you do, please let us know what you liked/disliked, what worked and what blew up. There's no guided installer, but it's not too hard to get running in most cases. Partition disks, write system config, run something like 'guix system init config.scm /mnt/my-new-root-partition/' and reboot. Since becoming one of the core developers, I have been working on a tool called 'guix environment' that can be used for creating reproducible development environments for software projects. I was happy to discover that the core part of Guix contains all the features needed to write tools that could replace things like Vagrant and (once we have container support) Docker. It's just a matter of writing the proper frontend. I hope you'll give Guix a try sometime. :)
- gkya 12y agoIt seems that Guix&Nix have many advantages. Could anyone also elaborate some disadvantages of this system in comparison with traditional package managers like debian's or rpm? [Edit] I'm considering a switch to one of Guix or Nix, and I'd like to know if the pros outweigh the cons.
- rekado 12y agoOne disadvantage compared to RPM and apt-get is that there are not as many packages available yet.
- drdaeman 12y agoEveryone talks about advantages. Would love to hear about disadvantages. Not obvious ones (like having to learn configuration language semantics or package missing stuff myself), but things that don't lie down in a plain sight right away and only discovered after a few days, weeks or months of usage. Anyone to share their experiences? (Migrating from Arch to NixOS at the moment, but thought maybe I'd detour a bit and try Guix.)
- rekado 12y agoA disadvantage is that some services (like dbus) look for service files in a well-known location. When packages are installed they don't place any of their files in a directory outside of their target directory. So, JACK2, for example, won't be able to place its dbus service file in a location that the dbus service natively knows about. In many cases situations like this can be fixed by setting environment variables, but in some cases more patching is required to make this work properly. EDIT: I don't consider this a serious disadvantage, though. It is not unusual for packagers to patch software in other distributions. (I dare you to check out spec files for popular RPMs.) It's just something a package maintainer has to think about under some circumstances. I should also note that I'm surprised at how little patching is required for most software (besides the common shebang patching).
- teh 12y agoThe learning curve is pretty steep. It's not just a new config language, it's also letting go of many preconceptions one may have (where stuff lives on the filesystem e.g.). That's also true for software I'm packaging. Certain ecosystems just really love to load configuration files and write log files relative to the binary path which breaks in nixos because all packages live on a read-only mount (looking at you ruby, cargo from rust will also be fun). Lastly there's just not the same number of contributors yet so you're going to have more of the small issues that get fixed and reported by the armies of users that e.g. Ubuntu has. I'm saying all this as an incredibly happy user. I can think of few technologies that have given me as much leverage as nixos in recent years.
- rekado 12y ago
- ArneBab 12y agoIt’s great to see a new release!
- rekado 12y agoWe are going to use Guix as a package manager on a bioinformatics cluster. Managing various different scientific applications at different versions with very different dependencies for different user groups is something that is incredibly painful with traditional packaging systems. Guix greatly simplifies this whole process and writing package definitions in Scheme is so much nicer than, say, writing RPM spec files.
- ArneBab 12y agothat sounds pretty cool! I tried using Guix to deploy to the cluster in Karlsruhe (more than a year ago) but back then it was still missing most of the libraries I needed. When you finished making it work for your cluster, that could be a pretty good base for many other people, too.
- ghostly_s 12y agothis brings to mind the justification behind the SciPy distribution. I wonder if nix or something based on it has the potential to be used as a more generalized replacement for thinks like virtualenv? Just roll up a new user for your project with all the dependencies defined, instead of the kinda-sorta isolation of a venv and without the overhead of a vm?
- loevborg 12y agoI tried out nixos (the complete distro based on nix) on the weekend -- it's not saying too much that it's a revelation. I can see myself completely switching for my development machines and possibly for servers as well. The amazing thing is that the whole set up of your linux machine is encaptulated in one declarative text file (that you can put in version control). Give it a try by installing it using VirtualBox: https://nixos.org/wiki/Installing_NixOS_in_a_VirtualBox_guest https://nixos.org/wiki/Installing_NixOS_in_a_VirtualBox_gues.... You can log in (demo/demo in the 14.10 vm) and play around, essentially be editing `/etc/nixos/configuration.nix`. I recommend trying the configuration of an experienced user. Here's the result of a simple search on github: https://github.com/sitano/configuration.nix https://github.com/sitano/configuration.nix https://github.com/Hinidu/configuration.nix https://github.com/Hinidu/configuration.nix https://github.com/garbas/nixos-configuration https://github.com/garbas/nixos-configuration You can also get started very easily using a ec2 tiny instance (free tier): https://nixos.org/wiki/NixOS_on_Amazon_EC2 https://nixos.org/wiki/NixOS_on_Amazon_EC2
- agumonkey 12y agoReminds me of archlinux early days when one of their main arguments was that configuration was done in a single file (as BSDs). Nix is like a typechecked version of that.
- agumonkey 12y agoNix and Guix begin to have some momentum, it's a joy to see. I'm now wondering if that momentum will revive.. Hurd development. That's right, I said it.
- housel 12y agoTo try the downloaded USB image in VirtualBox, first decompress the .xz file and then run vboxmanage convertfromraw ~/Downloads/gsd-usb-install-0.8.1.i686-linux gsd-install.vdi --format vdi The resulting VDI file can then be attached to a VirtualBox machine as a primary IDE disk. Be sure to enable PAE/NX in the System settings.