Initial Setup

DNF flags

echo 'deltarpm=true' | sudo tee -a /etc/dnf/dnf.conf
echo 'defaultyes=True' | sudo tee -a /etc/dnf/dnf.conf
echo 'fastestmirror=1' | sudo tee -a /etc/dnf/dnf.conf
echo 'max_parallel_downloads=10' | sudo tee -a /etc/dnf/dnf.conf

or add manually by editing dnf.conf using nano

sudo nano /etc/dnf/dnf.conf

Add below lines


Make sure that you added all the above lines by using cat command

cat /etc/dnf/dnf.conf
# [main]
# gpgcheck=1
# installonly_limit=3
# clean_requirements_on_remove=True
# best=False
# skip_if_unavailable=True
# deltarpm=true
# defaultyes=True
# fastestmirror=1
# max_parallel_downloads=10

OS Update

Now you update the operating system or check for any new updates available to download

sudo dnf update -y

RPM Fusion free and nonfree repos

  • To enable the Free repositories
sudo dnf install$(rpm -E %fedora).noarch.rpm -y
  • To enable the Non-Free repositories
sudo dnf install$(rpm -E %fedora).noarch.rpm -y

GNOME Tweaks

  • Graphical interface for advanced GNOME settings
sudo dnf install gnome-tweak-tool -y
  • GNOME Extensions App
sudo dnf install gnome-extensions-app -y
  • GNOME Shell Extension App Indicator
sudo dnf install gnome-shell-extension-appindicator -y

Optional Setup

Desktop Environment

For some reason you wish to try other desktop environment or else skip this step

  • To check the available desktop environments
sudo dnf grouplist -v
  • For example: XFCE desktop
dnf install @xfce-desktop-environment
  • To remove an environment
dnf remove @xfce-desktop-environment

Set hostname

I rename it for better detectable on my network: fedora

hostnamectl set-hostname fedora

Package Management


Flatpak is installed by default on Fedora Workstation, but one needs to enable the Flathub store:

flatpak remote-add --if-not-exists flathub
flatpak update


Before starting to install Homebrew, make sure you have glibc and gcc installed.

  • These tools can be installed on Fedora with:
sudo dnf groupinstall "Development Tools"
/bin/bash -c "$(curl -fsSL"

Once finished, run the following commands to add brew to your PATH:

echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bash_profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
  • Homebrew collects installation, build error, and operating system version statistics via Google Analytics.
  • It is possible to opt out with the command brew analytics off
  • Users can view analytics data from the last 30, 90, & 365 days on the Homebrew website.


Enable snapd

sudo dnf install snapd -y
sudo ln -s /var/lib/snapd/snap /snap # for classic snap support
sudo reboot now
sudo snap refresh

Install Snap Store

sudo snap install snap-store

Third-Party Softwares


With Fedy, you can do almost everything, including running predefined system commands to install apps, GPU drivers, network drivers, themes, multimedia codec, extra fonts, development tools, and tweak and configure your system.

sudo dnf copr enable kwizart/fedy
sudo dnf install fedy


  • Neofetch is a command-line system information tool written in bash 3.2+.
  • It displays information about your operating system, software and hardware in an aesthetically and visually pleasing way.
sudo dnf install neofetch

Upgrading to New Release

Pre-Installation Steps

sudo dnf upgrade --refresh
sudo dnf install dnf-plugin-system-upgrade
sudo dnf system-upgrade download --releasever=35
sudo dnf system-upgrade reboot

Post Installation Steps

sudo dnf system-upgrade clean
sudo dnf clean packages

Firmware Update

sudo fwupdmgr get-devices
sudo fwupdmgr refresh --force
sudo fwupdmgr get-updates
sudo fwupdmgr update
sudo reboot now


Clean-up old packages

You can see a list of packages with broken dependencies by typing:

sudo dnf repoquery --unsatisfied

The list should be empty, but if this is not the case consider removing them as they are not likely to work.

You can see duplicate packages (packages with multiple versions installed) with:

sudo dnf repoquery --duplicates

Remove packages no longer in use

sudo dnf autoremove