[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: declarative (config file) way idea of handling the OS by way of the old system



Dan Ritter wrote:

>>> That's just knowing what packages you want to install.
>> 
>> What do you mean, what else are you supposed to know?
>
> Examples:
>
> - you have installed a load balancer; it needs
>   a configuration file to work.
>
> - you have installed bind or unbound to provide DNS, they
>   need configuration files to work.
>
> - you have installed a database, it may need tuning.
>
> - you have an NFS server on your network, each machine needs
>   a new stanza in /etc/fstab to mount it except the NFS
>   server
>
> - you have a webserver, it needs configuration and a set of
>   files to serve

Okay, right, no here we're only concerned with the state of
the OS in terms of packages that are installed so that they
can be used immediately by the user, I know that all software
can be and is by some including me configured with no end in
sight but I see no reason to bring _that_ into _this_, since
that is already done with config files and that's the best way
there is to do it IMO, and now it's here as well - well, not
really, that's what I'm asking for - but when it is for me as
well, that'd be then end of it for me and I see no reason to
mix it all together, plus there are other ways to automate
bringing a bunch of files together on a disk if it comes
to that.

>> > If that's all you want, you can use dpkg --set-selections
>> > and a text list.
>> 
>> What about using the interactive commands?
>> 
>>   sudo apt-get -qq update
>>   sudo apt-get install build-essential debian-goodies libgccjit-10-dev
>
> Is there a reason that you interpret everything I say as a
> challenge?

If you just want certain packages installed, you can
have for example a shell function in your shell language, e.g.
zsh with an array of packs and then a command, e.g.

#! /bin/zsh

install-os () {
    sudo apt-get -qq update
    local -a packs
    packs=(build-essential debian-goodies libgccjit-10-dev)
    sudo apt-get install $packs
}

You don't even need a configuration file nor a script to parse
it and pipe it to APT commands ...

It can be boiled down to nothing - however, the nothing works
- try the above command if you want a system that has
build-essential, debian-goodies and libgccjit-10-dev!

> Chef uses ruby with adaptations.
>
> Puppet uses a DSL written in ruby.
>
> ansible is entirely declarative, in YAML

Well, obviously all software is written in some language, if
the software is a new language tho for this purpose to pair
packages with configuration files that sounds like overkill to
me in one sense, and a disadvantage in another sense since one
would loose the features compared to just use a real languages
(with specific modules etc) like, again Elisp for Emacs and
Lua for mpv and some other software as well for that
matter ...

-- 
underground experts united
https://dataswamp.org/~incal


Reply to: