Fedora 38 Setup - KDE - Server Version

Fedora 38 Setup - KDE - Server Version

I have run Ubuntu on and off through the years, almost since the beginning around 17 years ago. Back then it was great. It helped me to get into the Linux world. Nowadays, it seems just boot-loaded. Specially the eternity that takes to update the libraries. And, I do not like today’s gnome in a Workstation. To me it is great in a laptop where a track pad is available. But not for a dedicated mouse. I know I could use a different flavor, but how old the libraries are in it, is a no in today’s world.

For some time I tried with Linux Mint and popOS in a laptop. It was fine, still gnome in a laptop. But, since the beginning of the year I have been using Fedora 37 on an old Surface Go2, it runs amazing; for a Surface Go2 with 3Gb of RAM. No complains, 12 Gb of space to run in comparison to the 30 somethings of Windows. It came back to life, yes the camera still does not work as intended, but everything else is great. Thanks to the people in GitHub - linux-surface/linux-surface: Linux Kernel for Surface Devices. It is an amazing work.

With all these in mind and because I decided, “Finally”, to move to Linux as my main driver and have Windows as backup. And, since Fedora 38 just lunched…. well here we are. This is my personal implementation. It is mainly to document the steps that I followed. And by no means is the best implementation. I should have stayed with the Fedora 38 Workstation; Nvidia seems not to like it (in another Post I will look into the NVIDIA drivers journey), but its gnome….

The post image was created with midjourney. Prompt: /imagine Create an abstract paint that illustrates the fusion of engineering and innovation with Data Science, navigating the crossroads of expertise to create sustainable and efficient solutions using oil as the medium, with the impasto technique, emphasizing depth and contrast, and featuring a stunning midnight blue and dark green color palette. –no Letters, Text, Signature, Watermark, Logo, Stamp, Branding, Trademark, Copyright, Registered Trademark, Human, Person, People. –aspect 7:4 –s 750 –v 5 –q 2

Install Fedora Server with KDE

Initial Configuration

Because I am installing the server version and adding KDE without firefox and libreoffice, the default size for / is 15Gb. I expanded it to the maximum possible size. First update the installation and install git, kitty and zsh.

[erick@fedora ~]$ sudo dnf update -y
[erick@fedora ~]$ sudo dnf install git kitty zsh

Now expand root size. Fore details see: Fedora Server Install not Using entire disk. - YouTube

I am not convinced this is the correct way to move forward with the implementation. I have the feeling that home is out of the scope in this implementation. And, that I am not using root as intended. I do not have a message board, but feel free to contact me if you have any ideas or opinions about this.

[erick@fedora ~]$ sudo lvdisplay
[sudo] password for erick:
  --- Logical volume ---
  LV Path                /dev/fedora/root

[erick@fedora ~]$ sudo lvresize -r -l +100%FREE /dev/fedora/root
   Logical volume fedora/root successfully resized.

The first part, lvdisplay, provides the required path name for lvresize.

Now create a folder to build the setup. Eventually everything that needs to be build lands here.

mkdir Build
cd Build
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

nano ~/.zshrc

once in nano, configure oh-my-zsh prompt inside .zshrc. Replace the ZSH_THEME=XXX with:

ZSH_THEME="fino"

Finally add a couple of pluggins to highlight the commands and generate auto suggestions.

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

nano ~/.zshrc

Configure the plugins inside .zshrc

change plugins=(git) to plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

Compile .zshrc

source ~/.zshrc

Install Vivaldi with dnfdragora package installer.

mkdir vivaldi
cd vivaldi
wget https://downloads.vivaldi.com/stable/vivaldi-stable-6.0.2979.18-1.x86_64.rpm

After downloading it. Go to the folder location within Dolphin. Select run with dnfdragora package installer by doing right click to the rpm file. The 6.0.2979.18-1.x86_64 version is the latest at the time this post is being publish. Review the latest version.

Install the following programs and applications

sudo dnf install neofetch

Setup GitHub

Create SSH key and setup. Follow the instructions at Connecting to GitHub with SSH - GitHub Docs.

Setup Visual Studio Code

Follow the instructions in: Running Visual Studio Code on Linux

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'

dnf check-update
sudo dnf install code

Install and configure pyenv inside .zshrc

git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init --path)"\nfi' >> ~/.zshrc

Install Jekyll and setup for Basically Basic Jekyll Theme

Follow the installation steps Jekyll on Linux

In brief install prerequisites.

sudo dnf install ruby ruby-devel openssl-devel redhat-rpm-config @development-tools

Add gems to path with:

nano ~/.zshrc
# Install Ruby Gems to ~/gems
export GEM_HOME="$(ruby -e 'puts Gem.user_dir')"
export PATH="$GEM_HOME/bin:$PATH"
export GEM_BINN="$HOME/bin"
export PATH="$GEM_BINN:$PATH"
source ~/.zshrc

Install Jekyll and Bundler gems

gem update
gem install jekyll bundler

There was missing a library make: g++: No such file or directory.

Solve it installing

dnf install gcc-c++

Follow the instructions Basically Basic Jekyll Theme, run

bundle install

Ruby suggest to update it to its latest version. However a permission error was trigger.

A solution is to install it as a super user. However ruby shows the message: Do not run bundle install with root privileges. Because the Ruby gems was installed with dnf, it was installed as superuser. The right way to update ruby gems in this case is to use Fedora dnf. But this will not have the latest version. Which may not be needed in this case.

A solution would be to install Ruby Gems according to Download RubyGems / your community gem host. But that is out of the scope of my usage.

So far is were we are. I am still missing Pandoc, LuaLaTex, pdftk, TexLive and TexStudio. Advance data science setup, yes NVIDIA drivers…