1package_manager=yum 2 3upgrade() { 4 sudo "$package_manager" upgrade -y 5} 6 7install() { 8 (($#)) || return 0 9 10 sudo "$package_manager" install -y "$@" 11} 12 13packages=( 14 astyle-devel 15 autoconf 16 automake 17 bc 18 bison 19 ceph 20 clang-analyzer 21 elfutils 22 elfutils-libelf-devel 23 ethtool 24 fio 25 flex 26 gdb 27 gdisk 28 gflags-devel 29 glib2-devel 30 iptables 31 iscsi-initiator-utils 32 jq 33 kernel-devel 34 kernel-modules-extra 35 libabigail 36 libaio-devel 37 libasan 38 libibverbs-utils 39 libmount-devel 40 librdmacm-utils 41 libtool 42 libubsan 43 llvm 44 nvme-cli 45 openssl 46 pciutils 47 perl-open 48 perl-Switch 49 pixman-devel 50 pmempool 51 python3 52 rpm-build 53 rpmdevtools 54 ruby-devel 55 smartmontools 56 socat 57 sshfs 58 systemd-devel 59 targetcli 60 valgrind 61 wget 62 xfsprogs 63) 64 65if [[ $OSID != centos && $OSID != rocky && $OSID != rhel ]]; then 66 packages+=(btrfs-progs) 67 packages+=(avahi) 68 packages+=(avahi-tools) 69elif [[ $OSID == rocky ]]; then 70 # 8 and 9 comes with a kernel which does not support btrfs 71 packages+=(avahi) 72 packages+=(avahi-tools) # from the devel repo 73elif [[ $OSID == centos ]]; then 74 packages+=(avahi) 75 # 8 comes with a kernel which does not support btrfs. 76 # 8 does not come with any common repos that include avahi-tools. 77 if [[ $OSVERSION == 7* ]]; then 78 packages+=(avahi-tools) 79 packages+=(btrfs-progs) 80 fi 81elif [[ $OSID == rhel ]]; then 82 packages+=(avahi) 83 if [[ $OSVERSION == 9* ]]; then 84 packages+=("https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/i/isns-utils-devel-0.101-4.el9.x86_64.rpm") 85 elif [[ $OSVERSION == 8* ]]; then 86 packages+=("https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/Packages/isns-utils-devel-0.99-1.el8.x86_64.rpm") 87 fi 88 # FIXME: This does not fit here, but there's no sane alternative. Using RPMs from other sources will fail to meet 89 # dependencies anyway. 90 pip3 install pandas 91fi 92 93if [[ $OSID != rhel ]]; then 94 packages+=(isns-utils-devel) 95 packages+=(python3-pandas) 96fi 97 98if [[ $OSID == centos && $OSVERSION == 8* ]]; then 99 packages+=("https://rpmfind.net/linux/centos/8-stream/AppStream/x86_64/os/Packages/sshpass-1.09-4.el8.x86_64.rpm") 100else 101 packages+=(sshpass) 102fi 103 104if [[ $OSID == fedora ]] && ((OSVERSION == 34)); then 105 packages+=(bpftrace) 106fi 107 108if [[ $OSID == fedora ]] && ((OSVERSION >= 37)); then 109 packages+=(iproute-tc) 110fi 111 112pre_install() { :; } 113