Другой список установленных пакетов, о которых сообщает об/мин по сравнению с конфеткой

На Ubuntu, по крайней мере, это - часть профиля пользователя по умолчанию:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Я не думаю, что это - проблема, но так как это перезаписываемо пользователем и могло прозрачно прервать команды, люди могут быть озабочены этим. Очевидно, это - более безопасное, чем ./bin,как бы то ни было.

8
05.07.2018, 11:28
5 ответов

в чем может быть разница?

Основная причина разного количества строк заключается в том, что вывод, производимый yum , является форматируется так, чтобы каждое поле выстраивалось по вертикали (независимо от длины имени пакета и / или номера версии). Это достигается за счет использования двух строк для перечисления таких пакетов и заполнения второй строки пробелами для правильного выравнивания полей.Следующий вывод (из окна CentOS 6) показывает, что две строки используются для перечисления пакета device-mapper-persistent-data.x86_64 :

device-mapper-libs.x86_64         1.02.95-3.el6_7.4    @clearos-verified-updates
device-mapper-persistent-data.x86_64
                                  0.3.2-1.el6          @clearos
dhclient.x86_64                   12:4.1.1-49.P1.v6    @clearos-verified-updates

Однако это не только , и это можно увидеть, проанализировав вывод двух команд перед их сравнением:

Для вывода команды rpm :

  1. Отсортируйте его так, чтобы пакеты начинались с заглавной буквы появляются перед строчными буквами:

     rpm -qa | LC_ALL = C sort 
     
  2. Используйте команду sed , чтобы удалить номера версий пакетов:

     rpm -qa | LC_ALL = C сортировать r | sed 's / - [^ -] * - [^ -] * $ //'> | installed.rpm 
     

Для вывода команды yum :

  1. Удалите первые две строки заголовка ( Загруженные плагины и Установленные пакеты ):

     Загруженные плагины: etckeeper, fastestmirror 
    Установленные пакеты 
     

    Мы можем использовать sed для этого:

      yum list installed | sed '1,2d;' 
     
  2. Мы также можем использовать sed , чтобы удалить все строки, которые являются продолжением списка пакетов (эти строки начинаются с некоторого количества пробелов, чтобы все версии пакета совпадают).

     установлен список конфет | sed '1,2d; / ^ /d;s/\..*//'> | installed.yum 
     

Теперь мы можем использовать команду diff для сравнения вывода двух файлов. Вот результаты из окна CentOS 6:

# diff installed.{rpm,yum}
239,243d238
< gpg-pubkey
< gpg-pubkey
< gpg-pubkey
< gpg-pubkey
< gpg-pubkey

Заключение

Это показывает, что rpm -qa также включает списки пакетов для открытых ключей, которым доверяют подписывать пакеты, в то время как yum ] исключает эти пакеты.

4
27.01.2020, 20:11

yum list установлен имеет 930 строк, в то время как rpm -qa имеет 895 строк, в чем может быть разница ?

Скорее всего это просто форматирование различий. yum list сделает кучу умной обертки под размер вашего терминала.

Скорее всего, вы захотите использовать:

# Run this on the master server
yum-debug-dump

# Run this on the new server, with the input from the above.
yum-debug-restore
6
27.01.2020, 20:11

Я не совсем понимаю, почему списки разные, но я знаю, что rpm -qa > install.txt - это правильный способ найти все установленные пакеты. Он будет искать yum installed, а также rpm installed.

Кроме того, формат вывода rpm -qa будет лучше работать с командой yum install, которую вы хотите выполнить.

.
1
27.01.2020, 20:11

yum список установленных дает мне выход, как показано ниже.

pam_krb5.i386                        2.2.14-22.el5                     installed

Теперь, rpm -qa говорит следующее.

pam_krb5-2.2.14-22.el5

Обе команды дают мне то же количество строк, что и вывод. Я бы выбрал список rpm -qa.

Также из ответа этот я вижу приведенную ниже информацию.

есть программа, "rpm", которая манипулирует конкретно пакеты, которыми его просят манипулировать, и есть "нямка", которая представляет собой более интеллектуальная система управления, способная находить зависимости и скачайте файлы .rpm, даже если их нет в системе.

Так что разница может быть yum разрешает зависимости, но rpm установил все зависимости и поэтому предоставляет более полный список.

Я вижу фактическую разницу между yum и rpm, как показано ниже.

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

yum способен отследить зависимости пакета и установить их перед установкой пакета, который пользователь хотел установить. Это упрощает весь процесс, так как вам нужно знать только имя пакета, который вы хотите установить, и не беспокоиться о том, были ли установлены требуемые пакеты. Пакеты, которые не могут быть найдены в системе, ищут в репозиториях, доступных в системе.

Ссылки

http://www.differencebetween.net/technology/difference-between-yum-and-rpm/

0
27.01.2020, 20:11

yum list installed может создать вывод в две строки, если имя пакета и версия пакета длинные.

0
27.01.2020, 20:11

Теги

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