На Ubuntu, по крайней мере, это - часть профиля пользователя по умолчанию:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Я не думаю, что это - проблема, но так как это перезаписываемо пользователем и могло прозрачно прервать команды, люди могут быть озабочены этим. Очевидно, это - более безопасное, чем ./bin
,как бы то ни было.
в чем может быть разница?
Основная причина разного количества строк заключается в том, что вывод, производимый 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
:
Отсортируйте его так, чтобы пакеты начинались с заглавной буквы появляются перед строчными буквами:
rpm -qa | LC_ALL = C sort
Используйте команду sed
, чтобы удалить номера версий пакетов:
rpm -qa | LC_ALL = C сортировать r | sed 's / - [^ -] * - [^ -] * $ //'> | installed.rpm
Для вывода команды yum
:
Удалите первые две строки заголовка ( Загруженные плагины
и Установленные пакеты
):
Загруженные плагины: etckeeper, fastestmirror
Установленные пакеты
Мы можем использовать sed
для этого:
yum list installed | sed '1,2d;'
Мы также можем использовать 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
] исключает эти пакеты.
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
Я не совсем понимаю, почему списки разные, но я знаю, что rpm -qa > install.txt
- это правильный способ найти все установленные пакеты. Он будет искать yum installed
, а также rpm installed
.
Кроме того, формат вывода rpm -qa
будет лучше работать с командой yum install
, которую вы хотите выполнить.
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/
yum list installed
может создать вывод в две строки, если имя пакета и версия пакета длинные.