Как установить точно такие же пакеты на другой компьютер в openSUSE?


8

Другим компьютером может быть также виртуальная машина. Я не могу сделать клонирование диска из-за аппаратных различий и настроек.

У меня есть компьютер A, установленный и работающий, у меня также есть компьютер B. Я установлю ту же ОС на B, чтобы получить ту же базовую систему.

Затем вручную добавлю те же репозитории, что и на A.

Но последний этап за мной - как установить те же пакеты, что и на A? Обратите внимание, что версия должна совпадать, а не только имя пакета.

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

По сути, я должен получить совершенно другую конфигурацию оборудования, чистые настройки (без старых паролей и т. Д.), Но идентичный выбор программного обеспечения.

Вопрос

Как это сделать?

Фон

Пакеты (для каждой версии) доступны, но не самые последние. Смысл этого в том, чтобы сделать «копию» работающей системы, обновить пакеты на компьютере B (скопировать), проверить, работает ли он, если да, затем обновить A. С каждой новой версией ОС я сталкиваюсь с множеством ошибок регрессии, и Я должен проверить это более методично, чем тест-лайв и паника.

openSUSE 11.4


обновлены ли пакеты компьютера А до последних из репозиториев? (Я спрашиваю об этом, потому что это может сделать ответ короче и ваша жизнь легче).
Ханан Н.

@ Ханан Н., нет, мне было бы легче знать, поэтому я высказал мнение о точных версиях.
Гринольдман

Ответы:


3

Похоже, вы должны создать свой собственный репозиторий.

Поместите ваши RPM в нужной версии в этот репозиторий. Затем активируйте эти репозитории на обеих машинах (как источник установки) и установите пакеты.


Спасибо, я не помечаю это как решение (пока), потому что, возможно, кто-то придумает другой подход - например, создаст список (rpm -qa) и установит эти самые пакеты в данной версии на другую машину. Однако ваш подход лучше масштабируется (одна загрузка на пакет).
Гринольдман

2

Поскольку OpenSuse использует RPM, вы можете использовать rpmутилиту.

rpm -qaотобразит список всех установленных в вашей системе пакетов (очень длинный список). Список включает название пакета, номер версии и архитектуру. Вы можете написать список в файл и дать zypper файл в новой системе.

Скорее всего, будет несколько пакетов, которые уже установлены по умолчанию, но zypper пропустит их и установит те, которые вам нужны.


Ну, вы только что скопировали мой комментарий, так что мы согласны в общих чертах, но дьявол кроется в деталях - как вы заставляете zypper устанавливать не пакет P, а P-1.23, т.е. с данной версией? Потому что это очень важно (по умолчанию вывод rpm НЕ совместим с форматом ввода zypper).
Гринольдман

Для записи я опубликовал это до того, как вы опубликовали свой комментарий или опубликовали его, пока я писал свой ответ. Что касается Zypper, да, вы можете использовать вывод в rpm -qaкачестве ввода для zypper. Он прекрасно понимает формат упаковки. Я не проверял, соответствует ли он номеру версии, но это сильно зависит от того, содержат ли репозитории более ранние версии. Если репозитории этого не делают, то с этим ничего не поделаешь.
n0pe

Вы противоречите себе: «Я не проверял, соответствует ли он номеру версии», но «Он прекрасно понимает формат пакета». Поэтому я уточняю - он не поддерживает вывод оборотов. Чтобы указать версию, вы должны добавить квантификатор, и это сложная часть, потому что наименование пакета является просто соглашением, оно не вызывается никаким валидатором. См .: en.opensuse.org/SDB:Zypper_usage_11.3#Selecting_packages
greenoldman

1

Первый список всех установленных пакетов и их версии в машине вы пытаетесь создать «клон»: rpm -qa > /tmp/rpm.list.txt.

Затем скопируйте в /tmp/rpm.list.txtсистему, которую вы пытаетесь превратить в «клон» другой системы, и запустите zypper и передайте ему список пакетов, который вы только что создали: zypper install $(cat /tmp/rpm.list.txt)(или куда бы вы ни поместили файл, содержащий список пакетов из исходной системы ).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.