DEV Community

Cover image for What would you like to see in a developer-centric Linux distro?

What would you like to see in a developer-centric Linux distro?

Mike Bybee on September 02, 2020

Hi everyone. I've been thinking about creating a custom Linux distro for a while now, because a separate /home partition and shell scripts only get...
Collapse
 
bias profile image
Tobias Nickel

I think some distros are already a decent job at asking in the beginning of installation time what programs are needed. they offer to install office, a database or network services. Some more presets would be useful.

As JS developer, install node.js, vscode + some lint plugins, offer db to have a setup mern stack quickly.

as Java developer, IntelliJ might be installed, tomcat (is that still in use?),...

golang: vsCode plus plugins

machine learning - python3, tensorflow, torch...

services could also directly be installed via docker by default. + a nice UI around it. kitematic never worked for me, but I saw others happy with it.

I think the apps are more impirtant than the windowmanager. for years I worked on a ubuntu unity, personal prefering xfce, but it was just stable an for the time it looked good.

i also think cutting old tails would be benefitial. maybe some hard enforced rule, that software not updated in 3-4 years can no longer be installed.

also: having some commands actively blocked. so engineers can not do a forcepush in git for example.

these are some thought I got here on the subway, they are for sure not all smart,... what do you think?

Collapse
 
stereoplegic profile image
Mike Bybee • Edited

I want to avoid messing with the actual OS installer too much, because nobody likes waiting forever to partition, format, install a ton of packages (after downloading if we're realistic about what you want to squeeze into an ISO - I also want the installer itself to be able to run offline as Ubiquity and Calamares already can), and so on, only for it to bork before it gets to the bootloader install stage and leave an unusable system; I do, however, want to give options for installing at least some of the scenarios you describe in a first-boot welcome app and/or some sort of software center (or something as simple as Ubuntu Studio Installer, though that thing looks hideous on KDE in dark mode).

I have mixed feelings about running bare metal database installs if they only apply to dev environments. Dockerized may be the better option.

As for Docker GUIs, I know there are a few options out there, mostly Electron based - which doesn't bother me nearly as much as it does some - like Kitematic (which I haven't had any luck with on Linux either), some based on containers of their own and running in a browser tab. It's been a while since I've used any though. I know I used Dockstation at one point, but I don't know how well maintained that is anymore and can't remember if it supports Compose.

I really want to avoid scenarios where I hack at the repos too much. While I agree that older releases should be avoided, sometimes there's a perfectly good reason to use them (maybe just feature research to build a newer alternative, for example) or just a lack of newer options that match them in ability (see what I wrote about Synaptic; I'm honestly not sure how well maintained it is anymore, but it's by far the best GUI for apt[-get] in terms of features and stability).

As for limiting commands: If someone can't make rm -rf * jokes about my distro, is it even really Linux?

Collapse
 
karandpr profile image
Karan Gandhi

For Docker GUIs ,I think Dockstation is a good option. I use both Kitematic and Dockstation on my Linux setup.

Thread Thread
 
stereoplegic profile image
Mike Bybee

I haven't tried Kitematic in a while. Is it still "build it yourself" for Linux?

Thread Thread
 
karandpr profile image
Karan Gandhi • Edited

There is a release for Ubuntu.
github.com/docker/kitematic/releas...

Thread Thread
 
stereoplegic profile image
Mike Bybee • Edited

Nice. Of course they make it nonstandard by throwing it in a zip (I'm also working on a GitHub-based "PPA" to pull other projects' deb releases into a single spot that can be managed by apt, but I'll have to add an extra step just to extract Kitematic if I include it). I wish they would just put it in the Docker CE apt repo or something.

Collapse
 
karandpr profile image
Karan Gandhi

I would like a Mandrake like installer but for developer stacks like Java/C/C++/Qt/PHP/RoR/Python/JS/Android with all databases and IDE support out of the box. And a way to extend the installer so we don't have to rework.

Collapse
 
stereoplegic profile image
Mike Bybee • Edited

Mandrake... 🖤🖤🖤 That was my first daily driver distro (I think it was 6 or 7 install CDs back then?), one that I stuck with on a few machines for my first few years after my very first taste of distro hopping. It's been so long, though, that I'd need a refresher on how the installer worked.

Collapse
 
karandpr profile image
Karan Gandhi • Edited

Mandrake was wayy back but I think I remember the installer clearly.
I only had 2 installation CDs though. I suppose Mandrake changed to Mandriva to Margia so it's that far.

The menu had list of options on what you are going to install linux . Like Desktop , programming , server ,gaming , internet, multimedia, science and stuff. Each of the items had a list of software which were going to be installed. IIRC Suse has similar menu but not like Mandrake.
And specifically Mandrake, because I am not sure the installer experience of Mandriva or Maegia.
Ok found an installation video.
youtube.com/watch?v=s_pfkQyUJPg

Look at the Package Group Selection Thing. Since you are targeting developers specifically, the stacks can be installed like Ruby Station ,JS Station and stuff

Thread Thread
 
stereoplegic profile image
Mike Bybee

OK, right, so like Ubuntu Studio Installer does for creative software groups (e.g. Graphics, Video, Publishing, Pro Audio, for users of Ubuntu or other non-Studio derivatives), or tasksel does in CLI. It's something I'd like to add to the welcome app instead of the installer itself, again to avoid borked installs as much as possible.

Collapse
 
yannik_sc profile image
Yannik_Sc

My opinion to this:

  1. It should contain the minimum required to run it. I don't want runtimes and tools on my system that I will never use, so keep it slim.
  2. Ubuntu as a base? Are you serious? I don't want to setup the again for each bigger update. Ubuntu is known to destroy itself for bigger updates so a clear No here as well
  3. The DE: KDE is fine but I still think that most developer will, at some point, switch to some kind of a a tiling WM, so using KDE makes less sense then giving the user the choice to select their own DE
  4. VMs: this would mean pre installed VirtualBox? When there are no VMs you don't need to install it, as said, keep it slim, I can install it by my own if I need it
  5. Not mentioned above but still a decision to make: X12 or Wayland? My personal opinion: X11. Wayland is already almost 10 years old, and it's still lacking tons of features and it has many (tiny) issues when you get into some things

In the end I don't think that it makes too much sense as all developers have their own preferences. At least not in this fixed architecture where you have a distro that comes with ... a better approach would be to use just a custom installer with selections, and make it possible to save and restore the selection.
And if it's meant to survive updates, keeping it up to date and keeping the setup for a long time, don't use Ubuntu. It will always crash. Use Fedora as base or something. It's much more stable.

Collapse
 
stereoplegic profile image
Mike Bybee

I appreciate the input, but I also need this to be clear: Above all else, the primary stakeholder will always be me. If you like what I put out there, great, and I welcome suggestions. If you can't get past my decisions, you're free to move on, taking anything you do find useful from my implementation with you.

  1. This will not ever be a minimal distro, but it's also not going to be Ubuntu Studio (at least not out of the box, though I install most of its and KXStudio's packages for my own use on top of my dev stuff).
  2. Dead serious. I'll take an APT collision over an RPM collision any day. The only times in 12 years of Ubuntu (with plenty of other distros as well for the past 17) that I've seen a borked Ubuntu upgrade was from bad use of bad 3rd party repos (or some bad Ubuntu-based distro - Linux Mint included - who didn't properly handle its own repos) or some dummy SysAdmin not understanding breaking changes (e.g. I saw lots of easily fixable apache 2.2-2.4 upgrades). In Fedora and RHEL (and Suse/OpenSuse, and...) on the other hand, I've seen nightmarish failures even with zero third party repos installed. And again, that's not even my primary driver (hardware support). I've seen plenty of models Fedora wouldn't even boot on, let alone support things like WiFi.
  3. Again, I'm the primary stakeholder, and I despise tiling; however, as with most things modern KDE, it's as easy to add as "Get New [Thing]" (with multiple implementations), without giving up the massive usability of a modern and über-configurable UI. And again, others are free to base what I release on some other DE/WM, whether they want to call it a "community spin" or just rebrand completely.
  4. I mean KVM, which is how you really should be running VMs in modern Linux; however, VBox repo will be added by default (you'll have to install it and the addons yourself). For Linux guests, in addition to those options, Docker will be installed and LXC/LXD will be installable.
  5. I agree wholeheartedly on X11. I wish it had some of the benefits of Wayland when it works, but Wayland still has a lot more issues than mere papercuts.
Collapse
 
glabrie profile image
Guillaume

Reading your post, I realized quickly how different we see the world. I'm so opposed to most of your opinions or choices I felt slighted a couple of times. Fun read!

I am wondering though, what is your opinion on something like Fedora with KDE? It seems to fulfill most of your points rather well, so maybe an offshot of Fedora (maybe even Silverblue?) would be better suited to a distro like that?

Collapse
 
stereoplegic profile image
Mike Bybee

As I mentioned above, I've seen too many hardware compatibility issues and RPM collision horror stories to consider anything RPM-based.

Collapse
 
nguyenhai97ict profile image
Nguyễn Đăng Hải

I don't get the part where you say it ubuntu base but have pacman ?? Also this is why Archlinux awesome in the way that it only contain minimal system and it up to you to install package that you need, I like thing to be stabe but they all (debian, ubuntu, ...) just getting to much in my way

Collapse
 
stereoplegic profile image
Mike Bybee • Edited

Arch is a nonstarter as a base. It can't compete with Ubuntu on out of box hardware support. Arch's repos for higher-level userland packages, however, might be useful.

Nitrux, as I understand it, allows pacman with Arch repos in a way that doesn't interfere with its Ubuntu/APT base. Even so, some packages are better integrated with Ubuntu and Plasma when installed from APT (Firefox, and Thunderbird for example, both of which are already kept up to date with the latest versions).

I agree that Debian is suboptimal, both because its packages are too stale and because - in my 17 years of experience with it and 12 years of experience with Ubuntu - Debian is less stable (contrary to popular belief). I disagree wholeheartedly about Ubuntu "getting too much in my way." Its own repos are far more expansive than Arch's, and (at least well-maintained) PPAs and 3rd party APT repos are far more stable than AUR.

Like with Snap, Flatpak, AppImage, and Homebrew (which is seriously underrated on Linux, even if it does lack Cask support), adding Arch repos (and BlackArch, and maybe a few others) will just be a way to add even more (or more current) software install options to my distro (note that I have zero desire to add AUR support - it's terrible).

Collapse
 
ender_minyard profile image
ender minyard • Edited

This is so interesting. I would check it out. Needs to be privacy focused.

Collapse
 
stereoplegic profile image
Mike Bybee

That isn't a specific aim of this distro, and others are already really good at it (e.g. Tails, Parrot), but I might look into how they achieve it to offer at least some level of what they do.

Collapse
 
pandademic profile image
Pandademic

Maybe a Garuda linux setup style thing , for software that is commonly used ?