TL;DR: A step-by-step installation of Linux Mint on real hardware and setting it up for typical gaming tasks.
I don’t really care much for SOG’s other content but his forays into Linux over Windows were incredible for demystifying the operating system to a mainstream audience (i.e. people who watch his content).
Some nitpicks:
- Muta should have used the flatpak version of Steam instead of the system package, the Steam client updates itself (with its own runtime and all) so using a system package over just sharing with flathub is a bit wasteful (it does complicate external storage devices a bit since you have to manually set permissions via flatseal but that’s it). (Edit: this is just a small nitpick, the native system package is fine as well).
- There should also have been mention of Bottles over installing Wine as a system package as well as things like the Heroic Games Launcher for GOG and Epic Games titles, Lutris is fine though.
- On long term stable release systems like Linux Mint or Debian, Flathub (or foreign package managers like Nix/Guix) should be your go to for installing software, let the distribution itself manage its core system components which I wish he clarified when he saw Flathub taking multiple GBs on first download.
Other than that, Linux stays winning.
On long term stable release systems like Linux Mint or Debian, Flathub (or foreign package managers like Nix/Guix) should be your go to for installing software, let the distribution itself manage its core system components which I wish he clarified when he saw Flathub taking multiple GBs on first download.
For beginners it doesn’t really matter and this advice will get them going, but I do want to push back on this a bit.
There are two methods of solving the problem of dependency hell. Package managers are the correct way. Distribution package managers are incredibly robust and should always be the first option. These are state-of-the-art systems. They look at what is compatible, they restrain you from doing things which won’t work, and they make sure EVERYTHING gets upgraded when a new exploit is discovered. The other way of solving dependency hell is bundling. Bundling is when every application ships with its own versions of its own dependencies. Bundling tends to work with a lot less up-front effort, but it takes up more space (on disk and in memory), and it also means you have several versions of these dependencies lying around, and they don’t get updated automatically. They might never get updated unless the individual producers of the software decide so (and you remember to keep track of their announcements). This essentially reproduces the security model we’re familliar with under Windows. Where we fetch software from all corners of the internet, install it, and it never gets updated.
It takes a little longer for everything to come together in a distribution package repository, but this is due to the amount of effort distribution maintainers invest in testing, as well as stripping out bundled dependencies and ensuring they can be independently tracked and updated. Distributions will keep software running on the newest available dependencies even if upstream development has been dormant for some time.
Now, not every package repository has a laser focus on every discipline. Where they fall short, this is where things like AppImages and FlatPaks (or cloning a Git repository and compiling it yourself) come in handy. But this is all technical debt. This is stuff you end up becoming responsible for maintaining yourself, which won’t update along with your distribution. The more work you let your distribution do for you, the less effort it will take to keep things running smoothly.
If something packaged by your distribution doesn’t work, trying out a bundled package (AppImage, FlatPak, or a language-specific package manager like cargo/pip/npm etc) can be a great sanity check. If your VLC is broken and you try an AppImage of it and it works, A: you get to watch your movie, and B: You’ve learned something. Try to figure out why one works and the other doesn’t.
watashi no
sudo flatpak update
There are two methods of solving the problem of dependency hell.
:static-linking-shining:
That’s bundling (library code with the program code). What shines here are Nix and Guix, where variations of one thing can coexist in
/nix/store
I just installed Mint and I’m enjoying it so far, except that I regularly use some programs that just do not work with Linux, even using various workarounds. I’m going to be dual booting windows basically just because I need Fusion 360 for my CAD work and open-source equivalents aren’t nearly as good.
I’m glad the transition has worked well so far. More people using linux means that the suits at these companies will consider making linux ports. Its a chicken and egg problem that we will overcome (people not using linux due to lack of nonfree applications + corpos not supporting linux because of a lack of people).
seems like this project has regular updates including a bunch of fixes in Feb that get it running for distros including Mint20+
https://github.com/cryinkfly/Autodesk-Fusion-360-for-LinuxThanks comrade, I’m gonna fuss with this tonight and see if I can get it working.
may you find success!
Hey this was a few days ago and it’s taken me a ton of troubleshooting, but I just got this to work. I no longer have anything tethering me to Windows. Thanks so much.
Great job! So welcome!! This is down to the project and your own hard work and dedication, but glad I could give you a pointer.
flatseal
having to install and fiddle with a whole other program just to get permissions right for an app is so annoying lol. I like flatpaks for some stuff but really I prefer the distro version unless there’s a compelling reason (package not available or woefully out of date in the repo, etc)
Yeah it’s mostly the Steam client being a proprietary piece of garbage since virtually all flathub apps have the correct permissions set (that’s from my experience of using flathub for all my desktop apps since I use Fedora Kinoite). Same with Discord since there’s now like 5 different webclients on Flathub just because Discord refuses to update their shitty electron app. I just don’t want folks installing 32 bit libraries on their core system when flatpak is much cleaner (also better for getting support since its all one runtime). Same thing with Wine (which is on version 6 due to Mint being on 22.04’s package base when current stable is version 9!)
KDE Plasma has permissions built-in to its settings so I’m hoping GNOME and Cinnamon follow suit.
my experience running it is mostly pop os and an arch variant on the pinephone so I’m probably not getting the best possible flatpak experience lol. I’m also not much of gamer so no recent experience with or opinions on steam…
My experience has been that most things will work fine but little annoyances will accumulate. I can’t drag and drop files into Signal, have to use the popup file picker from inside of it, electron apps are almost always configured for X11 and require manual tweaking settings to get crisp text on wayland, some apps are literally useless without filesystem access and yet dont come with it by default and dont use the proper file picker that would let them load in files from outside their little jail.
better OS settings integration would help a lot
that would let them load in files from outside their little jail.
Libreoffice and Firefox are the biggest offenders (they both open the GTK file picker instead of the KDE file picker on Plasma). Very annoying but it’s solvable.
yeah exactly like, these widely used, major apps have significant breakage that requires manual tweaking by the end user. It’s frustrating and makes me very reticent to recommend flatpak across the board. If anything little apps that use flathub as their primary distribution channel are more likely to maintain their package well and use its features effectively lol, big orgs/companies don’t put in the effort/take it seriously, or don’t provide a flatpak at all resulting in unofficial ones which vary in quality.
Which sucks because I actually do like flatpak mostly. it’s pretty much essential for my phone setup
I audibly gasped when I first found out how old most of the libraries are in the discord client. they were updated in canary for better wayland support like 6 months ago and I’ve heard nothing since. With steam dropping 32bit support hopefully those of us with native steam can offload those libraries soonTM
Don’t know you case for Discord, but you should check out Webcord, it works like a charm with Wayland (yeah I’m 11 days late)
Is there any interest in having a custom nixos config/flake that can turn any basic nixos install into “HexbearOS”? Something like a less tweaked out version of ZaneyOS?
It’s a huge rabbit-hole to jump down with it’s custom scripting language and with how much can be refined, and by all accounts the documentation is lacking so if you hit a problem it can be difficult to resolve, but making a basic “hexbear.nix” file with just basic useful programs to install, that anyone with a fresh nixos install can copy and add as an import in their configuration.nix, would be trivial as a start.
for instance:
example.nix
{ config, pkgs, ... }: { environment.systemPackages = with pkgs; [ #silly terminal ascii apps cmatrix hollywood nms lolcat ]; }
save it to a file in /etc/nixos, add it into the imports under ./hardware-configuration.nix, rebuild, and you should have all those installed (as long as I didn’t screw up the syntax).
I’ve been screwing around with a basic nixos install on a VM, just seeing if it could replace my home debian server, and some of the things it can do are nuts with how powerful it is and how well a lot of it works. And having all the options in the form of it’s scripting language, with all the files in one directory, as opposed to scattered throughout /etc with various different config file formats, is a lot more intuitive than I was expecting.
It been super easy to set it up to autoinstall all the packages I want want, with bottles for windows apps, and flatpaks available through the gnome software center to allow for easy user installs of other things so you don’t have to edit config files unless you want to.
Getting jellyfin working was basically one line in the config, for example.
The hard part would be the calamares installer.
Bad idea or no?
Official NixOS LiveCD has calamares, so that part is already figured out.
I think distributing a pre-configured system can be beneficial for people who don’t want a bare system while they are still learning, but then there’s the question of people already having different configs, if we are talking about people coming from other distros.
As I saw (and written), NixOS users tend to design a config in a way that it can be extended with new machines easily and with little code in flake.nix (even if this is utterly useless, like for me, since the devices in use don’t change) and installed on a new machine, ZaneyOS demonstrates this well. I quess if a person wants to try Nix out they can install someone else’s NixOS and then change it for themselves?
I think the distributed configuration will need a guide on how to change it before installation (where the dotfiles go, hardware side and partitions).
What about making a home manager config? Much less commitment needed than installing a whole new OS. And HM provides options geared for user’s environment, so the user can change what matters to them the most at the current moment (while they are learning) - what they interact with.
P.S: since you are trying Nix out, state data control might interest you, since you can boil the system down to its configuration and a directory with all of the worthy-of-saving state. Also, home manager, of course.
Yeah, I installed nix to a vm with the live installer. It detects all the hardware and you don’t have to mess with it after install (except for maybe nvidia cards). You would only need to point people to some nix config files to download. ZaneyOS is set up to where you just download the git repository and edit a couple lines in settings.nix to add your username and github info, and everything else is taken care of on rebuild.
The default drive setup is usable, but can be fine-tuned and automated with disko from what I’ve seen.
I would hesitate to try and install it as a dual boot along-side windows, but If you have an old laptop or something lying around it could be useful for setting up a usable linux install to try out while having usefull services ready to go, like steam, jellyfin and sonarr with minimal fussing around with the config. Flakes and home manager don’t seem all that necessary if the goal is to just have some good default programs up and running after install. They become more necessary if you want custom home directory layout with non-default config files and exact software version control.
Seems like it would be easier than trying to install the nix package manager with home-manager on a different distro like mint, but I haven’t tried to do that and I’m pretty new to the whole thing. If it’s easier, then having a custom home.nix or something like that shouldn’t be to hard.
The whole impermenance thing is intriguing. I’m going to dive into that after learning more about home-manager and flakes.
Seconding that a home-manager setup is probably an easier sell for people already running some kind of Linux.
Also wanted to add that you can make a bootable iso pretty easily too so people could test drive without even committing to a dual boot or install.
https://m.youtube.com/watch?si=WqjLuFj-TXuUTXZK&v=-G8mN6HJSZE&feature=youtu.be
I haven’t tried it personally so maybe it’s more of a pain than he makes it look.
Well, I’m setting up home manager and tweaking things for a custom terminal prompt (currently just bash+starship+lsd). I found https://home-manager-options.extranix.com which has a searchable list of all the options and programs it can manage, so I’m just going through and tweaking things here and there. It’s a bit more involved than just throwing together a list of programs, but it makes setting everything up a breeze. If and when I’m done I’ll try reproducing it on different VM installs to see how easy it is to clone, and then maybe make a post here sharing it if any one is interested.
And I just tried the iso.nix thing, and it does indeed make a bootable iso from your install. I only quickly booted it up in a vm, so I don’t know how tweakable it is, but it seemed to work.
Neat! I’ve got to get around to fiddling with home-manager and flakes still myself.
As you’ve mentioned in your nitpicks, I HIGHLY recommend advanced users learn to use Nix for packages unavailable in their distro’s repos. I have foundational libs and apps from my distro’s packages, any proprietary or electron garbage in flatpak (although I use native steam and jetbrains toolbox, bc they work better for me that way), and anything else is through nix-env or nix-shell. There is SO MUCH available through the Nix repos and the tooling is incredible.
I always ended up having really annoying problems with the flatpak version of steam. Maybe fixed these days but I generally go with the native build since it seems to work more consistently. Other than that flathub is great for everything else but sometimes the stores can be really crappy at updating flatpaks and will lock up so i found its better to update it via the command line which doesn’t tend to break. I don’t know why the stores on so many distros shit the bed so hard but its a real blocker for getting non techy people to use when they’re this broken
I see where this is coming from, Valve only supports Ubuntu LTS officially so it would make sense that a native package on those operating systems would work ootb. I’ve just been using Fedora for so long that me installing flatpak Steam is second nature (instead of jumping through the hoops of installing RPMFusion Nonfree).
Software Manager on Linux Mint is really robust since I’ve last used it a couple of months ago. I think the impression people have of bad software store guis comes from GNOME software because of how slow Packagekit (the backend) is.
For a while now, Steam on Linux has shipped with the “Steam Runtime,” which is a collection of all the dependencies which would be present on Ubuntu. Games targeting Linux for distribution on Steam are compiled against this specific slate of libraries, and this is intended to make them work “everywhere” regardless of which versions are packaged by the distribution. On other distributions (in my experience, ArchLinux and Gentoo) this has worked pretty well. No segmentation faults, ABI problems, or dynamic link errors to report. It can, however, cause weird incompatibilities where something shipped by your distribution works, but doesn’t on Steam, or vice versa due to different library versions. The versions shipped by Steam tend to lag behind, but they are also configured specifically for the purpose of gaming.
As far as PackageKit goes, I’d say they hold a very un-enviable position. There are dozens of package managers out there, each with their own APIs, quirks, and functional differences. Trying to apply a one-size-fits-all layer on top of those is a never-ending struggle. Support for Apt and RPM is probably good, but as you start branching out into other systems it going to get rough.
yeah pop shop is pretty trash at it, the ubuntu one was workable but not great last I checked (and ewww snaps), the options on arch are mostly pretty rough too…
I love the CLI but having a basic, reliable gui app for one of the most fundamental functions of the OS is worthwhile thing
I love the CLI but having a basic, reliable gui app for one of the most fundamental functions of the OS is worthwhile thing
Personally, things like Synaptic Package Manager hits a nice middle ground for me. I dislike stores (it always feels like I’m better off just going to the website) and I don’t want to sort and filter rows of entries in the terminal.
wow, I haven’t thought about synaptic in years! throwback! I did always find it a nice, functional option. If I hadn’t made this shit a career and spent probably years of my life at a terminal, I might still be using it. It’s literally better in almost every way than its successors, and its lightweight to boot… I guess that’s what you get if you try to build an apt GUI, rather than try to make a flashy clone of the app store and just happen to use apt as the backend lol.
The problem I guess is that people need to learn how to use it. What even is a package? a repository? why does it say Amateur Radio? etc… But I don’t think that’s really a huge problem. Better to have functional stuff with a learning curve than intuitive stuff that’s always broken and not very powerful.
pop shop
Fun fact, the pop shop was forked from Elementary OS’s “app center” because GNOME software was incredibly slow and unintuitive. Now they’re replacing it with COSMIC store.
because GNOME software was incredibly slow and unintuitive.
YaST and dnfdragora are reliable, though I don’t envy anyone trying to teach it to a non-savvy induvidual.
I’ve never even delved into suse or fedora on a desktop lol. only on servers, and only a little bit (do not get me started on dnf in EL9. Impossible to use on a resource constrained system with any large repos like EPEL installed). They seem cool but I just don’t have the time and energy to learn new distros very often anymore lol
yeah I don’t use the snap or flatpak of anything ever i s2g it always breaks shit
snaps are annoying and semi-proprietary bs. Flatpaks are neat and useful, but the permissions model really needs work. Little shit often breaks with it it seems and flatpaks rarely receive the sort of attention a distro package maintainer would provide, even though it should require less work than maintaining a traditional package. I run so many apps that are predominantly distributed as flatpak, and yet the devs don’t take flatpak packaging issues and little quality of life annoyances seriously (presumably because they run the software built from source in their dev environment and so never experience the flatpak)
Yeah. Snaps and Flatpaks are on different levels of annoying. Snap must die, there is no possible path to making it good. Flatpak is so close to good, the main problem is basically just that there are those little issues that I can’t get over.
the fact that I can’t drag and drop files into signal to send them? awful. I have to use a file picker, like a neanderthal
I do use the clipboard a lot for images though, at least that works
Exhausting to just have random core features never work and the only solution is to import a PPA or build from source by yourself
I like the AUR for that sort of thing but I guess that’s not that much better than a PPA. Plus Arch are being massive dickbags and saying “we’re x86 only” and deleting arm packages from the AUR so that kinda ruined it for me.
I found a YouTube link in your post. Here are links to the same video on alternative frontends that protect your privacy: