Вы используете переменную массива ( $ REQPKGS
) внутри цикла вместо переменной цикла ( $ pkg
), поэтому он выполняет именно то, что вы ему сказали, установите оба пакеты одновременно дважды.
Измените внутреннюю часть цикла for
на:
REQPKGS=(redhat-lsb-core telnet)
for pkg in "${REQPKGS[@]}"; do
if yum -q list installed "$pkg" > /dev/null 2>&1; then
echo -e "$pkg is already installed"
else
yum install "$pkg" -y && echo "Successfully installed $pkg"
fi
done
При использовании цикла for
переменная, которую вы определяете после for
, содержит значение для каждого итерация цикла; в вашем случае переменная, которая содержит по одному пакету за раз, - $ pkg
.
В качестве альтернативы
REQPKGS=(redhat-lsb-core telnet)
yum install -y "${REQPKGS[@]}"
Устанавливает любые указанные пакеты, которые не установлены, и пропускает любые уже установленные пакеты.
Вы смешиваете пакеты CentOS 6 ( .el6
) с пакетами CentOS 7 ( .el7
), что недопустимо. Они очень разные.
Вы установили mysql56-community-release-el7. *
вместо mysql56-community-release-el6 *
, откуда из вы это получите.
Удалите этот неправильный источник пакета:
yum remove "mysql56-community-release-el7.*"
Установите правильный (как вы установили вышеупомянутый ранее), и тогда он должен работать для вас.
Найдите mysql-56-community
в вашем /etc/yum.repos.d/
и отключите его, установив внутри enable = 0
, если вы не знаю, что это там делает.