Creating Toolbox for Fedora Silverblue
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()
#################################################################################