Добавьте новые пакеты к серверу репозитория

Если Вы находитесь на CentOS 6, следующая команда должна показать Вам, из какого repo Ваш установленный RPMs прибыл:

rpm -qa | xargs yum info | grep '^From repo' | sort | uniq -c | sort -rn

Если Вы находитесь на CentOS 5 или ниже, существует номер 100%-й категорический способ получить информацию, которую Вы хотите. Вы оказываетесь перед необходимостью проходить в настоящее время устанавливаемый RPMs и пытаться коррелировать их к различному repos, который Вы настроили. Существует несколько способов коррелировать их:

  1. Некоторый repos как repoforge/rpmforge и IUS, но суффикс на их RPMs Вы можете grep с чем-то как rpm -qa release='*rf*'

  2. Коррелируйте поставщика программного блока, buildhost, подпись или поставщика к различному repos. Например, если buildhost имеет 'fedoraproject.org' в нем, он, вероятно, прибыл из EPEL repo. Или если поставщик перечислен как 'Fusion об/мин', затем он, вероятно, прибыл из rpmfusion repo. Каждый repo отличается в терминах, если они на самом деле используют поля и что они вставляют их.

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

    repos ниже. Вы запросили бы все свои rpms и отсортировали бы вывод с чем-то как rpm -qa --queryformat '%{vendor}\t%{name}\n' | sort

    • Поставщик программного блока - % {поставщик программного блока}
    • BuildHost - % {buildhost}
    • Подпись - % {RSAHEADER:pgpsig}
    • Поставщик - % {поставщик}

Эта запись на CentOS wiki могла бы быть полезным.

3
30.05.2014, 02:08
2 ответа

Это "нормальное" поведение до сих пор, что серверы, на которых вы называете "yum update", хранят кэш пакетов, доступных на репо. Когда вы вызываете "yum clean all", этот кэш удаляется, и серверу нужно снова запросить у репо список доступных пакетов - включая ваш только что добавленный пакет.

Что на самом деле происходит

  1. вы добавляете новый пакет в репозиторий на машине A
  2. вы вызываете createrepo - информация о репозитории обновляется
  3. вы перескакиваете на сервер B, где репозиторий на машине A включен
  4. вы вызываете "yum update" на B - последний прогон yum был не так давно, таким образом yum не (!!! ) подключается к A, а только проверяет локальный кэш; так как локальному кэшу, скажем, несколько часов, ваш новый пакет не указан там
  5. сейчас, так как вы расстроены, вы вызываете "yum clean all" на B [вы также можете просто подождать некоторое время]
  6. весь кэш удаляется на B
  7. еще один вызов "yum update" на B заставляет B соединиться с сервером, вытягивая все текущие данные - и таким образом имея возможность увидеть ваш новый пакет
1
27.01.2020, 21:31
[1187393] По мне, так это не похоже на правильное поведение. RPM, которые скачивает YUM, хранятся в своих собственных каталогах под [1187769]/var/cache/yum[1187770]. [12127]Пример[12128]Из системы Fedora 19:[12129]Обратите внимание на все каталоги, по одному на каждый репозиторий: [12130]
0
27.01.2020, 21:31

Теги

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