Skip to content

Instantly share code, notes, and snippets.

@Rusydy
Last active November 12, 2025 12:30
Show Gist options
  • Select an option

  • Save Rusydy/8ec64449f044fd026f8c3c269f43c80a to your computer and use it in GitHub Desktop.

Select an option

Save Rusydy/8ec64449f044fd026f8c3c269f43c80a to your computer and use it in GitHub Desktop.

Upgrading to Complete AlmaLinux Installation

Step 1: Update the System

sudo dnf update -y

Step 2: Install Essential System Tools

# Basic utilities
sudo dnf install -y util-linux coreutils findutils grep sed gawk

# Clear command and other basic tools
sudo dnf install -y ncurses which less

# Network tools
sudo dnf install -y net-tools iproute iputils wget curl

# Text editors
sudo dnf install -y vim

# EPEL repository (Extra Packages for Enterprise Linux)
sudo dnf install -y epel-release

# Process management
sudo dnf install -y htop lsof

# Install file utilities
sudo dnf install -y tree file

Step 3: Install Package Groups

# List available groups
dnf group list

# Install core system components
sudo dnf group install -y "Core" "Base"

# Install additional useful groups
sudo dnf group install -y "Development Tools"
sudo dnf group install -y "System Tools"
sudo dnf group install -y "Network Servers"

Step 4: Install Desktop Environment (Optional)

If you want a GUI:

# GNOME (full desktop)
sudo dnf group install -y "GNOME Desktop Environment"

# Or XFCE (lightweight)
sudo dnf group install -y "Xfce Desktop"

# Enable graphical target
sudo systemctl set-default graphical.target

Step 5: Configure Additional Services

# Enable and start chronyd for time synchronization
sudo systemctl enable --now chronyd

# Configure timezone
sudo timedatectl set-timezone America/New_York  # Replace with your timezone

Step 6: Create a Regular User Account (If Using Root)

# Create user
sudo useradd -m -G wheel yourusername

# Set password
sudo passwd yourusername

# Test sudo access
su - yourusername
sudo whoami

Step 7: Final System Update and Cleanup

# Update everything
sudo dnf update -y

# Clean package cache
sudo dnf clean all

# Reboot to ensure everything is working
sudo reboot

Step 8: Verify Installation

After reboot, check that essential commands work:

clear
ls -la
htop
ip addr show
systemctl status

Step 9: Add Oh My Zsh

# Install Zsh
sudo dnf install -y zsh

# Verify installation
zsh --version
which zsh

# Install Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# Change default shell to zsh
chsh -s $(which zsh)

Step 10: Install Development Tools

# Install homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Verify installation
brew --version

# Install ASDF
brew install asdf

# Give ping binary the required capability
sudo setcap cap_net_raw+p /usr/bin/ping

Step 11: Setup Tailscale VPN

This step only for proxmox maintainer

  1. go to Node of your LXC/Container
  2. login to its shell
  3. run vim /etc/pve/lxc/[LXC_ID].conf e.g vim /etc/pve/lxc/105.conf
  4. add these lines:
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
  1. reboot the container pct reboot [LXC_ID]

on Container side

# Install Tailscale
curl -fsSL https://tailscale.com/install.sh | sh

# start Tailscale with ssh capability
tailscale up --ssh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment