Lightweight Fedora install

I am using the official Fedora KDE spin on my desktop PC. Since I mainly use the PC for browsing the web (including watching video content) and chatting with friends, it feels like a normal Fedora install is too bloated for me. My goal is to reinstall the system and have a more lightweight install so that the system does not run lots of unnecessary services and does not contain lots of packages that I never use.

I have read about Fedora Everything and its minimal install. As I understood it, I could perform a minimal install, then install a DE, necessary drivers, browser etc. In theory, this sounds quite easy, perhaps too easy…

Does this approach work or am I missing something? Will it be a lot harder than I think? Does the minimal install include what I need regarding security (firewall etc.) or do I need to install and configure such things manually? Are there better ways of achieving what I want? I am no expert but I am willing to learn so I really appreciate any help.

1 Like

Is it just disk space you are concerned about?
How small is your disk?
How small are you aiming for?

My test arm VM for f39 is only using 11GiB, is that too big?

Disk space is no concern at all, I simply want to have a less bloated system. Some reasons include (but not limited to) having more control over what is installed, increasing security and learning more about how Fedora works.

Do you have specific services or apps that you do not want installed?
Have you tried uninstalling them?

I am wondering if starting minimal and adding will be very hard to get right.
Also may end up in a similar place.

This is exactly what I came to post. I have done this for the “Forgotten PC Downstairs” people use/seldomly that is always connected to the internet but only serves 2 purposes. I think it’s the way to go for your use case.

1 Like

Well, both yes and no. I guess the answer is that I don’t want anything that I don’t use. For example, just by opening the application launcher on a fresh Fedora KDE install there are loads of apps that I have never used and will never use. Such apps are easy to remove, but what about other packages? This is why I was considering starting from minimal – I know that I want as little as possible, but I don’t really know where to start in a full install. How can I identify exactly what is installed and what I can safely remove?

Why do you think that it could be very hard? I am not doubting you, I just want to learn more about the topic to make an informed decision.

Interesting. Can you tell me more details about your method? Did you encounter any problems?

Fedora Everthing is a minimal build and you add the packages you need during the install. It’s really convenient, and if you do not want bloat it’s IMO the way to go.

If you already have a Fedora Workstation build, this requires a bit more work. Since the Shell/Desktop requires libraries it does come in heavier, but has comfort points that might come in handy. (ex: auto mounting usb drives and the features of the gnome specific apps )

If all you do is boot the machine and load your browser, Fedora Everything with a light weight DE or WM is enough.

4 Likes

Installing only what you use is a great way to go and aligns with long established security practice.

Using kickstart and ansible to install and configure fedora from the everything netinst is about the most flexible way. Developing the kickstart file and ansible playbooks within a vm works well. To speed things up having the repos local is helpful (sometimes I’ll just use the server dvd image and fedora-release-identity-basic so no network is needed).

There will still be plenty of packages and files installed that you will never use as many rpms were built with more requirements than minimum necessary (I’ve never use krb5 on a home pc). But it is possible to have a full de with web browser, editor and various office apps installing ~1000 packages.

I wonder how much optional functionality will not work because you have a minimal install.
Discovering the options dependencies could be tricky.
But I’m guessing at this point, and my be worrying about nothing important.

However if you do the minimal install it will become clear if its hard to find all the optional pieces or not.

Developing a minimal package set install that does everything desired is a great learning experience and great fun.

This is coming from someone who had a blast performing LFS installs and it turned out to be invaluable career wise as much of the learning transferred to corporate and government computer problem solving.

I know people who consider the task impossible for them thus hard but with the right temperment it is rewarding work.

Some hints that have been useful:
verify everything the internet tells you beforehand
find out what really fixes a problem rather than stacking non-solutions
final testing starts with a fresh install, no shortcuts

3 Likes

Depending on the DE, things like AutoMounting, Fileshares come to mind quickly. Gnome can make use of gvfs for virtual file system.

1 Like

Have a look at this guide

It is not yet updated to mention that the Fedora NetInstaller has no checkbox for “hardware support” so wifi will not work.

I hope I can fix that issue.

Have you considered Fedora Silverblue?

Would that not be in the same category as Workstation for “bloat” with undesired packages which the OP is trying to avoid?

1 Like

Great point. Silverblue would be more like " I don’t need to babysit machine" over “I need the minimal OS build”

Thanks everyone for the great answers.

This sounds interesting. I did some quick reading and it seems like Kickstart is used by creating configuration files that specify what you want to have installed and then running the configuration files during the Fedora installation itself. That way you don’t have to do the installation manually using the GUI and you don’t have to install specific packages afterwards either. Is this correct?

I did not grasp exactly what Ansible is, apart from that it probably is a bit too advanced for my needs :slight_smile:

That seems like a great starting point! However, I do not understand how the list of minimal packages have been decided. Do you start from scratch and then add the packages one by one using trial and error until you have the desired functionality? I assume that some of the listed packages might not be needed in my system, or that I perhaps need other packages which are not listed.

Wi-Fi is not an issue since I use a desktop PC with Ethernet.

Yes, and as @computersavvy and @hamrheadcorvette mentioned, it does not really fulfill my needs.

1 Like

Ansible is a configuration management system. Others are also popular like puppet, chef, salt, cfengine…

The process of provisioning and configuring in an automated fashion is powerful and with kickstart/ansible can be accomplished without additional infrastructure.

There is a learning curve but going through it is instructive and rewarding. In the end building systems is much faster and less error prone and applicable to many use cases.

How interested are you in developing a proficeincy in these methods? Do you already know how to boot up a VM from the everything netinst iso?

1 Like

this is a list of base software to get a minimal Fedora KDE Wayland Desktop. It does not include XOrg but XWayland and only has a minimal set of applications, which are all things you can easily see and just not install. If you dont know what it is, you likely need to install it.

And yes, if you follow the guide you see they are installed on top of Fedora “Everything” base

I created a VM using virt-manager and just played around a bit to see what happens. (Thanks to @steppybug for mentioning “VM”, that made me realize I can experiment quite easily in a VM. Yes, I know it sounds obvious, but I can usually miss obvious stuff :slight_smile:)

Here are a few findings and questions.

A completely clean minimal Fedora 39 install using the Everything ISO contains 419 packages.

I checked a few lists online created by other users (including @boredsquirrel) that are supposedly minimal Fedora installs, and ran lots of dnf search and dnf info to learn more about what these packages are. It seems like plasma-desktop is the necessary package for a minimal Plasma install.

When I ran dnf install plasma-desktop it installed a total of 625 (!) additional packages. Is this really the smallest possible Plasma install? It seems bizarre that the DE contains way more packages than the base OS, but perhaps that’s normal.

Other than that, I installed plasma-pk-updates (so I can update as a non-privileged user), konsole, dolphin and firefox which increased the total number of installed packages to 1060. Unfortunately, I also had to install ffmpeg from RPM Fusion instead of from Fedora repositories to be able to watch certain videos online since it seems like some videos need specific codecs. Is this the only way to be able to watch all videos? I would of course rather install free versions from the Fedora repositories if possible.

I also learned about the concept of display managers (DM). As I understand it, it is the software that starts running when the OS is done booting and ends running when the user is logged in. To me, this software seems unnecessary, I am fine with logging in using the text prompt provided by the OS. Thus, I ignored installing sddm and instead added startplasma-wayland in ~/.bash_profile so that the Plasma session is started each time I log in. Is this an acceptable method or do I miss something important by excluding a DM?

At this stage, the VM is completely usable and does most (not all) things I want. I will continue reading and testing.

I appreciate all feedback, including if the choices I made are reasonable or if they can be improved, if I missed something important and if you know the answers to the questions above (in bold).

I will use the minimal install I develop here on future installs (I usually reinstall the whole system every year) so if those methods can assist me in replicating the minimal install I am definitely interested.

I guess I already answered your question about VM :slight_smile:

Yes, I understand the purpose of your list, but I am also interested in the method. How did you create the list? How did you know that these specific packages are minimal? If I learn the method I should be able to replicate your results, adjust them according to my needs and also adjust them in the future if packages change. For example, Plasma 6 is just around the corner, perhaps the needed packages will change, then I want to be prepared by knowing how to adapt.

Actually, this is on the horizon for Fedora (I think), take a look at the release notes for F40. In particular those about bootupd and bootc. We are heading to a point where it could be considered a trivial exercise to turn your Fedora WS into a Fedora Atomic through the use of bootable OCI images. Thanks to the Unified Kernel Image used in Silverblue and Kinoite (and Fedora base image) this is heading there. Check out the release notes at Releases/40/ChangeSet - Fedora Project Wiki and this about bootupd GitHub - coreos/bootupd: Bootloader updater. Currently, I think you can take a WS install, create an image using rpm-ostree based on your system and boot into it. I’m just not sure about the updating the bootloader stuff yet. I think you have to do it manually ATM.

1 Like