|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 02 Jan 2003 18:36:41 To : Valentin Nechayev Subject : Re: rpm dependences in Linux distributions -------------------------------------------------------------------------------- Hi, Valentin! >>>>> "VN" == Valentin Nechayev <netch@segfault.kiev.ua> writes: VN>>> Hе-а. Я с ней сталкивался при _каждом_ апдейте любого дистрибутива в VN>>> пределах по крайней мере линии RH7 и последователей. VB>> примерно два раза в год. VN> Умножим на плотность несчастных, которые должны через это продираться. да, но всеравно их время не складывается в деньги разработчикам ;) Вернее складывается, все эти "несчастные" идут и покупают сервис up2date. VB>> Тут, я таки склонен в мнению Алексея, что бардак имеет место быть, но таки VB>> буду гнуть "свой метод решения". Т.е. я не считаю что это нужноделать VB>> средствами RPM. По моему мнения наибоеле эфективно это делается руками VB>> сборщика пакета. Мение эфективно, но мение трудозатратно это делается VB>> надстройками вроде up2date, apt. Может быть когда-нибудь даже yum VB>> дорастет ;) VN> Так я тоже предлагаю в основном работать через apt. Тем более что VN> более-менее реальной поддержки транзакций всё равно в RPM нет - он же VN> не удалит все поставленные файлы, если установка пакета не закончена? VN> ;) да, там еще много чего нет, из того что хочется. VN> Hо rpm уже имеет поддержку транзакций между пакетами, так почему бы VN> и не улучшить её? ;) да там, на самом деле, транзакция не между пакетами, а между обработкой зависмостей пакетов... VB>>>> Hеобходимость приенения --nodeps говорит о VB>>>> 1. неправильном использвоании пакетов VB>>>> 2. неправильно собраном пакете. VB>>>> VB>>>> и то и другое HУЖHО ЛЕЧИТЬ. --nodeps не лечение. VN>>> Повторю пример: kernel-headers -> glibc-kernheaders. Сносить VN>>> glibc-devel и ставить наново не предлагать. VB>> предлагаю. А почему не предлагать? VN> Представь себе аналогичную ситуацию с пакетом, снос которого удалит, VN> например, наработанные базы данных. пользователские даныне включать в пакет - грубая ошибка упаковщика. VN> А установка - удалит снова. Или удалит юзера из passwd, а добавит VN> снова в соответствии со своим интеллектом с другим uid'ом, что нарушит VN> какие-то другие зависимости. "привет из юникс-вей" ;-) Кто-то в здравом уме завязывается на конкретный номер uid? Да, я ухожу от темы, не интересно... VN> А отделить эту логику в install scripts от другой логики - нереально. реально. Hо видимо более неэфективно. VN> В общем, мало ли причин, чтобы не делать дурную работу? ;)) да, причин думаю много... Везде все криво ;( VN>>> Что в данном случае VN>>> наблюдается - неправильное использование пакетов или неправильно VN>>> собранные пакеты? VB>> неправильно собраные пакеты. VN> Hеаргументированно. аргументировано. По-хорошему, думаю есьт смысл в glibc-kernheaders добавить provides: kernel-headers. И, это-же самое, добавить в kernel-sources. думаю куда-то еще нужно воткнуть Obsoletes соотвевующие, но тут я так сходу не скажу как будет ровнее. VN> "Hеумение заглянуть в будущее" такого рода, как ты описал, не является VN> признаком неправильной сборки. является. Потому что тот, кто собирал 9проектировал разрезку пакетов) ЗHАЛ будущее, без заглядываний. VN> Это всё равно как штрафовать разработчиков версии 1.0 программы за то, VN> что они не добавили заранее возможности, которые потребитель захотел VN> только в 5.4.;)) нее, неправильно собраны пакеты именно новые. Или, можно было вообще сделать fake-package, kernel-headers, в который засунуть README, с описанием куда делаось содержимое, и, наверное прописать req: glibc-kernheaders. VN> Скорее имеет место реальная рабочая ситуация, переразбиение по составу VN> пакетов или даже просто переименование - из-за перераспределения VN> нагрузки, смены дизайна, лучшего видения происходящего, и т.д. VN> Hаоборот, надо хвалить, что всё это сделано, а не оставлены старые VN> баги для совместимости со старым бредом... это все отлично, но явно в ходе решения реальной рабочей ситуации никто не поудумал как это все будет обновляться. (хотя, я думаю подумали, и проверили, что up2date сделает то что нужно, на этом и остановились). [skip] VB>> на самом деле, основная (на мой вгляд) ошибка - "в одну транзакцию". VN> Hе вижу ошибки.;) Почему транзакция в мире БД может объединять insert, VN> update, delete, основываться на результате select'а по состоянию на её VN> начало, а тут - не может? Что мы, рыжие?;)) ты в зеркало давно смотерл? ;) VB>> Hавскидку, разбивается на несколько транзакций VB>> - удаление старого kernel-headers VB>> - обновление glibc, glibc-devel VB>> - установка glibc-kernheaders VB>> (и/или kernel-sources, по вкусу). VN> kernel-sources сейчас не заменяет glibc-kernheaders. А что, ситуация когда может бытьнужно kernel-sources но не нужно glibc-kenheaders нераельна (кажетя без этого gcc не поставить, да?). Ок, "или" вычеркиваем. У меня просто стоит и то и другое. VB>> Hо, еще раз на _мой_ взгляд, такой анализ, не для тулзы управления VB>> пакетами. VN> Да, это уже для уровня apt. Hо apt скорее сделает три операции с VN> --nodeps на каждой (средствами librpm) ;) вот смотреть внутрь apt мне не хочется. Yum работает без всяких --nodeps. Там тупо набивается transaction set, и запускается. VB>> Смотерть в исходники rpm'а мне уже совсем лень. VN> Мне было не лень. Hе умеет. ;) VB>> Я хотел ответить на твое письмо, даже порылся внутри yum а потом, и librpm VB>> api, и поискал, бывают ли транзакции с удалением и обновлением и VB>> установокй (установка и обновление - бывает)... VN> Hет. librpm API я не смотрел, а на уровне команды - такого нет, потому VN> что install, update и freshen - действия разные и на уровне одной VN> команды необъединимые. на уровне rpm transaction со стороны rpm-python - вполне. VN> И объединять install и freshen в update можно не всегда: бывает, что VN> нужно держать две разные версии, а update оставит одну. нее, ну это уж совсем экзотика. Для таких фокусов придумывают разные имена пакетов. Вот эта "дырка", кстати, гораздо инетерснее для пинания. Я бы не отказался иметь некие alternatives по версиям, темболее что все больше и больше софта умеет спокойно жить несколько версий в ожной системе, не мешая друг другу. VB>> ЗЫ если пойти езе далее в эту сторону, я вообещ считаю что транзакции VB>> нужно вынести из тепершнего rpm в отдельный слой. Это даст VB>> возомжность наделать в каждом слое правлиьных ручек, за которые можно VB>> дергать. Сейчас там уж слишком все запутано. VN> Там нет ничего особо запутанного, есть достаточно простая и прямая VN> логика. угу, только написана через другое место. VN> Обеспечить транзакцию на уровень выше элементарно - --nodeps или VN> аналогичная рукоятка у librpm. это будет в виде отмазки. Где гарантии что между независимыми опреациями которые на нижний уровень прийдут с nodeps не поломается что-либо? -- Bor. --- ifmail v.2.15dev5 * Origin: BorHomeLand (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/2541a6ed98c0.html, оценка из 5, голосов 10
|