So I think Guix (and Nix) is the most technologically advanced package manager in existence, and I hope someday all package managers work like Guix.
One other very interesting feature about Guix (which I don’t think Nix is doing yet) (which Nix also does) is that they have implemented a fully verifiable bootstrap, meaning every step of building the kernel, including the steps taken to build the C compiler toolchain, are produced by code that is simple enough for a group of humans to check for correctness and safety. Also, every step of the build process exists in the package repository, with no reliance on externally built binaries for anything, not even the C compiler toolchain. They accomplish this with a multi-phase bootstrap process, where a smaller, simpler C compiler is used to build GCC.
Do I use Guix? Well, no. Simply put, it is not quite to the point where it just works on a lot of the computer hardware that I own. With a bit more work, with a few more developers, and a bit more money invested, Guix could pretty soon become as reliable and useful as Debian or Fedora. But it is not quite there yet. And frankly, I have other more important things to do than worry about debugging problems with the operating system I am using.
Nix is also working on reproducible builds. In fact, the minimal installation CD for NixOS last release was reproducible. discourse.nixos.org/t/…/34756/
meaning every step of building the kernel, including the steps taken to build the C compiler toolchain, are produced by code that is simple enough to check for correctness and safety.
Full-source bootstrap isn’t about just the kernel, it affects every piece of software. With GUIX and Nix, every single package can be fully traced back to the bootstrap seed.
Though it should be noted that you do require a running Linux kernel on an x86 machine in order to bootstrap.
it is not quite to the point where it /just works/ on a lot of the computer hardware that I own.
Unless we get some serious money, effort and/or regulation w.r.t. OSS firmware, that will likely never be the case.
That has nothing to do with its technology though, that’s a political issue. GUIX is a GNU project and acts like proprietary software does not exist/is not a basic necessity in 2023.
Another interesting thing about Guix is that it compiles everything itself (with an option to outsource the heavy lifting in case you’re on a Raspberry Pi or something). Layers of abstraction not talking to each other properly is a conceptual pet peeve of mine, so I like the idea of everything being visible to the compiler like that.
As far as I understand it, Guix will download pre-built binaries for most packages from a cache by default, and the Guix OS distribution makes sure the x86_64 binaries for the latest package descriptions are always cached, so you should usually not have to locally build packages.
But of course you can easily tweak the default configuration of packages you install and trigger a local re-build of those packages, since changing the configuration of any package causes a cache miss.
Asking why something is the way it is makes you more of a “Linux user” than many.
You make a valid criticism; there’s definitely a learning curve to installing software if you choose to do it that way (since it’s not similar to other OSs), and it’s not automatically explained to new users by using the OS.
Here’s the understanding of it I’ve come to, if you’re interested:
Like others have said, the .deb file would be the equivalent of an .exe file on Windows. Like many .exe files, unless they include an auto-updater, they won’t automatically update.
A key difference I would like to point out is that Linux package managers often update and manage parts of the OS in addition to extra software. Windows and macOS both update their OS separately.
“Ubuntu Software Center” is similar to the “Microsoft Store” on Windows and the “App Store” on macOS. Like those, it’s user friendly and provides automatic updates, but it also doesn’t have every app. You can ensure those apps are safe because the company behind the OS verifies them.
“apt-get” is the default package manager for Ubuntu. That is the tool doing the heavy lifting underneath, and what those commands Mullvad gave are for.
Mullvad could have provided a script to download and run that executes those commands for you, but then you wouldn’t know what it’s doing, especially with it needing admin permission. With how security-oriented Mullvad’s brand is, I think that’s one potential reason they explain the steps and have the user do it instead.
I’d rather just use the nu shell than tools like jq
i basically use it to write all of my scripts nowadays, it’s structured data approach is amazing (kinda similar to PowerShell, but done right)
Added to the list, thanks for your help! I will have to check out zellij and starship. I recently checked out network Chuck’s video about tmux which tmux is SUPER powerful and useful on my Gentoo computers I’m excited to see how plugins work with zellji! and starship looks like i get to rice my terminal some more :D Cheers and happy new years! [tmux Video] invidious.no-logs.com/watch?v=nTqu6w2wc68
The abysmal adoption of DNSSEC is just embarrassing, and I haven’t heard any good arguments for why we shouldn’t do it. There’s one blog post that gets passed around as justification for not adopting DNSSEC, but it doesn’t really go into any technical detail and is mostly just the author saying “I’m scared of governments and TLDs”… which is maybe fair, but you still have to trust them for regular CA certs and everything, so why not make thr base secure?
Honestly, I might care slightly more about DNSSEC than IPv6 adoption… IPv4 exhaustion and NATing everywhere sucks, but the fact that you can’t trust DNS is like… insane.
Can we move this to some community wiki? I think a lot of people can benefit from it and we can expand it with our own recommendations. Something like awesome-cli
Byobu has more user-friendly interface and accessible features - but you can do the same things in tmux. I should probably have worded that better and supplied it as an alternative.
It’s actually easier this way because you keep everything in one place.
I edited some file on Ubuntu to merge my audio channels into one because one of my speakers broke. Do you think I know what change I made to what file now? When I update, do you think I can merge my changes with the new file and make everything work? Of course not, I am several years into forgetting what I did
But configuration.nix is one file, I usually get a deprecation notice for some stuff and just change a line here and there from time to time. All of my changes are in there and they are in git. When I switched to flakes I also added flake.nix in there, but it’s still just two files in one folder I play around with. Not only that, but the maintainers already gave me the options I need for my services. I don’t have to follow some guide online to set something up, I just enable it and it works immediately.
I just did that and it worked. I commented it out and it went back to whatever the default package is. Is this as easy to toggle back and forth in other distros?
Using Scheme instead of a purely functional language like Nix as the Nix/Guix expression language is a bold choice I am not sure I agree with.
Scheme is the most functional of all non-purely-functional languages that I know of. What’s more, the parts of Guix in which packages are defined are quite pure, even using monads for some things, so it is really not too different from the Nix language.
the parts of Guix in which packages are defined are quite pure, even using monads for some things
Monads have nothing to do with purity. In fact, one of the most infamous usages of them is Haskell’s IO monad which is probably the most impure construct in the entire language.
it is really not too different from the Nix language.
Hm, I can’t help but think that a lisp dialect can never really be similar to any language except another lisp.
Put a shell script in your PATH named inkscape with the following content:
<span style="color:#323232;">#!/bin/sh
</span><span style="color:#323232;">
</span><span style="color:#323232;">flatpak run org.inkscape.Inkscape
</span>
Note that you can use a local folder in your home directory to house small executables and scripts like this, so you don’t have to touch your system config. I generally recommend using something like ~/.local/bin and add it to your PATH via your Shell’s RC file.
<span style="color:#323232;">flatpak run org.inkscape.Inkscape "$@"
</span>
To forward all of the arguments to the script. Note that this might be a bashism, so you might need to change your hash bang to /bin/bash as well. Double check though.
(An easy way to check if something is working as you assume is just prepend the line with echo.)
Yup, pack it up folks. We spent years working to solve containerized applications with a granular permission system, but we can’t figure out how to make an executable run a command. It was a good run, but it’s over now.
Flatpak already creates executable wrappers for all applications as part of regular installs, though they’re by default named as the full package name.
For when inkscape has been installed into the system-wide Flatpak installation, you could simply symlink it like; ln -s /var/lib/flatpak/exports/bin/org.inkscape.Inkscape /usr/local/bin/inkscape
For the user-local installation, the exported runnable is in ~/.local/share/flatpak/exports/bin instead.
I personally use ~/.bin for my own symlinks, though I also use the user-specific installation instead of the system-wide one.
I wouldn’t guarantee that any automation handles ~/.local/bin or ~/.bin either, that would depend entirely on the distribution. In my case I’ve added both to PATH manually.
I really, really want to like Darktable, mostly because of the name lol. I must’ve tried it 8 or 10 times over the years, but I just can’t get my head around it. Something about the design language or the UI or something just doesn’t click for me and I can’t get decent images out of it. So I keep going back to Rawtherapee, even though I’d rather not…
Personally i’m okay with the UI, but the default rendering is often so bad that I have to “fix” every single image. To me it’s either Raw therapee or just reboot into Windows …
You should make a style to apply that brings you (close) to what you want. Out of the box, dakrtable shows you a minimally processed image. Its your job to take it from there.
It shows me a very wrongly processed image. It was better when I used Fuji, but even then it was never anywhere close to what an unprocessed bland raw file should like.
This is too vague to provide any further guidance. Again, darktable shows you a minimally processed raw image by default. You can get a good looking rendering by adding a few more modules in a style and applying that style by default.
Yes, and I understand the process pretty well I think, as well as what I’m striving to output (long time Lightroom user). But the DT just doesn’t respond how I expect it to, with unexpected results. Frustrating.
Wasn’t aware of the pixls site though; I like that idea!
linux
Active
This magazine is from a federated server and may be incomplete. Browse more on the original instance.