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