Привет.Хочу содержать оффлайн репу, но быть уверенным, что в репе содержится все что нужно. Есть ли какой-то способ проверить, что в rpm содержатся все нужные нужных версий?
> Привет.
> Хочу содержать оффлайн репу, но быть уверенным, что в репе содержится все
> что нужно. Есть ли какой-то способ проверить, что в rpm содержатся
> все нужные нужных версий?какой то поток сознания
> какой то поток сознанияНет там никакого сознания.
>быть уверенным, что в репе содержится все что нужно.
>что в rpm содержатся все нужные нужных версий?Поскольку Вы не написали, для _чего_ нужно/нужные, я предположу.
Я предположу, что Вы решаете ту же проблеиму, которую я решаю регулярно, создавая локальные репозитарии.
Я предположу, что "нужно", чтобы указанные покет из репы _ставился_, и все "/нужные" ему зависимости, отсуствующие в основном репо дистрибутива были доступны из этого же локального репо.
Решение проблемы устанавливаемости просто: создать реп, положить в него нужный пакет, _пробовать_ установить его в систему, если будут недостающие зависимости -- доложить и их в репо, прополоскать-повторить, поке тот пакет не установится.
В общих чертах всё. Делаю это и на rhel6 c rpm-ами, и на домашнем Debian-е.
Нюансы:
* "Чужой", из дркгого дистрибутива или другой версии дистрибутива, glibc не надо ставить в систему _никогда_.
* Аналогично - с бинарниками библиотек, имеющих много засисимостей в системе, можно, но есть большая вероятность налететь на несовместимость. Библиотеки - смена API/ABI. Версия gcc при сборке также, например.* Другой экстрим спектра: пакеты "без зависимостей". Скажем пакеты -doc из какого-нибудь unstable поставятся и в oldstble скорее всего -- если там промто пачка .html и .pdf распаковывается (и исключения могут быть - например, debian-овские пакеты могут требовать каких-нибудь -support). Аналогтчно, "простой" shell-скрипт в пакете скорее всего поставится - bash или /bin/sh может быть даже не указан в зависимостях (как какой-нибудь base или requiered).
А, да... После того как "неродной" пакет поставился надо ещё проверить, что он работает. Процедура примерно та же. Проверить - чинить -повторить, если не. Возможно придётся вернуться вышк к уровню создания репо. Напрмер, принять решение, что анслабде пакет хоть и ставится, но не работает: слудующий вариант пересобирать его из исзодников в окружении целевого дистрибутива -- бэкпортировать. И тут сова масса вариантов, потому что для сборки нужны зваисимости сборки, которые могут поставиться из анстъбла или их сами нужно бэкпортировать и т.д., и т.д.
> Поскольку Вы не написали, для _чего_ нужно/нужные, я предположу.
> Я предположу, что Вы решаете ту же проблеиму, которую я решаю регулярно,
> создавая локальные репозитарии.
> Я предположу, что "нужно", чтобы указанные покет из репы _ставился_, и все
> "/нужные" ему зависимости, отсуствующие в основном репо дистрибутива были доступны из
> этого же локального репо.Справедливое замечание. Действительно имелось ввиду, что все пакетики устанавливаются корректно. Предположение верное. Спасибо :)
> Решение проблемы устанавливаемости просто: создать реп, положить в него нужный пакет, _пробовать_
> установить его в систему, если будут недостающие зависимости -- доложить и
> их в репо, прополоскать-повторить, поке тот пакет не установится.
> В общих чертах всё. Делаю это и на rhel6 c rpm-ами, и
> на домашнем Debian-е.На данный момент примерно так и проверяю: скрипт создаёт чрут, ставит пакеты из списка и смотрит коды выхода. Я подумал, что наверняка кто-то разбирал уже подобный вопрос и есть уже есть что-то более красивое. Пробовал repoclosure, но не очень понял его. Вы очень хорошо описали ньюнсы. Спасибо за ответ.