Emanuel Berg wrote: > Dan Ritter wrote: > > >>> You can do it with puppet, chef, ansible, salt... > >>> > >>> You can go further into it with guix and nix. > >>> > >>> It can be quite a lot of work > >> > >> Okay, but why so, since it looks like the task to be done > >> is just a config file that's iterated by a script and > >> boiled down to suitable commands that are well-known, not > >> the least because we are used to do them manually? > > > > For the very obvious reason that there is one major > > additional task to go from "I have configured this machine > > the way I want it" to "This machine's configuration is now > > encoded in a language I needed to learn for the purpose" -- > > and a second task to go to "and it can be generalized to run > > on multiple machines". > > > > So if you're doing it for one machine, you effectively have > > to do it twice; if you're doing it for N machines, you have > > to do it about 2 and a half times. If N is much larger than > > 3, you win. > > ... what do you mean? > > It's the same package manager on all N system, you only need > to do it once.
That's just knowing what packages you want to install. If that's all you want, you can use dpkg --set-selections and a text list. > Also, there is no need to encode the configuration in any > advanced "language", it can be basic configuration like for > xpdf or mpv or whatever. > > OTOH if you want a real programming language and environment > for configuration and extension (e.g., Elisp for Emacs, Lua > for mpv etc) that's doable as well, no doubt. chef, puppet, ansible and so forth are languages for doing that. -dsr-