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.
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.
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
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”
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
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
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
6. Configure Ethernet/Wifi network connection ip address.
First check your Ethernet device name before modifying its configurations
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.
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
a) Set global alias for vim
b) Add the line below to the end
c) Apply changes
d) To configure vim for your user account only, save configurations to ~/.vimrc file but for all user account write to /etc/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
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.
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
dnf -y install phpMyAdmin php-mysqlnd php-mcrypt apachectl restart
Access phpmyadmin on Your browser using localhost or your ip address.
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
- 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
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
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
Start VNC server by running below command.
vncserver :1 -geometry 800x600 -depth 24
To stop VNC server type:
vncserver -kill :1
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.
Uncompress and change to its directory then run.
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
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
b) See both enabled and disabled dnf repositories
dnf repolist all
c) List packages available in repos and installed ones
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
l) Update system packages
m) Remove a package
dnf remove "package-name"
n) Remove orphaned packages
o) Remove cached packages
dnf clean all
p) List dnf command options
q) List group packages
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
v) Downgrade a package
dnf downgrade "package-name"
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.