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 ()
Ответ на: комментарий от alpha

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

Толсто же :) rpm наркоманский формат, а deb примитивный и за полчаса осваивается

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

deb примитивный

То-то и оно.

и за полчаса осваивается

Ссылками на литературу класса «Maximum RPM», только про deb, не поделишься?

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

У deb нет формата. Это набор несистематизированных костылей на все случаи жизни. На то есть конечно объективные исторические и идеологические причины, но сути дела это не меняет. Одно пакетирование бд чего стоит.

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

Толсто же :) rpm наркоманский формат, а deb примитивный и за полчаса осваивается

Вот это действительно толсто :) Собирал и то и другое, в deb вникать дольше. У rpm один спек и одна утилита. У deb 4 файлов надо написать минимум, плюс у каждого свой формат и пачка скриптов, чтобы со всем этим делом работать. А еще емнип при смене Standards-Version какие-то ньюансы были.

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

deb примитивный и за полчаса осваивается

дохренища утилит для создания и конфигов внутри? apt-get source, apt-get build-dep, debuild, lintian, licensecheck, piuparts лол. не говоря уже о dpkg, apt-get, aptitude я конечно уважаю дебиан потому что сидел 3 года на нем, но никогда никому не врал что пакетирование в нем охренеть какое простое и интуитивное. в сравнении с этой кучей говноутилит rpm просто суперпуперкрутоипросто. а чекинг выглядит вот так:

sudo apt-get install lintian lintian4python libcrypt-ssleay-perl libwww-perl cppcheck devscripts pyflakes libperl-critic-perl desktop-file-utils mp3check checkmp3 mp3val fontforge-nox freetype2-demos gettext-lint jlint pngcheck jpeginfo vorbis-tools oggz-tools lacheck fdupes python-magic libxml2-utils similarity-tester moreutils pep8 blhc libconfig-model-perl libconfig-model-dpkg-perl bfbtester elfutils hlint adequate i18nspector epubcheck iwyu python-jpylyzer libb-lint-perl codespell duck
export BUILDPATH=/home/foo/path/to/foo-1.2.3
cd $BUILDPATH
lintian ../*.changes
lintian4py ../*.changes
cme check dpkg
cme check dpkg-control
cme check dpkg-copyright
debuild && debuild && debuild
uscan --verbose
licensecheck --check=. --recursive --copyright .
grep -i warn ../*.build
blhc --all ../*.build
cppcheck -j8 --quiet -f .
jlint.sh 2>&1 | fgrep -v 'Verification completed: '
pyflakes .
pep8 --ignore W191 .
perlcritic -1 .
suspicious-source
bfbtester -x 10 -a debian/*/bin debian/*/usr/bin debian/*/sbin debian/*/usr/sbin debian/*/usr/games
hlint .
codespell --quiet-level=3
find -iname \*.sh -print0 | xargs --no-run-if-empty --null -n1 sh -n
find -iname \*.sh -print0 | xargs --no-run-if-empty --null -n1 checkbashisms
find \( -iname \*.pm -o -iname \*.pl \) -print0 | xargs --no-run-if-empty --null -n1 perl -wc
find \( -iname \*.pm -o -iname \*.pl \) -print0 | xargs --no-run-if-empty --null -n1 perl -MO=Lint 2>&1 | grep -v ' syntax OK$'
find -iname \*.php\* -print0 | xargs --no-run-if-empty --null -n1 php -l -f
find \( -iname \*.c -o -iname \*.cxx -o -iname \*.cpp -o -iname \*.cc -o -iname \*.h -o -iname \*.hpp -o -iname \*.hh -o -iname \*.hxx \) -print0 | xargs --no-run-if-empty --null -n1 include-what-you-use
find -iname \*.desktop -print0 | xargs --no-run-if-empty --null -n1 desktop-file-validate
find -iname \*.mp3 -print0 | xargs --no-run-if-empty --null mp3check --error-check --anomaly-check
find -iname \*.mp3 -print0 | xargs --no-run-if-empty --null checkmp3
find -iname \*.mp3 -print0 | xargs --no-run-if-empty --null mp3val
find \( -iname \*.ttf -o -iname \*.otf -o -iname \*.sfd -o -iname \*.pfa -o -iname \*.pfb -o -iname \*.bdf -o -iname \*.pk -o -iname \*.ttc -o -iname \*.pcf \) -print0 | xargs --null --no-run-if-empty --max-args=1 fontlint
find \( -iname \*.ttf -o -iname \*.otf \) -print0 | xargs --no-run-if-empty --null -n1 ftvalid
find \( -name \*.po -o -name \*.pot \) -print0 | xargs --max-args=1 --no-run-if-empty --null msgfmt --check --check-compatibility --check-accelerators
find \( -name \*.po -o -name \*.pot \) -print0 | xargs --no-run-if-empty --null POFileChecker
find \( -name \*.po -o -name \*.pot \) -print0 | xargs --no-run-if-empty --null POFileSpell
find \( -name \*.mo -o -name \*.po -o -name \*.pot \) -print0 | xargs --no-run-if-empty --null i18nspector
find -iname *.png -print0 | xargs --no-run-if-empty --null pngcheck -q
find \( -iname \*.jpg -o -iname \*.jpeg \) -print0 | xargs --no-run-if-empty --null jpeginfo --check --quiet | fgrep -v "[OK]"
find \( -iname \*.jp2 -o -iname \*.j2k -o -iname \*.jpf -o -iname \*.jpx -o -iname \*.jpm -o -iname \*.mj2 \) | xargs jpylyzer --wrapper | xmllint --format - | egrep 'fileName|isValid' | tr -d \\n | sed 's_</isValidJP2>_&\n_g;s_ *<fileName>__g;s_</fileName> *__g;s_</\?isValidJP2>_ _g;s_False_is an invalid JPEG2000 file_g' | sed '/True *$/d'
find \( -iname \*.ogg -o -iname \*.oga -o -iname \*.ogv \) -print0 | xargs --no-run-if-empty --null ogginfo -q | grep -v 'Processing file ' | cat -s
find \( -iname \*.ogg -o -iname \*.oga -o -iname \*.ogv \) -print0 | xargs --no-run-if-empty --null oggz-validate
find -iname \*.xml -print0 | xargs --no-run-if-empty --null xmllint --noout
find -iname \*.tex -print0 | xargs --no-run-if-empty --null lacheck
find -iname \*.epub -print0 | xargs --no-run-if-empty --null -n1 epubcheck -quiet | egrep -v '^(Check finished with warnings or errors| *)$'
find -iname *.py -print0 | xargs --no-run-if-empty --null grep 'environ *\[.HOME.\]'
find -iname \*paypal\*.png -o -iname \*paypal\*.gif -o -iname \*flattr\*.png -iname \*flattr\*.gif
find \( -iname \*.png -o -iname \*.gif -o -iname \*.jpg -o -iname \*.jpeg \) -print0 | xargs --no-run-if-empty --null grep -iE 'inkscape|gimp'
find ! \( -iname \*.icns -o -iname \*.bmp -o -iname \*.ico -o -iname \*.png -o -iname \*.gif -o -iname \*.jpg -o -iname \*.jpeg -o -iname \*.mo -o -iname \*.gz -o -iname \*.zip -o -iname \*.pdf -o -iname \*.bz2 -o -iname \*.tar -o -iname \*.odt -o -iname \*.docx -o -iname \*.torrent -o -iname \*.pyc -o -iname \*.pyo -o -iname \*.o -o -iname \*.wav -o -iname \*.ttf -o -iname \*.ogg -o -iname \*.oga -o -iname \*.ogv -o -iname \*.xcf -o -iname \*.so -o -iname \*.so.\* -o -iname \*.gmo -o -iname \*.debug -o -iname \*.tga \) -print0 | xargs --no-run-if-empty --null isutf8
find ! -type d | xargs file  | grep ': *ELF ' | sed 's/: +*.*//' | xargs --no-run-if-empty eu-elflint --quiet --gnu-ld --strict
find -type f -iname \*.gz -print0 | xargs --no-run-if-empty --null gzip --test
find -type f -iname \*.bz2 -print0 | xargs --no-run-if-empty --null bzip2 --test
find -type f -iname \*.xz -print0 | xargs --no-run-if-empty --null xz --test
find \( -type f -iname \*.zip -o -iname \*.jar -o -iname \*.pk3 -o -iname \*.wz \) -print0 | xargs --no-run-if-empty --null unzip -t
find -type f -iname \*.lzma -print0 | xargs --no-run-if-empty --null lzma --test
find -type f -iname \*.lzo -print0 | xargs --no-run-if-empty --null lzop --test
find -type f -iname \*.lz -print0 | xargs --no-run-if-empty --null lzip --test
find -type f -iname \*.uu -print0 | xargs --no-run-if-empty --null uudecode -o /dev/null
grep -r '/tmp/' .
grep -r '/home' .
grep -r '/srv' .
grep -r '/opt' .
grep -r 'PATH' .
grep -r 'PERLLIB' .
grep -r 'x86_64-linux-gnu' .
grep -r 'site-packages' .
grep -rC4 'system *(' .
grep -rC4 'popen *(' .
grep -ri 'fixme' .
grep -ri 'todo' .
grep -ri 'hack' .
fdupes -r .
find -type f | sim_text -ipTt 75 | tac | column -t
apt-get install $(sed -n 's/^Package: //p' debian/control | tr '\n' ' ') ; debi ; apt-get -f install ; adequate $(sed -n 's/^Package: //p' debian/control | tr '\n' ' ')
duck
echo TODO: jslint puppet-lint acheck linkchecker ssl-cert-check

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

чекинг выглядит вот так

Это стена не относящегося к deb текста.

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

apt-get source, apt-get build-dep, debuild, lintian, licensecheck, piuparts лол. не говоря уже о dpkg, apt-get, aptitude

Перевожу для всех остальных: я знаю кучу умных команд, я не знаю что они делают и какое отношение имеют к пакетированию, но я могу считать, а 2 > 1, соответственно 2 — это плохо, а 1 — отлично.

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

ответить по существу не может
текст прочитанный не понимает

Тут выше по треду на тебя правильную рецензию дали.

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

дохренища утилит для создания и конфигов внутри? apt-get source, apt-get build-dep, debuild, lintian, licensecheck, piuparts лол.

md5deep ещё забыл. Как ни странно, она не во всяком дебианоподобном дистре есть, хотя для создания deb требуется, ЕМНИП, всегда.

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

md5deep ещё забыл. Как ни странно, она не во всяком дебианоподобном дистре есть, хотя для создания deb требуется, ЕМНИП, всегда.

4.2

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

Вообще-то, когда на ЕМНИП отвечают 4.2, это несколько нелогично.

Теперь по сути. Насколько я помню, DEBIAN/md5sums для создания пакета обязателен. А md5deep применяется потому, что md5sum не умеет рекурсивный подсчёт.

Где здесь ошибка?

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

Насколько я помню, DEBIAN/md5sums для создания пакета обязателен

Да? А я видел пакеты без MD5-сумм и даже делал такие сам.

md5deep применяется потому, что md5sum не умеет рекурсивный подсчёт.

Где здесь ошибка?

Ты хочешь знать, где именно? Мне-то это никогда не было интересно - MD5 в пакете есть, а рассчитываются они md5sum, find | xargs | md5sum или неведомой md5deep - неважно.

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

нужно вызывать dh_md5sums. Что с ним не так?

Всё с ним так, спасибо. Возьму на вооружение вместо md5deep.

Правда (возвращаясь к теме спора), RPM, где всё в одном спеке, всё равно выглядит проще...

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

RPM, где всё в одном спеке, всё равно выглядит проще...

RPM как пакетный менеджер безусловно лучше dpkg, но в сборке пакетов главное преимущество RPM - это «Maximum RPM». Документация по системе сборки deb просто никакая, да и сами средства - набор слабосвязанных костылей^W^W^Wтулкит в духе Unix-way. Но главная проблема - всё же документация.

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