LINUX.ORG.RU

RPM 4.12

 ,


1

2

Состоялся очередной выпуск пакетного менеджера RPM.

Основные изменения:

  • Пакеты теперь могут содержать файлы, размер которых превышает 4Гб (прежние версии RPM не смогут обрабатывать подобные пакеты, поэтому потребуется RPM не ниже версии 4.12, для этого добавлена специальная зависимость LargeFiles);
  • Добавлены теги для указания слабых зависимостей (Recommends, Suggests, Supplements и Enhances);
  • Ускорен процесс создания и подписывания пакетов;
  • Новый программный интерфейс для плагинов (пока лишь для внутреннего пользования);
  • Добавлены плагины: systemd_inhibit, selinux, syslog;
  • Новый API для доступа к содержимому пакетов;
  • Опции --nopre и --nopost переименованы в --nopretrans и --noposttrans;
  • Добавлена опция --noplugins, отключающая поддержку плагинов;
  • Возвращена поддержка архитектуры m68k, добавлено определение Sparc Niagara, ARM v6 и v7 (на предмет наличия встроенного FPU);
  • Новый режим работы --reinstall, при котором учитывается изменение набора устанавливаемых файлов (к примеру, при переустановке пакета с указанием --excludedocs, будет удалена установленная ранее документация);
  • Утилита rpmdb обзавелась опциями -exportdb и --importdb;
  • Добавлена утилита rpm2archive, преобразовывающая rpm в tar;
  • Добавлена возможность автоматического создания слабых зависимостей;
  • Удалена поддержка «коллекций» (она была экспериментальной).

Полный список изменений

>>> Подробности

anonymous

Проверено: JB ()

Зачем, когда есть deb? Перешли бы на формат deb и не выпендривались.

Quasar ★★★★★ ()

Добавлена утилита rpm2archive, преобразовывающая rpm в tar;

наоборот бы ещё)

xfilx ★★ ()
Ответ на: комментарий от mix_mix

А куда денется формат пакетов всех ведущих коммерческих дистрибутивов?

dinn ★★★★★ ()

Добавлены теги для указания слабых зависимостей (Recommends, Suggests, Supplements и Enhances);

Дожили :(

dexpl ★★★★★ ()

Утилита rpmdb обзавелась опциями -exportdb и --importdb;

Вот это давно пора было сделать, а то приходилось возиться со всякими rpm2cpio. Ну а лучше бы сделали простой tar, как у deb.

BlackRaven86 ()
Ответ на: комментарий от dexpl

Дожили :(

В некоторых системах, например в Мандриве уже давно было. Я правда практического применения особо не вижу :)

BlackRaven86 ()
Ответ на: комментарий от BlackRaven86

Я правда практического применения особо не вижу :)

Изначально это из SUSE. Вообще как минимум рекомендуемыми делают переводы, документацию, какие-то необязательные зависимости. Или например зависимости из других репозиториев.

dinn ★★★★★ ()
Ответ на: комментарий от BlackRaven86

Я правда практического применения особо не вижу :)

Зато я увидел в декабре на Дебиане 7.0.не_помню: sudo apt-get install deluge && deluge, он мне нарисовал окно интерфейса, но торренты качать отказался в упор — оказывается, rb_libtorrent была мягкой зависимостью. Теперь, чего доброго, и у нас будет то же самое.

dexpl ★★★★★ ()
Ответ на: комментарий от dexpl

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

BlackRaven86 ()
Ответ на: комментарий от dinn

Тут еще важно, чтобы был какой-то удобный интерфейс выбора и возможность понять, что они дают. А если можно будет или не ставить ничего или все рекомендуемые пакеты, то оно же кучу мусора понаставит :) В дебе же apt-get только так и умеет или я что-то путаю?

BlackRaven86 ()
Ответ на: комментарий от BlackRaven86

В дебе гуевый софт не плохой. Да и aptitude - весчь. Вот в rpm аналогов нормальных нет - это плоха. Мне иногда такие инструменты были бы удобнее, но вот на деб я переехжать не собираюсь.

anonymous ()
Ответ на: комментарий от BlackRaven86

Похоже, что косяк того, кто пакет собирал.

Согласен. И в rpm всякое бывает, да, но это не значит, что нужно расширять пространство возможных ошибок, я считаю.

dexpl ★★★★★ ()
Ответ на: комментарий от Stil

Например, в нем есть файловые зависимости.

Reset ★★★★★ ()
Ответ на: комментарий от Stil

тем, что в отличии от деба пакет для fedora 13 можно установить и в fedora 20, в отличии от деба, где такое не прокатит.

erzent ☆☆ ()
Ответ на: комментарий от erzent

тем, что в отличии от деба пакет для fedora 13 можно установить и в fedora 20, в отличии от деба, где такое не прокатит.

noarch? возможно

leave ★★★★★ ()
Последнее исправление: leave (всего исправлений: 1)
Ответ на: комментарий от Reset

Например, в нем есть файловые зависимости.

В нем есть _только_ файловые зависимости, ты хотел сказать?

dexpl ★★★★★ ()
Ответ на: комментарий от anonymous

В дебе гуевый софт не плохой. Да и aptitude - весчь. Вот в rpm аналогов нормальных нет - это плоха.

Как же это нет, когда есть? drakrpm и yast очень даже нормальные. Правда последний могли заменить на apper, что не очень хорошо.

BlackRaven86 ()
Ответ на: комментарий от Reset

Например, в нем есть файловые зависимости.

Ок, а как часто и, главное, зачем тебе нужна была эта фича?

Stil ★★★★★ ()
Ответ на: комментарий от BlackRaven86

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

Плагин — может быть, если он подгружается приложением самостоятельно через dlopen.

Что же касается библиотек, с которыми бинари слинкованы по-честному, то чтобы такой библиотеки не было в зависимостях нужно специально постараться. Во-первых, в RPM есть зависимости от библиотек, а во-вторых, по-умолчанию (да, можно отключить) при сборке пакета такие зависимости прописываются автоматически.

А ещё, благодаря файловым зависимостям, так же по-умолчанию при сборке пакета парсятся скрипты и в зависимости добавляются необходимые интерпретаторы из shebang'ов.

Для некоторых динамических языков (для perl точно) аналогично добавляются зависимости от модулей.

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

На этом фоне язвительные замечания о мягких зависимостях приверженцев deb выглядят довольно глупо, тем более, что в (open)SUSE/SLES и Mandrake/Mandriva мягкие зависимости существуют уже очень давно.

MumiyTroll ★★ ()
Ответ на: комментарий от BlackRaven86

Я пользуюсь федорой, потому вышеназванные мимо.

anonymous ()

Если серьёзно, то в чём состоят приниципиальные различия между rpm и deb?

kukuruku ()
Ответ на: комментарий от Stil

Например, в нем есть файловые зависимости.

Ок, а как часто и, главное, зачем тебе нужна была эта фича?

# rpm -qR squid
/bin/bash  
/bin/ksh  
/bin/sh  
/bin/sh  
/usr/bin/env  
/usr/bin/perl  
…

P.S. Squid просто первый пришёл на ум с его хелперами на различных языках.

MumiyTroll ★★ ()
Последнее исправление: MumiyTroll (всего исправлений: 1)
Ответ на: комментарий от Stil

Например, с помощью них можно корректно выставлять зависимости к библиотекам без необходимости жестких именований пакетов. Например, в случае с дебом при смене ABI ты _обязан_ переименовать пакет с библиотекой.

Reset ★★★★★ ()
Ответ на: комментарий от anonymous

Я пользуюсь федорой, потому вышеназванные мимо.

С этого и надо было начинать :) pirut был неочень, текущий установщик тоже не впечатлил. Но rpm - это не только федора.

BlackRaven86 ()
Ответ на: комментарий от erzent

херню же пишешь

тем, что в отличии от деба пакет для fedora 13 можно установить и в fedora 20, в отличии от деба, где такое не прокатит.

В дебиане есть версии стандартов, и, если есть желание, можно собирать свежие пакеты под древнее говно мамонта, другое дело что желания ни у кого не возникает. Также я могу залочить любой .rpm сложнее helloworld'а на один конкретный дистрибутив.

И в случае .rpm, и в случае .deb кроссплатформенность зависит по большей части от скиллов/предпочтений/ТЗ пакетирующего.

Ты, кстати, хоть что-нибудь когда-нибудь пакетировал?

Stil ★★★★★ ()
Ответ на: комментарий от MumiyTroll

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

Есть.

Stil ★★★★★ ()
Ответ на: херню же пишешь от Stil

Дело даже не в этом. В дебе зависимости генерируются под пакеты, а не под ABI, поэтому, собрав пакет на системе с libwtf_1.0-1, ты не сможешь его установить на систему с libwtf_1.0-0.

Reset ★★★★★ ()
Ответ на: комментарий от Reset

В дебе зависимости генерируются под пакеты, а не под ABI, поэтому, собрав пакет на системе с libwtf_1.0-1, ты не сможешь его установить на систему с libwtf_1.0-0

...если специально пропишешь зависимость на libwtf_1.0-0

tailgunner ★★★★★ ()
Ответ на: комментарий от dexpl

Добавлены теги для указания слабых зависимостей (Recommends, Suggests, Supplements и Enhances);

Дожили :(

Мягкие зависимости в RPM есть уже лет 10-12.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Специально ничего делать не надо, всё за тебя сделает dh_makeshlibs.

Reset ★★★★★ ()
Ответ на: комментарий от dexpl

В нем есть _только_ файловые зависимости, ты хотел сказать?

Это такой сарказм?

В RPM есть зависимости от

  • пакетов
  • библиотек, например libssl.so.10()(64bit)
  • файлов, например /usr/bin/perl
  • модулей некоторых динамических языков, например perl(DBI)
  • конфигураций pkg-config (полезнее для сборки — BuildRequires, но допускаю что и готовому пакету может пригодиться), например pkgconfig(libusb-1.0) >= 1.0.13
MumiyTroll ★★ ()
Ответ на: комментарий от erzent

да в rpm сейчас уже года 4 70% пакетов noarch.

Не поленился подсчитать на RFRemix 20 с репозиториями *-testing, fedora-HandBrake, google64, home_ahajda_winexe, и yandex (помимо стандартных):

└► repoquery -qa --qf '%{name} %{arch}' | awk 'BEGIN { noarch = 0; yesarch = 0 } ; $2 == "noarch" { noarch++ } ; $2 == "x86_64" { yesarch++ } ; END { printf("noarch: %d\nyesarch: %d\n", noarch, yesarch) }'
noarch: 19010
yesarch: 16891

noarch'а, конечно, больше, но не 70 процентов. i686 не учтены сознательно — чисто 32-битные skype, wine и acroread статистически незначимы по сравнению с библиотеками, собранными для обеих архитектур. Если команду repoquery заменить на rpm, подсчитав тем самым количество локально установленных пакетов, получится

noarch: 416
yesarch: 1375

dexpl ★★★★★ ()
Ответ на: комментарий от MumiyTroll

В RPM есть зависимости от <…>

Спасибо, я в курсе :) Показалось, что Reset говорит про deb.

dexpl ★★★★★ ()
Ответ на: комментарий от kukuruku

В том что научиться писать rpm-спеки можно за пять минут, а в форматах deb-пакетов и всевозможных утилит для упрощения работы с ними разобраться нельзя.

alpha ★★★★★ ()
Ответ на: комментарий от Reset

...если специально пропишешь зависимость на libwtf_1.0-0

Специально ничего делать не надо, всё за тебя сделает dh_makeshlibs.

Проверить сейчас не на чем, но ман имеет сказать следующее:

           By default, the shlibs file generated by this program does not make
           packages depend on any particular version of the package containing
           the shared library.
tailgunner ★★★★★ ()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от dexpl

и давно в дебе появились файловые зависимости?

Reset ★★★★★ ()
Ответ на: херню же пишешь от Stil

я из-за этого на gentoo и пересел, в оверлеях есть всё что мне нужно дома.

erzent ☆☆ ()
Ответ на: комментарий от Stil

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

Есть.

Покажите. Правда, ни разу не видел.

MumiyTroll ★★ ()
Ответ на: комментарий от tailgunner

В дебах вообще беда с манами. Например, я недавно узнал, что опция --status в start-stop-daemon не работает и вместо неё надо использовать -K --signal 0, хотя в мане говорится обратное.

Reset ★★★★★ ()
Ответ на: комментарий от alpha

за 5 минут ты переборщила, я знаю 60 программистов php, которые еле с yum разобрались.

erzent ☆☆ ()
Ответ на: комментарий от Reset

и давно в дебе появились файловые зависимости?

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

dexpl ★★★★★ ()
Ответ на: комментарий от erzent

за 5 минут ты переборщила

Скорее, недоборщила — man rpmdev-newspec.

программистов php

Ты сам все понимаешь, правда?

dexpl ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.