Я хочу, чтобы сервер B имел те же настройки, что и сервер A. Сервер A и B имеют одинаковую архитектуру и одно и то же оборудование.
Мой план состоит в том, чтобы иметь список всех установленных вещей на сервере A и установить его, используя список на сервере B, например:
yum -y install $(cat installed.txt)
На сервере А лучше использовать:
rpm -qa > installed.txt
или:
yum list installed > installed.txt
Списки кажутся разными, и я понятия не имею, почему.
yum list installed
имеет 930 строк, в то время как rpm -qa
имеет 895 строк, в чем может быть разница?
diff
редактировали результаты (возможно после сортировки)?rpm
списком, поскольку у него есть список, который можно использовать вyum
команде вашего сервера b .Ответы:
Основная причина различного количества строк заключается в том, что выводимые данные
yum
форматируются таким образом, чтобы каждое поле располагалось вертикально (независимо от длины имени пакета и / или номера версии). Это делается с помощью двух строк для перечисления таких пакетов и заполнения второй строки пробелами для правильного выравнивания полей. Следующий вывод (из окна CentOS 6) показывает, что для выводаdevice-mapper-persistent-data.x86_64
пакета используются две строки :Однако это не единственная причина, и это можно увидеть, массируя выходные данные двух команд перед их сравнением:
Для вывода
rpm
команды:Сортируйте так, чтобы пакеты, начинающиеся с заглавной буквы, появлялись раньше, чем пакеты с нижним регистром:
Используйте
sed
команду для удаления номеров версий пакета:Для вывода
yum
команды:Удалите первые две строки заголовка (
Loaded plugins
иInstalled Packages
):Мы можем использовать
sed
для этого:Мы также можем использовать
sed
для удаления всех строк, которые являются продолжением списка пакетов (эти строки начинаются с нескольких пробелов, так что все версии пакетов выстраиваются в линию).Теперь мы можем использовать
diff
команду для сравнения выходных данных двух файлов. Вот результаты из коробки CentOS 6:Вывод
Это показывает, что
rpm -qa
также включает в себя списки пакетов для открытых ключей, которым доверяют подписывать пакеты, в то время какyum
команда пропускает эти пакеты.источник
Это скорее всего только различия форматирования. yum list сделает кучу умных обёрток к размеру вашего терминала.
Что вы, вероятно, хотите сделать, это использовать:
источник
Я не совсем уверен, почему списки отличаются, но я знаю, что
rpm -qa > installed.txt
это правильный способ найти все установленные пакеты. Это будет выглядетьyum installed
так же, как иrpm installed
.Кроме того, формат
rpm -qa
вывода будет лучше работать сyum install
командой, которую вы хотите выполнить.источник
yum list installed
дает мне вывод, как показано ниже.Теперь,
rpm -qa
есть ниже, чтобы сказать.Обе команды дают мне столько же строк, сколько выводятся. Я бы пошел со
rpm -qa
списком.Кроме того, из этого ответа я вижу ниже информацию.
Таким образом, разница может быть
yum
разрешена зависимости, ноrpm
установил все зависимости, и поэтому он предоставляет более полный список.Я вижу фактическую разницу между
yum
иrpm
как ниже.Наиболее заметной проблемой
rpm
является состояние, которое большинство людей называют адом зависимости . Эта проблема возникает с пакетами, которые зависят от множества других пакетов, некоторые из этих пакетов также зависят от множества других пакетов. Общеизвестно, что для корректной работы программы необходимо установить все зависимости.rpm
не может автоматически сделать это для вас. Он может только проверить, установлены ли все необходимые пакеты, до установки необходимого пакета. Отслеживание и установка каждой зависимости вручную - основная задача для большинства людей, которые изначально хотят установить только один пакет.yum
способен отслеживать зависимости пакета и устанавливать их до установки пакета, который пользователь хотел установить. Это упрощает весь процесс, поскольку вам нужно знать только имя пакета, который вы хотите установить, и не беспокоиться о том, установлены ли требуемые пакеты или нет. Пакеты, которые не могут быть найдены в системе, ищутся в репозиториях, доступных для системы.Ссылки
http://www.differencebetween.net/technology/difference-between-yum-and-rpm/
источник
Yum
обрабатывает зависимости и выбирает пакеты для их заполнения.Yum
эффективно выполняет ту же команду, чтоrpm
и включает в себя все пакеты, необходимые для сопоставления зависимостей.yum
это находка для управления зависимостями пакетов, но это не имеет значения, когда просто перечисляет пакеты, установленные в системе. Посмотрите Джеймса и мой ответ на причину разницы.yum list installed
Можно создать двухстрочный вывод, если имя пакета и версия пакета длинные.источник