Setup Guide to Fedora Rawhide

Best Linux for GNOME Fans!

Konnichiwa! I had written a story why I believe Rawhide is the best choice for GNOME Fans, together with some common issues that system may give, so I will skip those here, and I will got directly to instructions!

One thing I want to highlight before though, is that Rawhide isn’t rocket science. If you can use Fedora, then you can use Rawhide too as a daily box. In fact the opposite is harder :p

Oh, and if you find something wrong, or if you want to add something, don’t hesitate! But I prefer you to use Twitter rather Medium comments if possible!

1. Download & Install

You can obtain latest Rawhide image from Fedora Downloads Store. Because Rawhide installer (Anaconda) gets very often changes, it also fails very often. If that happens, then try on a different image from Koji Composes.

That’s the first screen you get when you boot. The trick here is that Fedora is booting on Wayland session, with a very bad (currently) support for NVIDIA. In my case it made installation not doable.

If you have NVIDIA jump on a TTY ( Ctrl+Alt+F4), login as root (no password need) and give:

# killall -9 gnome-shell
# systemctl stop gdm
# startx

Now you’re on Xorg; open a Terminal and type anaconda to start the installation. One thing to notice is that Anaconda (at least on F30) won’t ask you to create a user account. That happens on post install, the first time you boot.

Partitioning

Fedora gives three ways to partition your drives: {Default, Custom, Advanced}. It is up to you what you want to use, but I reckon not to go on Default and instead create the simplest schema possible, that you can also easy recover with chroot if ever needs.

In my case it was:

/dev/sda1 /boot/efi
/dev/sda2 / (ext4)
*if you unsure if you need a "swap" then create one, but turn swappiness off, till you really need it. Your Linux will perform better w/o swap!

I also reckon don’t do encryption on desktops, but do encryption on laptops, specially if you use them a lot outside. For performance and convenience reasons!

2. Disable SELinux

By now you should have setup your credentials and have login to your fresh Fedora installation. Again, if you are on NVIDIA, select Xorg from GDM Cogl icon.

Before you do ANYTHING else, first disable SELinux

$ sudo vi /etc/selinux/config
SELINUX=disabled

Now restart!

Because disabling SELinux will bring some debating, I say again this Rawhide setup is about using Rawhide, and not debugging it. Performance and as less bugs as possible is what matters to me!

3. Install Kernels from Fedora 29 (Stable)

Next we are going to download and install stable Kernels from latest Fedora release, which at this point is F29.

You will find the RPMs on Fedora Packages. At the time we’ll get kernel-4.18.16–300.fc29. You need these packages:

kernel
kernel-core
kernel-modules
kernel-modules-extra
For NVIDIA also
kernel-devel
kernel-headers (link to headers)
*make sure you download the x86_64 arch & all packages are on the exact same version!

Install them with DNF or RPM from Terminal:

$ sudo dnf install ./kernel*
`kernel-headers` needs force or downgrade

ATTENTION — Run Grub-MkConfig!

After you install the kernels, re-configure the boot-loader. Normally you shouldn’t, but post-scripts may not work on first time and you may end-up with an unbootable system.

Just run:

$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
more information on Grub

Now every time you run dnf-update it will ask you to also install Kernels from Rawhide.

You can either exclude the kernel installation from command line:

$ sudo dnf update -x kernel*
*btw run `dnf update`. it won't really need if you have a daily image, but just to make sure!

Or make it permanent:

$ sudo vi /etc/dnf/dnf.conf
Add
exclude=kernel*
ATTENTION: GNOME Software won't check dnf configuration! Only use GNOME Software for Flatpak, never for update system! It is very bad anyway!

It is not super critical to update Kernels that often, but still, when you want to, you can’t possibly check on Koji and manually download them. I will come back to that later.

Now restart!

4. Install RPM-Fusion & NVIDIA

There are several Fedora repos you can use for drivers and codecs. I won’t go in comparison here, I’ll just go with add RPM-Fusion. It feels very reliable on Rawhide for now

Add RPM-Fusion:

$ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

Then install NVIDIA:

$ sudo dnf install xorg-x11-drv-nvidia xorg-x11-drv-nvidia-cud aakmod-nvidia

You should read the links before you install NVDIA for TroubleShooting & various details!!

Now restart! ..and on your next boot you should have NVIDIA perfectly working!

5. Install ZSH & Oh-My-ZSH

I was thinking to make a Part1 and Part2 guides, with some post-installation stuff, but because I highly doubt I will, I’ll put instead some “desktop setup” things here.

I can do with almost any Linux desktop, but I can’t live without ZSH and Oh-My-ZSH (really!). So next step is to get that.

Install ZSH:

$ sudo install zsh util-linux-user

Then install Oh-My-ZSH

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

And a demo of my OMZ setup with P9K

6. Add DNF Cache

DNF by default doesn’t keep any packages cache. That means that when you install packages, everything in history is removed, and there is no way to downgrade in case things go wrong.

To add cache:

$ sudo vi /etc/yum.conf
Add:
keepcache=1
To clean cache:
$ sudo dnf clean all

It is out of scope to show how DNF history, revert and downgrade work, but it is very important to keep cache, or else you will be defeated like a boss :p

Something to mention here, is that when you get some experience, you will see that Fedora while hasn’t the documentation of Arch, is possibly the easiest system to restore, without that meaning it needs to often! In a year it only happened once to me, and the fix arrived 2–3 days later!

7. Disable FirewallD

I don’t have idea what this firewall does, or how we are supposed to configure it, and I can tell you not even Fedorians know! At least not many!

Disable it:

$ sudo systemctl disable firewalld

8. Remove ABRT

This is pretty much same case as SELinux before. It is up to you if you want to do that, but again, I do care for performance and not for debugging and annoying messages!

While we can just disable ABRT services, I will remove it instead:

$ sudo dnf remove abrt-desktop abrt-cli abrt

9. Install Flathub, Remove LibO

This is like a general rule, for every Linux, but specially for Rawhide. Whatever you can get as Flatpak get it as Flatpak. This way you’re ensure a more clean & robust system, with less chances to fail.

Add Flathub:

$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Remove LibO:

$ sudo dnf remove libreoffice*

Add Flatpak LibO:

$ flatpak install org.libreoffice.LibreOffice
-latest Flatpak doesn't need the remote :p

10. Add Fedora Stable Repos

Remember before when I said there is an easier way to update our kernel from Fedora stable repos? This is it! We are gonna add them! In this case is Fedora 29 Repos.

Download Fedora-Repos RPM, but instead of installing it, just extract the RPM for example inside $HOME/Downloads/Fedora29-Repos

Now copy all the files:

copy from
$HOME/Downloads/Fedora29-Repos/etc/yum.depos.d/*
copy to
/etc/yum.repos.d/fedora29/

What DNF does is to check only the files on /etc/yum.repos.d and it will skip whats inside/fedora29 folder. From that point I guess you’ll figure out how you can switch between repos, and get stable kernels and other stuff you may need!

Btw every .repo file has an enabled=0/1 flag to enable disable it! In any case, I won’t write a DNF manual here :p

11. Don’t Update Everyday; Don’t use GSoftware!

Fedora Rawhide is pretty much a CI system, and it gets updates every day; sometime rebases too, which means all packages get an update because for example they were built with a newer compiler.

The trick is to NOT UPDATE EVERY SINGLE DAY! Review the updates, and decide if something is a worth the upgrade, and some times you may want to update a single package, rather all:

for instance:
$ sudo dnf update code
rather:
$ sudo dnf update

Of course as long as you have enabled DNF cache, you can rollback:

$ sudo dnf history list ...
$ sudo dnf history undo ...

And never never ever use GNOME Software for updates!

In fact open DConf-Editor and disable them!

/org/gnome/software/
/org/gnome/software/allow-updates [Off]
(that will also disable Flatpak updates, so you may not want to!)
/org/gnome/software/download-updates [Off]

The End!

That may seemed like a lot of work, but it is like 40 minutes! Probably there are a few important things I missed, and some I skipped to make it shorter, but pretty much this is it! The rest is like using a stable Fedora!

Oh and while I do strongly suggest to try Fedora Rawhide, and everything works perfect to me, I won’t swear that you’ll get the same “happiness”! It is Linux after all, and Linux is very famous on giving different kinds of user experiences!

Enjoy latest unstable GNOME 3.32 :p