[devel] поддержка пакетов в git
Damir Shayhutdinov
=?iso-8859-1?q?damir_=CE=C1_altlinux=2Eorg?=
Ср Сен 24 18:42:12 MSD 2008
>>> Я так понимаю, что по сути пакет -- это набор файлов со скриптами
>>> установки/удаления. Репозитарий набор пакетов, причем удобный для
>>> обновления. Changelog -- это история изменения пакета В РЕПОЗИТАРИИ, а
>>> не пакета вообще.
>> Вот это глупость. Не все сборки, которые присутствуют в changelog,
>> попадают в репозитарий.
> А изменения чего, по сравнению с чем они тогда описывают?
Изменения между спектром версий, установленных у пользователя и
версией в репозитарии.
> И зачем они
> такие нужны? Разве что не мешают сильно... Хотя я могу представить,
> что пользователь может захотеть увидеть именно некоторую конкретную
> SRPM описанную в истории, и сильно удивиться, что такой никогда не
> существовало, но перед этим существенно намучается с ее поском, задаст
> вопросы в рассылках, поматериться, наконец.
Пользователь все может захотеть. Но репозитарий - это постоянно
двигающаяся цель. Промежуточные src.rpm, которые были в репозитарии
можно получить через архив.
>>> Но почему-то его запихнули в пакет. Для чего? Почему
>>> changelog указывается перед сборкой пакета, а не в момент помещения
>>> его в репозитарий?
>> Потому что changelog - это свойство пакета.
> Если у вас есть просто пакет без истории предыдущих версий, то
> changelog от него вам абсолютно не нужен. Смысл changelog появляется
> только там, гда вы можете ощутить эти самые change'ы, то есть в
> репозитории, или имея папку с хоть каким-то количеством пакетов из
> этой истории, либо надежный способ эти пакеты достать.
Это не так. Для первичной установки действительно changelog не нужен.
А вот для обновления - полезен.
> Если же у вас
> просто один пакет, то все существенное для пользователя -- это его url
> и версия исходников, из которых он был получен. Возможно имя сборщика
> (скажем, некоторым вы доверяете, а про некоторых знаете, что собирают
> они не очень), история же для пользователя безполезна в этом случае
> абсолютно, разве нет?
Полезна или бесполезна история - это дело каждого пользователя. Вам
может и бесполезна. А вот мне полезна, потому что с помощью нее я
могу:
1) Принять решение, обновлять мне пакет или нет
2) В случае если обновление чего-то сломало, посмотреть не сказано ли
об этом в changelog.
> Ну что мне даст, что у пакета когда-то была другая сборка, если мне и
> взять то из нее неоткуда, а если и есть рядом какой пакет с подходящей
> версией, то тоже не понятно это та, которая имелась в виду или
> какая-то другая. И только центральный репозиторий с четким
> версионированием может придать смысл истории изменений.
Вы просто не понимаете простого факта - репозитарий - это не статичная
вещь. Это постоянно изменяющаяся сущность. У пользователя на
компьютере могут быть пакеты таких версий, которых уже нет в
репозитарии.
То есть вы думаете что есть только пакет в репозитарии (самой
последней версии), а на самом деле, есть пакет в репозитарии + весь
спектр предыдущих версий пакета, установленных в системах различных
пользователей.
> Из вышесказанных соображений заключаю, что история пакета бессмыслена,
> если я не знаю к какому репозиторию она относиться, что и позволяет
> мне считать ее свойством именно репозитория.
К множеству пакетов репозитария надо приплюсовать множество
установленных в системе пакетов. Для этой системы история changelog
имеет смысл.
>>> Кроме того, маразм требовать, чтобы из apt приезжали только новые
>>> пакеты, в смысле версии самого пакета. Ну почему, если выложили новую
>>> версию openoffice на тестирование в Сизиф, то при серьездных проблемах
>>> необходимо обязательно ПЕРЕСОБИРАТЬ старую, которая и без того уже
>>> собрана? (так еще и со сменой serial!!!)
>> Вы не умеете пользоваться Hold? И не умеете пользоваться архивом Сизифа?
> Hold -- действительно не умею, даже не знаю, что это.
Вот видите, вы инструментом не владеете, а хаете почем зря. Выглядит
это некрасиво. Как ругать автомобиль за то, что в нем нет задней
передачи, если не умеете пользоваться ручкой переключения передач. Вы
думаете это проблема производителя автомобиля?
> Архив Сизифа -- это не решение вообще.
Вы вот зря стучите ложкой. Архив Сизифа - отличное решение для
проблемы "ой, а я сделал дистапгрейд и у меня все сломалось, верните
все взад".
> Вот тут недавно про проблему с xserver большой
> тред был. Что ж все эти люди не смогли-то архивом воспользоваться?
Могли, и наверняка воспользовались. Просто им хочется участвовать в
развитии репозитария, а не сидеть на какой-то более-менее стабильной
архивной версии. В рамках развития репозитария решение с архивом
Сизифа конечно несистемно и неконструктивно.
> Это
> по вашему правильно, что проблемы мантейнера должны решать
> пользователи? Логичнее было, чтобы мантейнер откатил бы версию, а как
> с дровами проблема решилась бы, так и выложил свою новую сборку.
Боюсь в данном конкретном случае такое решение невозможно, так как
ситуация с дровами никогда не решится. Проприетарщики не будут
выпускать свои старые дрова для нового xorg. Им выгодно, чтобы старые
версии карт оставались неподдерживаемыми, и люди делали апгрейд.
Кстати, я вот пользуюсь драйвером ati для моего X1400 - отлично
работает 3D и вообще ускорение. Проприетарным драйвером пользоваться
невозможно - настолько он глючный.
> До той поры новая версия могла бы полежать в личном репозитарии
> мантейнера.
Она там и лежала - никто не жаловался.
>> Это ваши проблемы, а не apt или rpm.
> Ну, конечно, я то считал, что компьютер и ПО для пользователя, а
> оказывается наоборот
Прежде чем чего-то хаять, сначала изучите. Вдруг, магическим образом,
ваши проблемы могут быть решены без вашего радикального "отнять и
поделить".
>>> Почему просто не выложить старые бинарные пакеты?
>> Потому что apt не будет откатывать версию с новой на старую
>> автоматически. При этом старая версия находится в репозитарии, а новая
>> - в установленной системе. Это конфликт, который находится вне
>> репозитария, и решается только с помощью Serial или подъема версии.
> Так вот я и говорю, что apt убог и не может это сделать.
А я говорю что апт может это сделать на компьютере отдельного
пользователя, но общесистемно в рамках дистрибутива можно делать
только через Serial. А все из-за того что вы не учитываете
установленные в системе пакеты.
>>> Раз их решили выложить поверх старых, то на
>>> это есть причины, которые и раскрываться в changelog'е репозитария,
>>> где случилась коллизия.
>> Причем тут репозитарий?
> При том, что apt убог, и не может нормально работать с пакетами. При
> этом огромная часть его проблем тянется из rpm (ИМХО)
Если вы можете - поясните пожалуйста свою точку зрения. Пока это
голословные утверждения, если не сказать жестче.
>> Ради смены скриптов установки? конечно.
> Это по вашему не оверхед? Если я в одном символе, где-нибудь в %post в
> том же openoffice опечатался, то неприменно должен его пересобрать?
Если вы не умеете по-другому - то таки да.
(hint: rpm -bb --short-circuit может помочь)
Почитайте побольше про rpm чтоли :)
>>> Вот. Накипело.
>> Накипайте почаще. Только не обижайтесь, если выяснится, что
>> большинство ваших проблем вовсе не глобальны, а объясняются банальным
>> незнанием. Учиться никогда не поздно.
> Так это же хорошо, если мои проблемы не глобальны. Значит я смогу их
> быстро разрешить) Только пока не получается и уже давольно долго...
Вы пришли по адресу. Вам помогут :)
http://www.altlinux.org/Советы_по_использованию_APT (раздел Обновление
системы "вниз" )
man apt_preferences
> Так что я уже и о их глобальности задумался. Так что давайте выводите
> же меня из этого заблуждения.
Я могу лишь показать направление. Выйти должны вы сами.
Подробная информация о списке рассылки Devel