yum установить пакет без обновления других пакетов или сбой …?

Есть ли способ сказать yum установить пакет, выбрав версию этого пакета, которая будет удовлетворена установленными зависимостями?

Например, если я устанавливаю пакет pecl, и в настоящее время я установил php-5.4.11 но php-5.4.11 новый php-5.4.14 . Вместо того, чтобы устанавливать новый пакет (и обновлять все пакеты php до 5.4.14), я просто хочу, чтобы он выбрал более старую версию пакета, который я попросил установить, не обновляя все остальные (или не сработает, если это невозможно).

Это конкретный случай, когда я знаю, что могу исключить или исправить пакет php, но я ищу общий вариант, который применим к любой установке.

Что-то вроде:

 yum install php-pecl-xxxx --no-updates 

Временное решение:

Использовать флаг -C :

 sudo yum install foobar -C 

Постоянное решение:

Используйте флаг metadata_expire в yum.conf для управления этим.

Измените /etc/yum.conf и установите

 metadata_expire=15d 

Вы можете использовать d, h или m для настройки времени в днях, часах или минутах .

Бонус: вот документация:

metadata_expire – это время (в секундах), после которого истекает срок действия метаданных. Таким образом, если текущие метаданные загружаются меньше, чем это много секунд, тогда yum не будет обновлять метаданные в репозитории. Если вы обнаружите, что yum не загружает информацию об обновлениях так часто, как вы хотели бы снизить значение этой опции. Вы также можете изменить значение по умолчанию с использованием секунд на использование дней, часов или минут путем добавления объявлений, h или m соответственно. По умолчанию – 6 часов, чтобы комплимент yum-updatesd работал один раз в час. Также возможно использовать слово «никогда», что означает, что метаданные никогда не истекут. Обратите внимание, что при использовании файла metalink metalink всегда должен быть новее, чем метаданные для репозитория, из-за проверки, поэтому этот тайм-аут также применяется к файлу metalink. Также обратите внимание, что «никогда» не отменяет «yum clean expire-cache»,

На данный момент не существует такого варианта. Однако, если вы хотите установить пакет без обновления, я бы порекомендовал загрузить rpm той же версии и затем установить его.

В пакете yum-utils есть инструмент, называемый yumdownloader . Вы можете использовать его для загрузки из репозиториев без установки. Все стандартные переключатели, такие как --disablerepo применяются. См. Справочную страницу для получения дополнительной информации.

Я думаю, вы можете загрузить RPM, а затем делать то, что хотите, используя RPM напрямую.

Если более старая версия пакета по-прежнему находится в ваших репозиториях yum, вы можете просто запустить yum install packagename-version-release.arch и она установит более старую версию, не пытаясь перейти на последнюю версию. Вам нужно будет использовать полное имя, версию, выпуск и арку, если в вашем реестре yum есть несколько версий и архитектур. Вы можете получить всю эту информацию, запустив yum list available 'packagename*' чтобы искать все пакеты, начинающиеся с 'packagename'. Если вам удалось обновить свои пакеты и вы хотите перейти на более раннюю версию, вы можете запустить yum downgrade packagename1 packagename2 . Вам нужно будет включить список всех пакетов, которые вы хотите понизить, поскольку это, вероятно, будет связано с множеством зависимостей.

Если старшая версия не находится в вашем репозитории yum, просто загрузите ее из любого места, где вы нашли старый пакет, и установите его с помощью yum install /path/to/package.rpm , хотя я бы предостерег от установки пакетов из ненадежных источников.