#!/bin/bash # Slackware server URL server_url="http://mirrors.slackware.com/slackware/slackware64-current/" # package names without version number packages=( nano curl openssh libnsl git nghttp2 brotli cyrus-sasl screen libpcap dbus gc glibc gawk autoconf-archive autoconf automake binutils check cmake flex gcc gcc-g++ guile kernel-headers libtool m4 make meson nasm ninja pkg-config gettext gettext-tools strace libpthread-stubs ncurses libnl3 pciutils libarchive lz4 libxml2 libdrm libpciaccess libxcb python3 python-setuptools kmod libunwind elfutils zlib zstd pixman cairo glib2 libffi fontconfig freetype libpng harfbuzz graphite2 libglvnd libXau xorgproto libX11 libXdmcp libXrender libXext eudev bison oniguruma libunistring libusb net-snmp lzlib infozip nghttp3 ) # download FILELIST.TXT to get list of packages wget -O /tmp/FILELIST.TXT "${server_url}/FILELIST.TXT" # create packages directory mkdir -p /tmp/packages # loop through FILELIST.TXT for packages for package_name in "${packages[@]}" do # find the package in FILELIST.TXT package_file=$(grep -E "/${package_name//\+/\\\+}-[0-9]+" /tmp/FILELIST.TXT | awk '{print $8}' | grep -E "txz|tgz" | grep -v ".asc" | grep -Ev "/source/|/testing/" | grep -v "/patches/" | sed 's/^\.\///') # download the package if ! wget -P /tmp/packages/ "${server_url}${package_file}" ; then echo "ERROR: Download from package: ${package_file##*/} failed!" exit 1 fi done # install packages cd /tmp/packages installpkg * # compile libaio from source for fio libaio_v=0.3.112 cd /tmp wget -O /tmp/libaio-${libaio_v}.tar.xz ${server_url}source/l/libaio/libaio-${libaio_v}.tar.xz tar -C /tmp/ -xvf /tmp/libaio-${libaio_v}.tar.xz cd /tmp/libaio-${libaio_v} make -j$(nproc --all) make install -j$(nproc --all) # install jq jq_v=1.6 wget -O /tmp/jq-${jq_v}-x86_64-1alien.txz https://slackware.uk/people/alien/sbrepos/15.0/x86_64/jq/jq-${jq_v}-x86_64-1alien.txz installpkg /tmp/jq-${jq_v}-x86_64-1alien.txz # install freeipmi freeipmi_v=1.6.11 cd /tmp wget -O /tmp/freeipmi-${freeipmi_v}-x86_64-1.txz https://github.com/ich777/slackware/raw/master/slackware64-current/slackware64/freeipmi/freeipmi-${freeipmi_v}-x86_64-1.txz installpkg /tmp/freeipmi-${freeipmi_v}-x86_64-1.txz # cleanup rm -rf /tmp/*