yum + не обновляет установленный пакет

Ваш исходный скрипт можно сделать немного более переносимым с помощью setвстроенного -, а также объединить ip и ключ в одну строку, разделенную двоеточием. Позже мы можем использовать удаление префикса и суффикса для извлечения соответствующей записи

#!/usr/bin/env bash

# Set positional parameters
# Example ip addresses
set -- 192.168.0.1:mykey1 192.168.1.1:mykey2

# iterating without specifying 'in' assumes positiona parameters
for host; do
    ssh -i ${host##*:}.pem myuser@${host%%:*} << 'ENDSSH'
[A LOT OF STUFF]
ENDSSH

done
2
12.07.2020, 18:38
2 ответа

У меня сложилось впечатление, что вы жалуетесь на поведение yum по умолчанию.

yum служит менеджером пакетов, который устанавливает/удаляет или обновляет пакеты.

Если есть Error: Nothing to do, это де-факто -не удается установить/удалить или обновить пакет -, поэтому код возврата == 1.

Если вы хотите проверить, установлен ли пакет, а если нет, то установите его, попробуйте следующее:

rpm -qa | grep wget || yum -y install wget

Это должно дать вам $? == 0 в стандартном сценарии.

4
18.03.2021, 23:20

Вы пытаетесь установить пакеты, которые либо старше, либо той же версии, что и те, которые вы уже установили в своей системе. yumпроверяет это перед запуском, поэтому он выдает сообщения, когда вы пытаетесь использовать его с этими пакетами. Иначе что бы yumделал во время обновлений? Если обновление выйдет и будет доступно в одном из репозиториев, обновит ли оно их оба до последней версии и будет ли в системе два одинаковых пакета?

Если вам нужна более старая версия программного обеспечения, вам нужно скомпилировать ее из исходного кода, а не использовать yumдля установки ее rpm.

3
18.03.2021, 23:20

Теги

Похожие вопросы