Creating Toolbox for Fedora Silverblue

Image credit: John Moeses Bauan

Shell script to build a Dev-Toolbox for Fedora Silverblue

Build an automatic Toolbox for Fedora Silverblue for developing. Decide for yourself which Fedora version and software you want to install.

Developer Toolbox (Devbox)

Code
#!/bin/sh
#################################################################################
#                               INSTALL DEVBOX
#-------------------------------------------------------------------------------#
#                     Create DEVBOX on Fedora Silverblue
#                     Installs all necessary Apps for me
#
#                    add/remove/change Apps as you like it
#										                                        
#################################################################################

#################################################################################
#             Only if RPM Fusion is installed w/ version number
#-------------------------------------------------------------------------------#
# sudo rpm-ostree update /
#                        --uninstall rpmfusion-nonfree-release-36-1.noarch \
#                        --uninstall rpmfusion-free-release-36-1.noarch \
#                        --install rpmfusion-free-release \
#                        --install rpmfusion-nonfree-release
#
#################################################################################
set -eux
# Name of the toolbox
NAME=devbox
# Which Fedora-Toolbox (e.g. 36,37,testing)
TAG=testing
# Stop container
podman stop $NAME || true
# Remoove container
podman rm $NAME || true
# Create container
toolbox create -i fedora-toolbox:$TAG -c $NAME
# Start Toolbox with
toolbox run -c "$NAME" sh -exec '\
#################################################################################
#                                     Update
#-------------------------------------------------------------------------------#
sudo dnf -y update
#################################################################################
#             Enable Updates-Testing, Updates-Testing-Modular
#-------------------------------------------------------------------------------#
sudo dnf config-manager --set-enabled updates-testing, updates-testing-modular
#################################################################################
#                   Install glibc to remove error msgs
#-------------------------------------------------------------------------------#
sudo dnf -y install glibc-all-langpacks
#################################################################################
#                   Install RPM-Fusion Free/Non-Free
#-------------------------------------------------------------------------------#
sudo dnf -y install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
                    https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
#################################################################################
#                     Import Key for VSCode repo
#-------------------------------------------------------------------------------#
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
#################################################################################
#                   Create VSCode repo on Toolbox
#-------------------------------------------------------------------------------#
sudo sh -c "echo -e \"[code]\nname=Visual Studio Code \n
            baseurl=https://packages.microsoft.com/yumrepos/vscode \n
            enabled=1 \n
            gpgcheck=1 \n
            gpgkey=https://packages.microsoft.com/keys/microsoft.asc\" > /etc/yum.repos.d/vscode.repo"
#################################################################################
#                               Update
#-------------------------------------------------------------------------------#
sudo dnf -y update
#################################################################################
#                   Install Fedoras DevTools group
#-------------------------------------------------------------------------------#
sudo dnf -y groupinstall "Development Tools"
#################################################################################
# Install toolbox-export ©A6GibKm (https://github.com/A6GibKm/silverblue-tools)
#-------------------------------------------------------------------------------#
sudo dnf -y install pip
pip install -r https://raw.githubusercontent.com/A6GibKm/silverblue-tools/master/requirements.txt
wget https://raw.githubusercontent.com/A6GibKm/silverblue-tools/master/toolbox-export -P /tmp && \
sudo cp /tmp/toolbox-export /usr/bin/ && sudo chmod +x /usr/bin/toolbox-export
#################################################################################
#                       Install all software you want
#-------------------------------------------------------------------------------#
sudo dnf -y install texlive-scheme-full code mesa-dri-drivers vulkan-loader \
                    libcanberra-gtk2 PackageKit-gtk3-module R-devel \
                    rstudio-desktop ansible julia-devel java-11-openjdk-devel \
                    java-latest-openjdk-devel fish maven libXScrnSaver \
                    openssl-devel harfbuzz-devel fribidi-devel libcurl-devel
#################################################################################
#                             Install SML/NJ
#-------------------------------------------------------------------------------#
sudo mkdir -p /opt/smlnj/ && \
sudo chown chorn:chorn -R /opt/smlnj && \
cd /opt/smlnj && \
wget https://smlnj.org/dist/working/110.99.3/config.tgz && \
tar -xzf config.tgz && \
config/install.sh && \
sudo cp /opt/smlnj/bin/sml /usr/local/bin
#################################################################################
#                         Create .desktop for host system
#-------------------------------------------------------------------------------#
#toolbox-export -c $NAME code
#toolbox-export -c $NAME rstudio'
podman stop $NAME
#################################################################################
#                   Enter Toolbox with "toolbox run -c $NAME
#-------------------------------------------------------------------------------#

#################################################################################
#                               Change JAVA Version
#-------------------------------------------------------------------------------#
# sudo alternatives --config java
#################################################################################
#                           Change MAVEN JAVA Version
#-------------------------------------------------------------------------------#
# nano ~/.mavenrc
# export JAVA_HOME='/usr/lib/jvm/java-"VERSION"-openjdk'
#################################################################################
#                                 POWERSHELL pwsh
#-------------------------------------------------------------------------------#
# podman pull mcr.microsoft.com/powershell:latest
#################################################################################
#                                     MATLAB
#-------------------------------------------------------------------------------#
# sudo dnf install  libXdmcp libX11 libXcomposite libXcursor libXdamage \
#                   libXext libXfixes libXft libXi libXrandr libXrender \
#                   libXScrnSaver libXt libXtst libXxf86vm alsa-lib atk cairo \
#                   cups-libs fontconfig GConf2 gtk2 gdk-pixbuf2 gnome-vfs2 \
#                   gstreamer1-plugins-base gstreamer1 pango libsndfile \
#                   libxcb libxslt
#################################################################################
#           To start install process and for the installation dir
#-------------------------------------------------------------------------------#
# cd <matlab installer root directory>
# cd /bin/glnxa64
# ls | grep libfreetype
# mkdir exclude
# mv libfreetype.so.6 exclude/
# mv libfreetype.so.6.16.0 exclude/
#################################################################################
#                               R Studio Blogdown
#-------------------------------------------------------------------------------#
# sudo dnf install  fribidi-devel harfbuzz-devel libcurl-devel gcc gcc-c++ \
#                   make openssl-devel libxml2-devel freetype-devel \
#                   libpng-devel libtiff-devel libjpeg-turbo-devel
#################################################################################
#                   Install required packages in R Studio
#-------------------------------------------------------------------------------#
# install.packages("devtools")
# install.packages('blogdown')
# blogdown::install_hugo()
#################################################################################
Christopher Horn
Christopher Horn
Student of Computer Science

My interests include system administration, server security and server automation.