4 ms·
I don't think NixOS is the only distro that has this property, what prevents someone from making a shell script that installs your applications and dotfiles? Bl
by mksybr 3y ago
I don't think NixOS is the only distro that has this property, what prevents someone from making a shell script that installs your applications and dotfiles? Blow away your OS install and get your set up back in one line is my experience and I don't run Nix or Guix for most of my applications
- ParetoOptimal 3y ago> what prevents someone from making a shell script that installs your applications and dotfiles The reproducibility of that would not be nearly as high. For example, if the source of those applications is apt the versions of packages would change over time.
- mksybr 3y agoyes, i am fine with that personally and its hard for me to grok what benefits reproducibility in the guix sense would get me here
- rgoulter 3y agoOne example was "I want to run an old version of Hugo". In the time since running the old version of hugo, enough about the system had changed: - The OS had changed significantly (so re-running an old build didn't work). - The compiler had changed significantly (so compiling from source would have been difficult). https://jvns.ca/blog/2023/02/28/some-notes-on-using-nix/ https://jvns.ca/blog/2023/02/28/some-notes-on-using-nix/
- mksybr 3y agoGreat example! Managing old or multiple versions of software is actually a great usecase for Guix.
- ParetoOptimal 3y ago> i am fine with that personally and its hard for me to grok what benefits reproducibility in the guix sense would get me here I read this as: > i am fine with the lack of reproducibility of apt-update personally and its hard for me to grok what benefits reproducibility in the guix sense would get me here To which my answer is: Guix gets you the reproducibility benefit of not having the reproducibility harming apt-update. Does this help answer your question or confuse things more?
- angio 3y agoWith NixOS someone else has written that script and now I can use a DSL to configure my desktop
- mksybr 3y agosomeone wrote a script to install only the applications I want and configure my .config files the way I do but for guix? this seems to be a conflation, i'm not producing packages for my distro which is what the equivalent guix script would be, no? edit: and isnt shell a DSL too? one i already know in contrast with Nixlang. edit2: and not just already know it, but also much much much less likely to fade into obscurity than nixlang... bash/dash/sh aren't ever going away
- dbeley 3y agoIt's just impossible to have the same level of configuration with your own custom script, NixOS goes way beyond: its configuration capabilities goes from your bootloader to user-level Firefox add-ons, and you have niceties like reproductability and rollbacks.
- mksybr 3y agowhat? none of that is impossible for me to configure with a shell script? i install my userChrome.css to firefox with it, and i havent tried the addons aspect because my firefox account syncs them for me. since i run zfs i should get rollbacks too without learning a new language and packaging theory for guix
- dbeley 3y agoHow do you install the userChrome.CSS automatically? As far as I know it needs to be placed in a folder containing a hash that's only generated at firefox first launch. At some point if you want to configure everything with your own shell script it will be a nightmare to maintain, NixOS is easy to learn in comparison.
- Arnavion 3y agoYou can generate the metadata in ~/.mozilla/firefox (installs.ini, profiles.ini) to have whatever profile dirs you want. Only if you let FF generate them itself will they have the unknown random names.
- mksybr 3y agoi just glob over *.default and *.default-release `mkdir -p chrome` and move it there then check if my user.js has the setting that enables legacy userchrome (via grep, (useless) cat, and pipe), and if not add it. wouldnt guix do something similar if it managed my userChrome.css? i am not sold on the maintainability delta between my script and a guix one, but i only use a text editor, a terminal emulator and two web browsers for 90% of my use, so maybe im just too small scale to run into the maintainability issue it's trying to solve. the main struggle i have is in making the config files, and guix would only add another layer to that. easy to learn might be a valid consideration for me if i didn't already feel comfortable with scripts of the normal non guix variety, but the devil i know does fine.
- rgoulter 3y agoWriting a shell script to install packages, hoping it's idempotent, isn't to the level of "[do it] once, and you won't have to do it ever again!". Installing a list of packages is relatively easy, sure. A NixOS system configuration also takes care of settings for different services; which typically you'd edit files under /etc/ for. The closest practical analogue to a NixOS system configuration that's popular is probably setting up your computer.
- mksybr 3y agoCopying files to /etc doesn't require Guix. Installing applications and copying their respective config files doesn't require Guix. Guix seems worse for this than a repo of config files and a shell script or makefile, because of the required extra complexity
- rgoulter 3y agoIt's possible to have a full system setup with shell scripts. The only things I'm aware of people doing are copy-pasting the "install these packages" when setting up a system. When it comes to reliably getting a system to an expected state, shell scripts aren't a popular solution. Nix and Guix are more complex than not using them. I'd compare that to Vim/Emacs being more complex than Notepad.
- mksybr 3y agoMy script installs configuration as well as packages. Guix is way more complex than my script, not only in part because I would need package a non zero amount of things to have it be feature complete with my shell script, and unlike your notepad vs emacs example, people don't seem to point to anything that Guix can do that my system can't, or the things they identify I do so rarely that it would be more efficient to do them manually instead of porting my system to Guix, like making containers. Also not a popular way to configure a system? They are THE default way, that is being tried to displaced by various configuration management tooling and Guix, no? If I wanted to sells emacs to someone on notepad I wouldn't have to resort to things as vague and hand wavy and dubious in value as reproducible'). I'd be listing features they lack. The Guix features I want I have, which is simple install of my applications and configs You don't need Guix to copy files to /etc, you don't need it to install your applications and you can get a pretty reasonably easy custom install with a repo of config files and a script to clone and copy.