Yes, that’s wonderful . Linux.
I’m not sure I was clear enough.
That’s the exact issue the OS tries to solve. The idea is, in a normal distribution, each package’s configuration is “private”, so to say. This means that if I want to configure two packages to work together, I have to “stick” them with “configuration glue”, meaning I have to configure either one package which relies on the other, or both packages, to match each other given the system requirements. But the packages cannot autoconfigure themselves, because they don’t know have a global point of view.
On the other hand, my distro tries to remove this “sticking” step by make sure all the configuration is handled by a single entity, the OS, which has a global view of the situation, and can basically change anything in order to reach the state it is asked.
Sometimes, what you ask is fundamentally impossible, so it just refuses to build.
This is done exactly because distribution creators do not have control over every component.
No, the distribution I use is not meant to be more secure than the average Linux distro. In a way, I think that’s a bit overkill…
I’ll try to be more concrete.
No, I really mean the system definition. I do not touch the configuration. I only specify how it should look to me when I boot, not how it should accomplish that.
Well, of course that was implicit. But, I don’t know if you have spent a lot of time installing OS — I have. The idea is that installing the system is as easy as downloading the OS from internet, copying my system description file in the right place, and let it happen, as opposed to pass a few dozen hours to tweak to until it is finally similar to what I left.
This is not a backup technique, the fact that I can recover so fast my system is just a side effect. As said, it does not handle proper user’s files. For example, it doesn’t handle my Anki database. So, using this distribution is complementary to backups.
The difference is that, when you backup, what you expect from it is the ability to restore a given machine to a definite state. This would not work on an other machine, for configuration. Imagine I have configuration that deals with having two monitors, and I install it on a laptop. It wouldn’t work — or, at least, that would require tweaking. By contrast, if you copy the system definition, and then let it build, it will generate the appropriate configuration.
However, restoring on an other machine backups of user files, that’s fine. I hope you can see the difference, and why they are solutions that solve different problems.
Well, the question about writability is not exactly whether it’s in the user space, but rather is it in a configuration space. You can find non-configuration files outside user space (/dev
), configuration files outside user space (/etc
), non-configuration files inside user space (whatever file you usually use) and configuration files inside user space (/home/you/.config
).
Well, so far Anki has been the only program that doesn’t interact very well with my distribution, so I’d say it’s quite a gain. Especially considering that I like a lot tinkering with the OS, and that I have screwed my system more than one time, leading to a complete re-installation. Screwing my current distribution is much harder.
Actually, I don’t need the original version of the add-ons. What I want it to look like is, in the file that defines my system, a list of the Anki add-ons I want. Then, when the system is built, it takes care of installing them for me. What it currently does is that it stores the original version somewhere, in a cache, and creates read-only links where Anki is supposed to find them.
But, and this is important, there are other ways to obtain the same result without storing the original version.
- First way. Anki could have an API which delegates the add-ons management, meaning each time my system wants an add-on, instead of looking for it in its cache, it asks Anki: “could you make sure this add-on is installed, with this configuration?”. Conversely, when I change an add-on setting, Anki says to my system: “this add-on now has this settings”.
- Second way. Anki doesn’t have such an API, so I write a specific add-on that hooks itself to add-on management and does the same thing. I could write it, but I don’t have enough time to dig in the whole Anki dev doc (maybe someday…).
But, the important aspect is that the purpose is not to backup the add-ons. It’s to be able to define every aspect of my system from within the system definition file.