Minimal Slackware64 in Qemu


Slackware is one of those distros I kept trying to install but always ran into issues. This time, I gave it a shot in QEMU and went for a minimalist setup. The thing with Slackware is that, by default, it wants to install everything, over 15 GB of packages, which I’m not a fan of. I don’t like having software I won’t use cluttering up my system, so I tried to keep it lean. After a lot of trial and error and a bunch of failed boots, I finally got it installed. Here’s how I did it.

NOTE: I will update the selected packages if needed. Also, you don't have to choose what I choose. It's your system, not mine.

Setup

for Minimal setup i install from A, AP, D, L and N, also i use GRUB and kernel-generic so after install you need to chroot it then install initrd and grub

qemu-img create -f qcow2 Slackware.qcow2 20G

# Slackware Partition
## 128M EFI System
## 512M /boot
## REST /

# Setup after Install
chroot /mnt
mkinitrd -c -k 5.15.19 -m ext4
grub-install --target=x86_64-efi --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg

A - Base Linux System

  • aaa_base
  • aaa_glibc-solibs
  • aaa_libraries
  • aaa_terminfo
  • acl
  • acpid
  • attr
  • bash
  • bin
  • bzip2
  • coreutils
  • cpio
  • cpufrequtils
  • cracklib
  • dbus
  • dcron
  • devs
  • dialog
  • dosfstools
  • e2fsprogs
  • ed
  • efibootmgr
  • efivar
  • elogind
  • etc
  • eudev
  • file
  • findutils
  • gawk
  • gettext
  • glibc-zoneinfo
  • gptfdisk
  • grep
  • grub
  • gzip
  • hostname
  • kbd
  • kernel-firmware
  • kernel-generic
  • kernel-modules
  • kmod
  • less
  • libpwquality
  • logrotate
  • lzip
  • lzlib
  • mcelog
  • mkinitrd
  • mlocate
  • openssl-solibs
  • pam
  • patch
  • pciutils
  • pkgtools
  • procps-ng
  • sed
  • shadow
  • sysfsutils
  • sysklogd
  • sysvinit
  • sysvinit-scripts
  • tar
  • time
  • usbutils
  • util-linux
  • which
  • xz

AP - Various Application that do not need X

  • diffutils
  • groff
  • man-db
  • man-pages
  • nano
  • neofetch
  • slackpkg
  • sqlite

D - Program Development (C, C++, Lisp, Perl, etc.)

  • autoconf
  • automake
  • binutils
  • cmake
  • flex
  • gcc
  • gcc-g++
  • gdb
  • git
  • kernel-headers
  • libtool
  • m4
  • make
  • ninja
  • perl
  • pkg-config
  • python3

L - System Libraries (needed by KDE, GNOME, X, and more)

  • brotli
  • elfutils
  • glibc
  • glibc-i18n
  • libarchive
  • libedit
  • libffi
  • libidn
  • libmpc
  • libseccomp
  • libunistring
  • lz4
  • lzo
  • ncurses
  • readline
  • xxHash
  • zlib

N - Networking (TCP/IP, UUCP, Mail, News)

  • ca-certificates
  • cyrus-sasl
  • ethtool
  • gnupg
  • gnutls
  • gpgme
  • iproute2
  • iputils
  • libgcrypt
  • libgpg-error
  • libksba
  • libmnl
  • nc
  • net-tools
  • nettle
  • network-scripts
  • nftables
  • nghttp2
  • openssh
  • openssl
  • p11-kit
  • rsync
  • wget
  • whois