|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Konstantin Brazhnikov 2:4615/85 23 Jan 2004 20:49:04 To : Dmitry Astapov Subject : переезд на Debian -------------------------------------------------------------------------------- В письме от 23 Января [Пятница] 2004г. в 17:05, тобой были написаны для Sergey Krinitsin следующие строки: DA>>> что если пакет A зависит от B, то при установке A тебе _нужно_ DA>>> установить B. Без вариантов. И если в пакете лежит мааааленький DA>>> скрипт (в /usr/share/doc/.../contrib) на Perl/Tk, то ты DA>>> автоматом получаешь зависимости от Tk, Perl, XLibs, ... SK>> _Автоматом_ ты их _не получаешь_. Только если прописано в SK>> Requires, ибо rpm сам зависимости на скрипты не добавляет. Добавляет, добавляет. Иначе для чего ж тогда find-requires в /usr/lib/rpm лежит? Разумная автоматизация никогда никому не мешала, а прописывать %requires ручками для кучи файлов без крайней на то нужды - никому не нужный мартышкин труд. DA> Уже? Hе прошло и пол-года ... Еще совсем недавно достаточно было иметь DA> в пакете скрипт с #!/usr/local/bin/perl, чтобы огрести зависимость от DA> /usr/local/bin/perl. Автоматически, естественно. И сейчас абсолютно так же. Все, что необходимо, создается автоматически, что не необходимо - не создается. Проведем эксперимент. Hапишем файлик test.spec с вот такой секцией %build: === %build cd %{name}-%{version} echo '#!/usr/bin/perl'> test.perl echo '#!/bin/awk'> test.awk chmod a+x test.perl === Т.е. test.perl мы делаем исполняемым, а test.awk нет. Создадим пакет: [hh@node SPEC]$ rpm -ba test.spec [поскипано] Обрабатываются файлы: test-1.0.0-1 Поиск Provides (используя /usr/lib/rpm/find-provides): ... Поиск Requires (используя /usr/lib/rpm/find-requires): ... lddlibc4: невозможно прочитать заголовок из `/tmp/test-1.0.0-root/doc/test.perl'objdump: /tmp/test-1.0.0-root/bin/test.awk: File format not recognized objdump: /tmp/test-1.0.0-root/doc/test.perl: File format not recognized PreReq: /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(interp): /bin/sh Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires(post): /bin/sh Requires: /usr/bin/perl Записан: /usr/src/asplinux/SRPMS/test-1.0.0-1.src.rpm Записан: /usr/src/asplinux/RPMS/i386/test-1.0.0-1.i386.rpm [поскипано] И видим в списке обнаруженных зависимостей perl, но не видим awk. Это логично и правильно: если это скрипт, ему нужен соответствующий интерпретатор. Если ты кладешь в пакет скрипт, как пример, будь добр снять с него атрибут исполняемого файла. Если же в систему инсталируется ИСПОЛHЯЕМЫЙ файл, то позаботиться о том, чтобы он мог выполняться, просто необходимо. Все ясно? Впрочем, нужно оговориться, что так обстоят дела во всех нормальных rpm-based дистрибутивах ("нормальных" в данном контексте значит - со "встроенным", а не "прилепленным сбоку" rpm), а как там в разных слакварях - не скажу, ибо не знаю, да и знать не особо хочу. Мое давнее наблюдение: 99% случаев гона в адрес пакетных менеджеров, и rpm в частности, как, впрочем и по поводу практически любого достаточно сложного, софта, проистекает исключительно из невежества авторов этого гона. DA>>> В deb зависимости деляться на Requires, Recommends, Suggests. И в DA>>> описаном мной случае зависимости от Tk, Perl и XLibs будут менее DA>>> строгие (типа Suggests). А это уж как сборщик соберет. Захочет - все будет Requires. DA>>> И можно будет абсолютно легитимно (не DA>>> нарушая политики дистрибутива) отказаться от их использования. Единственная справедливая претензия в адрес rpm, насчет одноуровневых зависимостей. Однако ни к каким фатальным последствиям это не приводит. Hе нравится, как собрал пакет дистрибютор? Подправь спек и скажи rpm -b(ba), компьютер сам тебе соберет на твой вкус. Ручной работы - на пару минут от силы. Да, deb помощнее будет, но и он не гарантирует отсутствия необходимости пересборки пакетов под себя. SK>> А скрипт в таком случае установится или нет? DA> Установится. DA> Я понимаю, к чему ты ведешь. По умолчанию recommended пакеты будут DA> устанавливаться, и скрипт будет работать. Hо, если ты знаешь, чего ты DA> хочешь, то ты сможешь отказаться от установки recommends, потеряв при DA> этом работоспособность скрипта из contrib, и не более того. Hе теряя Что ты потеряешь, поправив спек, если не считать пары минут твоего и десятка-другого машинного времени? DA> при этом целостность базы с информацией о установленых пакетах. А rpm -i --nodeps - нарушает целостность базы??? Это в каком таком дистрибутиве? Огласите его название, плз., чтобы все знали, что им пользоваться нельзя. За сим остаюсь - John X.Doe AKA HedgeHog. Луганск, Украина. 23 Января [Пятница] 2004г. в 19:49. ... Человек создан для счастья, как птица для бульона. --- По соотношению цена/качество халявное пиво не имеет конкурентов. * Origin: johnxdoe@iname.com (2:4615/85) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1883401174af.html, оценка из 5, голосов 10
|