4 ms·
I'm just trying to get all of this "package management" sorted out. So could anyone please comment. Guix is a package manager that is currently limited at 2619
by ilurk 11y ago
I'm just trying to get all of this "package management" sorted out. So could anyone please comment.
Guix is a package manager that is currently limited at 2619 packages [1]
NixOS is a GNU/Linux distro which uses the Nix package manager (makes package management reliable and reproducible. It provides atomic upgrades and rollbacks, side-by-side installation of multiple versions of a package, multi-user package management and easy setup of build environments) and currently provides 11630 packages [2]
Ansible/Chef/Puppet is a package manager oriented at deployment at multiple nodes, which works with multiple GNU/Linux distros.
Vagrant is a package manager. A wrapper around Ansible/Chef/Puppet.
My understanding is that I can fix all problems with NixOS, with the caveat that I'm limited to NixOS, so I can't Nix on a Debian or Ubuntu or Redhat.
Assuming the adoption of NixOS isn't a constraint, why should I bother to learn Ansible/Chef/Puppet and Vagrant?
And if Ansible/Chef/Puppet are still worth learning (and please comment why) besides NixOS, is there any reason to learn Vagrant as well?
[1] http://www.gnu.org/software/guix/packages/ http://www.gnu.org/software/guix/packages/
[2] https://nixos.org/nixos/packages.html https://nixos.org/nixos/packages.html
- fineIllregister 11y agoYou can run Nix on Arch. I think you can run it on other operating systems. https://aur.archlinux.org/packages/nix/ https://aur.archlinux.org/packages/nix/
- codemac 11y agoYou can run Guix on Arch as well (it's what I do)
- ris 11y ago"why should I bother to learn Ansible/Chef/Puppet and Vagrant" Nix-y people would argue that you shouldn't. And I'd fully agree with them. They're horribly overblown glorified shell scripts.
- narrowrail 11y agoIt seems like you need to do some more reading for full comprehension (and I am a novice), but real quick: Ansible/Chef/Puppet are for configuration management and Vagrant is for managing VMs (normally on a local machine, for development). These tools may provide some overlap from a 'solutions' perspective, but they achieve the result via a different approach. ETA: Apparently, Guix is for both package management and config, which is really interesting. This might be the excuse I needed to learn Scheme.
- jcbrand 11y ago> so I can't Nix on a Debian or Ubuntu or Redhat. You absolutely can run Nix on those distros. You can even run it on OSX.
- teh_klev 11y ago> Ansible/Chef/Puppet is a package manager oriented at deployment at multiple nodes, which works with multiple GNU/Linux distros. These aren't really package managers, but configuration management, orchestration and desire state configuration tools. You can use them to execute package manager tasks (yum, apt-get for example) across one or more servers at the same time. Learning one of these tools is worthwhile. For example if I want to deploy a bunch of files to a specific locations across a farm of 100 servers then these are the tools for job. I'm learning ansible right now. The reason I chose it was because it's fairly lightweight and has a low barrier of entry compared to Chef or Puppet (for me anyway). The documentation is also very good. The sysadmincast chap recently knocked out four (free) videos introducing Vagrant and Ansible, they're quite good: https://sysadmincasts.com/episodes/43-19-minutes-with-ansible-part-1-4 https://sysadmincasts.com/episodes/43-19-minutes-with-ansibl... https://sysadmincasts.com/episodes/45-learning-ansible-with-vagrant-part-2-4 https://sysadmincasts.com/episodes/45-learning-ansible-with-... https://sysadmincasts.com/episodes/46-configuration-management-with-ansible-part-3-4 https://sysadmincasts.com/episodes/46-configuration-manageme... https://sysadmincasts.com/episodes/47-zero-downtime-deployments-with-ansible-part-4-4 https://sysadmincasts.com/episodes/47-zero-downtime-deployme... > Vagrant is a package manager. A wrapper around Ansible/Chef/Puppet. No, Vagrant is a tool for standing up virtual machines with repeatable builds. It's mostly used as a development tool so you can quickly build an environment on your desktop (e.g. VM's running on VirtualBox). You'd then, for example, pass the Vagrant script for your build around your team so that you're all developing against the same environment. It's also handy for rebuilding exactly the same VM again where you've maybe trashed it by accident. The videos linked to above will give you a sense of where and when to use Vagrant and Ansible.