(Last Updated On: August 12, 2018)

Fedora is now my favorite Linux distribution. Fedora 23 provides software to suit a wide variety of applications and can be installed and used on systems with limited resources for some applications. Modes of installations like Text, vnc,  kickstart and  graphical installation are available. It is a stable, reliable upstream distro and provides access to tools and technologies which are used in the enterprise space.
If you Love what we do, support us by downloading this tutorial as pdf from the link below:
Previously i wrote an article about How to fix Vmware Workstation and Vmware Player can’t start problem on fedora 23.
Fedora 23 was released early November 2015 and here is my list of top things to do after installing Fedora 23.It might not suite all your needs but can help you get started.

1. Add standard user account if you didn’t do it while installing.Replace username with the username of the account you’re adding.

useradd username
passwd username

Make a user be only who can switch to root, this is a security mechanism

usermod -G wheel username

Then edit su file inside /etc/pam.d directory to make user the only who can switch to root.

vim  /etc/pam.d/su

uncomment line 6 to look like one shown below.

auth            required        pam_wheel.so use_uid

Transfer root privilege to a user you added, here the username is “username”.

echo " EDITOR = vim " >> ~/.bashrc
 source ~/.bashrc
 visudo

Add to the end of the file the user added to use all root privileges.

username  ALL=(ALL) ALL

If you need to disallow certain commands from being executed by the user, you can do that inside /etc/sudoers file.In my example, i will disallow execution of halt,passwd,reboot and init command for changing runlevels, iptables, kill,killall, ,chkconfig,service,systemctl,ifconfig, modprobe

visudo

Add alias to commands not allowed

Cmnd_Alias DISALLOW = /usr/bin/passwd, /sbin/service, /bin/kill,/usr/bin/kill, /sbin/chkconfig, 
 /usr/bin/systemctl, /sbin/ifconfig, /sbin/halt, /sbin/shutdown, /sbin/poweroff, /sbin/reboot, 
 /sbin/init, /sbin/iptables, /usr/bin/killall, /usr/sbin/visudo, /bin/chown,/bin/chgrp,/sbin/modprobe

Add commands in alias DISALLOW to user “username”

username    ALL=(ALL)     ALL, !DISALLOW

Try to execute any of blacklisted commands above with the username added, You should get the message
Sorry, user “username” is not allowed to execute “command”.
To allow only certain command to be run by a user do the following.
Open /etc/sudoers file

visudo

Add the command as shown at the end of the file.

username  ALL=(ALL)    /usr/bin/systemctl, /sbin/halt

The user in example above will be able to run both systemctl and halt commands.

2. Disable SELinux (Security-Enhanced Linux) if you don’t need it.

sed -i 's/(^SELINUX=).*/SELINUX=disabled/' /etc/selinux/config

If you reboot your system and type

sestatus

You should get output saying selinux is disabled.

SELinux status:                 disabled

3. If you don’t need firewall you can disable it.

systemctl stop firewalld 
systemctl disable firewalld rolekit

4. Configure hostname

hostnamectl set-hostname "yourhostname"

5. Configure timezone

timedatectl list-timezones 
timedatectl set-timezone Africa/Nairobi

Confirm with

 timedatectl

 

6. Configure Ethernet/Wifi network connection ip address.
First check your Ethernet device name before modifying its configurations

 nmcli device

For my case mine is eno1.
I will configure my eno1 with ip address 192.168.1.33, subnet mask 255.255.255.0, gateway 192.168.1.1, DNS server 192.168.1.1 . The method of configuration is manual.

nmcli connection modify eno1 ipv4.addresses 192.168.1.33/24
nmcli connection modify eno1 ipv4.gateway 192.168.1.1
nmcli connection modify eno1 ipv4.dns 192.168.1.1
nmcli connection modify eno1 ipv4.manual method

Restart the interface to make changes effective.

nmcli connection down eno1
nmcli connection up eno1

Check your ip address by typind:

 ip addr show

7. If you don’t or won’t use IPv6 in your network you can disable it.
Open grub configuration file and parse the line ipv6.disable=1 to GRUB_CMDLINE_LINUX on Line 6.

vim  /etc/default/grub

To look something like below.

GRUB_CMDLINE_LINUX=" ipv6.disable=1 rd.lvm.lv=fedora/root rd.lvm.lv=fedora/s    wap rhgb quiet"

Update grub configuration

grub2-mkconfig -o /boot/grub2/grub.cfg

For EFI use

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg 
reboot

8. Do system update and upgrade

dnf -y upgrade

9. Install vim and configure it.

dnf -y install vim-enhanced

Vim configuration
a) Set global alias for vim

vim  /etc/profile

b) Add the line below to the end

alias vi='vim'

c) Apply changes

source /etc/profile

d) To configure vim for your user account only, save configurations to ~/.vimrc file but for all user account write to /etc/vimrc.

vi ~/.vimrc

Then add the following lines

set nocompatible
set fileformats=unix,dos
set history=100
set ignorecase
set number
set showmatch
syntax on
highlight Comment ctermfg=LightCyan
set wrap
set incsearch
set hlsearch
set smartcase

10. Install Cockpit Admin Console

 dnf -y install cockpit

If you had install docker before and you encounter problems while trying to install cockpit. You may consider running command below.

dnf -y install cockpit --allowerasing

Enable cockpit socket to run on boot

systemctl enable cockpit.socket

Start cockpit

systemctl start cockpit

If you have a running or active firewalld, allow cockpit service on firewall.

firewall-cmd --add-service=cockpit --permanent

For iptables use

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
service iptables save

Install httpd  to configure Web Server.You can install php scripts for web server as well.

dnf -y install httpd 
systemctl start httpd 
systemctl enable httpd 
dnf -y install php php-mbstring php-pear

Access cockpit admin portal by typing any of the following on your browser.

http://localhost:9090/
http://your_ip_address:9090/
For security purposes, use https.
https://localhost:9090/
https://your_ip_address:9090/

 

 

 

 

 

 

 

Disable Adblock plus browser addon on cockpit login to be able to use it.Otherwise you will be seeing blank pages.

11.If you are a person interested in Virtualization, install KVM and its management tools.

dnf -y install qemu-kvm libvirt virt-install bridge-utils 
dnf -y install virt-manager 
dnf -y install libguestfs-tools virt-top 
dnf -y install spice-server

To allow libvirt daemon to start on computer statup do,

systemctl start libvirtd 
systemctl enable libvirtd

12.Install MariaDB and phpMyadmin

dnf -y install mariadb-server 
systemctl start mariadb 
systemctl enable mariadb

Set up MariaDB password.

mysql_secure_installation

Say yes to set root password,remove anonymous users,disallow root login remotely and remove test database.Then reload privilege tables.
Try logging in with your password.

mysql -u root -p

Install phpMyAdmin

dnf -y install phpMyAdmin php-mysqlnd php-mcrypt 
apachectl restart

Or

systemctl restart httpd 

Access phpmyadmin on Your browser using localhost or your ip address.

http://localhost/phpmyadmin/
http://"my-ip-address"/phpmyadmin/

13.Add rmpfusion repo.

rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm

14. Install vlc media player.

dnf -y install vlc

15. Install qbittorent Bitorrent client.

dnf install qbittorrent

Another cool torrent client is deluge which can easily be installed using Fedora repos.

sudo dnf install deluge

16. Install Virtualbox

dnf install VirtualBox

17. Install alsa jack plugins and alsa gui tools to configure your beats audio sound if you have beats audio hardware.

dnf install alsa-plugins-jack
dnf install alsa-tools
dnf install alsa-tools-firmware
dnf install alsa-plugins-pulseaudio
dnf install alsa-plugins-speex
dnf install alsa-utils

Now retask the audio using “HDAJackRetask” to get beats audio working.To do the configuration, press super key and type HDAJackRetask on the search box. Launch the app then do configurations like below,
On top menu, select codec “IDT 92HD91BXX”
Then on Options section, click on checkbox “Show unconnected pins”  and set configurations as in the screenshot below.

Click Apply now to test, if you find your sound better click on “Install boot override”.I got an error message “tee: /sys/class/sound/hwC1D0/reconfig: Device or resource busy” , solution to that was save my configuration changes by clicking “Install boot override“. If on rebooting your machine your pulse audio driver fails to work, you can revert changes by using “Remove boot override”.

18. Install Fedy to help you install some of the proprietary applications not in Fedora repositories.With Fedy you will be able to install other applications like.

  •  Atom text Editor; with lots of plugins available you can make it incredible IDE.
  •  Adobe Flash Browser plugin
  •  File roller Archive Formats
  •  Brackets source code editor for Web developers
  •  Dropbox integration for GNOME file manager Nautilus
  •  Google chrome
  •  Microsoft TrueType core fonts like New Roman,Arial
  •  Multimedia codecs
  •  Oracle JRE
  •  Skype
  •  Team viewer
  •  Sublime Text and many more.

The following themes are installable through Fedy.

  •  Arc Theme
  •  EvoPop theme and icons
  •  Numix themes
  • Tweakings provided by Freya are:
  •  Better font rendering for better readability
  •  Cleaning junk files,
  •  Fancy Bash Prompt
  •  GRUB2 configuration among others.

Installing Fedy is very simple, just do:

su -c "curl http://folkswithhats.org/fedy-installer -o fedy-installer"
chmod +x fedy-installer
./fedy-installer

Launch Fedy by typing fedy on your terminal

fedy

Additionally, you can install and use postinstallerf which is similar in functionality to Fedy.Install it by typing commands below on your terminal.

dnf -y install wget
wget https://raw.github.com/kuboosoft/postinstallerf/master/postinstallerf.repo
cp postinstallerf.repo /etc/yum.repos.d/
dnf -y install postinstallerf

19. Install clementine. It’s my favorite mp3 player.

dnf -y install clementine

20. Install spotify a digital music service that gives you access to millions of songs.

dnf config-manager --add-repo=http://negativo17.org/repos/fedora-spotify.repo
dnf install spotify-client

21. Installing different Desktop Environments.Fedora 23 Workstation comes with GNOME Desktop Environment but you can also install any of the following Desktop Environments if you need.
Install Cinnamon Desktop Environment

 dnf -y group install "Cinnamon Desktop" 
 echo "exec /usr/bin/cinnamon-session" >> ~/.xinitrc

Install GNOME Desktop Environment

 dnf -y group install "Fedora Workstation" 
 echo "exec /usr/bin/gnome-session" >> ~/.xinitrc

Install KDE Desktop Environment

 dnf -y group install "KDE Plasma Workspaces" 
 echo "exec /usr/bin/startkde" >> ~/.xinitrc

Install MATE Desktop Environment

 dnf -y group install "MATE Desktop" 
 echo "exec /usr/bin/mate-session" >> ~/.xinitrc

Install LXDE Desktop Environment

dnf -y group install "LXDE Desktop"
echo "exec /usr/bin/lxsession" >> ~/.xinitrc

 

22. Instll VNC Server for GUI access from a remote client.

dnf -y install tigervnc-server

Set VNC password using user account you’ll be connecting to from a remote machine

vncpasswd

Start VNC server by running below command.

vncserver :1 -geometry 800x600 -depth 24

To stop VNC server type:

vncserver -kill :1

23.Changing Run-Level:
Linking to /etc/systemd/system/default.target is a way to change runlevel.
If you made your fedora 23 a server and defaulted to text based login.You can change to Graphical-login by typing:

systemctl set-default graphical.target
reboot

To change to runlevel 3 type:

systemctl set-default multi-user.target 
reboot

24.Install common gnome shell extensions

dnf install gnome-shell-extension-common-3.18.2-1.fc23.noarch

The best way to install shell extensions is using extensions.gnome.com
25. Installing Vertex Theme

cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/home:Horst3180/Fedora_23/home:Horst3180.repo
dnf install vertex-theme

Horst3180 repo contains other themes which can be directly installed after adding the repo to our system.These are:

dnf install arc-theme
dnf install ceti-2-theme

To change theme, open gnome-tweak-tool and select the theme you want to use under GTK+.See below image for clarification.

If you don’t have gnome tweak tool you can install it by typing:

dnf install gnome-tweak-tool

26. Install Gimp image manipulation tool

dnf install gimp

27. Install SimpleScreeRecorder; screen recorder for Linux

dnf install ffmpeg-devel qt4-devel alsa-lib-devel pulseaudio-libs-devel jack-audio-connection-kit-devel gcc make gcc-c++ glibc-devel.i686 libgcc.i686 libX11-devel libX11-devel.i686 libXext-devel libXext-devel.i686 libXfixes-devel libXfixes-devel.i686 mesa-libGL-devel mesa-libGL-devel.i686 mesa-libGLU-devel mesa-libGLU-devel.i686

If you are interested in building it from source do it as shown below.

wget https://github.com/MaartenBaert/ssr/archive/master.tar.gz

Uncompress and change to its directory then run.

./simple-build-and-install

28. Install BleachBit a free disk cleaner for linux

dnf install bleachbit-1.9.0-1.fc23.noarch

29. Install Openshot Video Editor

dnf install openshot

30. Install tor
Add tor repo

vim /etc/yum.repos.d/torproject.repo

Add following

[tor] 
name=Tor repo enabled=1
baseurl=https://deb.torproject.org/torproject.org/rpm/DISTRIBUTION/$basearch/ 
gpgcheck=1 
gpgkey=https://deb.torproject.org/torproject.org/rpm/RPM-GPG-KEY-torproject.org.asc 
repo_gpgcheck=1

 [tor-source]
name=Tor source repo 
enabled=1 
autorefresh=0
baseurl=https://deb.torproject.org/torproject.org/rpm/DISTRIBUTION/SRPMS 
gpgcheck=1 
gpgkey=https://deb.torproject.org/torproject.org/rpm/RPM-GPG-KEY-torproject.org.asc 
repo_gpgcheck=1

To install tor type

dnf install tor

31. Install Geany Text editor and IDE
Geany  is  a small and fast editor with basic features of an integrated development environment.  Some of its features: syntax highlighting, code completion, code  folding,  symbol/tag  lists  and many supported filetypes like C(++), Java,PHP, HTML, DocBook, Perl and more.

dnf -y install geany

32. Install Bluefish editor.
Bluefish  is  an  open-source  editor for experienced web designers and programmers, supporting many  programming  and  markup  languages, but     focusing on creating dynamic and interactive websites.

dnf install bluefish

33. Learn basic uses of DNF (Fork of Yum) for package management.
a) See enabled repositories

dnf repolist

b) See both enabled and disabled dnf repositories

dnf repolist all

c) List packages available in repos and installed ones

dnf list

d)  List all installed packages

dnf list installed

e) List all available packages that can be installed from enabled repositories.

dnf list available

f)  Search for a package in repos

 dnf search "package-name"

g) See package that provides sub package

dnf provides "package-name"

i) Install a package

dnf install "package-name"

j) Updating a package

dnf update "package-name"

k) Check updates for installed packages

dnf check-update

l) Update system packages

dnf upgrade

m) Remove a package

dnf remove "package-name"

n) Remove orphaned packages

dnf autoremove

o) Remove cached packages

dnf clean all

p) List dnf command options

dnf help

q) List group packages

dnf grouplist

r) Install  Group package

dnf groupinstall 'group-package-name'

s) Install package from specific repository

dnf --enablerepo="repo-name" install "package-name"

t) Reinstall a package

dnf reinstall "package-name"

u) Synchronize installed packages to stable release

dnf distro-sync

v) Downgrade a package

dnf downgrade "package-name"

If you Love what we do, support us by downloading this tutorial as pdf from the link below:

 Conclusion

Fedora is one of must use Linux Distribution developed by vibrant community with tons of installable packages available. It’s easy to install, can run on old hardware and you can use this article to get basic softwares you need to have complete Desktop for daily use.

Related: