Есть две машины, идентичная версия / арка SLES.
На машине #A установлено программное обеспечение "foo", которое мы можем увидеть с помощью rpm -qa
.
На машине #B должно быть установлено программное обеспечение "foo".
Он foo.rpm
недоступен из любого источника, из Интернета и т. Д.
Вопрос
Поскольку пакет foo.rpm
был установлен на компьютере #A, можем ли мы создать на нем foo.rpm
файл из уже установленных файлов?
Я думаю, что в rpm есть также скрипты pre / post. Так что тогда foo.rpm
( с зависимостями? ) Можно установить.
Ответы:
Это возможно, но очень сложно сделать так, чтобы все было сделано правильно. Если вы в отчаянии, вы можете создать новый RPM-
.spec
файл и создать «поддельный» исходный RPM-файл (SRPM), который затем можно использовать для создания результирующего RPM-файла, используяrpmbuild --rebuild
.Вместо этого я бы продолжил поиск фактических оборотов. Вы не указываете, что в вашем вопросе, но по моему опыту вы можете найти что-нибудь в Интернете, если вы знаете, как его искать. Я нашел древние версии RPM для дистрибутивов Red Hat, которые не использовались более 10 лет, поэтому мне трудно поверить, что нигде нет остатков этого RPM.
Также вы можете часто возвращаться к источнику приложения, содержащемуся в RPM, и использовать его для реконструкции RPM. Часто исходные приложения содержат необходимый
.spec
файл, который используется для перестройки RPM.Наконец, вы можете получить исходный код и
.spec
файл из службы сборки, такой как Koji для дистрибутивов на основе Red Hat. SuSE поддерживает аналогичные сервисы сборки, поэтому вы можете искать их, чтобы получить старые артефакты сборки.Принимая бинарные файлы как есть
Вы можете использовать этот метод, чтобы поднять фактические исполняемые файлы из одной системы и скопировать их для развертывания в другой системе.
машина А
машина B
SLES-версия RPM
Согласно одному из постов в этой теме: Re: Как создать RPM для установленных пакетов
rpm
на SLES, якобы для того, чтобы иметь переключатель--repackage
. Этого не существует в версии Red Hat (в Fedora или CentOS). Но согласно посту вы можете использовать его так:После этого вы найдете свой RPM доступным здесь:
Использование rpmerizor
Rpmerizor - это сторонний инструмент / скрипт, который вы можете установить, который перепакует исходные файлы в соответствующий RPM. Использование этого скрипта доступно здесь, под названием: man-страница rpmerizor .
выдержка
Использование rpmrebuild
Не путайте со средством сборки
rpmbuild
,rpmrebuild
это еще один сторонний скрипт, который вы можете использовать для переупаковки уже установленного RPM.выдержка
пример
Скажем, мы хотим переупаковать openssh-сервер.
Теперь упакуйте это:
Ссылки
источник
Как правило, нет.
С небольшим количеством удачи
rpm -qi
иrpm -q --changelog
обеспечьте понимание, откуда пакет прибыл.Если он был построен в системе, в которой он запущен, у вас все еще может быть файл спецификации, используемый для определения фактического числа оборотов в минуту, если не оба.
Как правило, я не рекомендую копировать файлы / двоичные файлы, но большая часть мета-информации находится в базе данных RPM, и у вас есть настоящие файлы.
rpm -q --list <pkg_name>
показывает все файлы, которые развертывает пакет.rpm -q --scripts <pkg_name>
показать, что любые сценарии, которые выполняются путем установки (или удаления) пакета, могут дать как можно меньше информации о его назначении, чем файлы, которые развертываются.И любые зависимости, которые должны быть установлены, могут быть найдены с
rpm -q --requires <pkg_name>
.источник