[devel] Помогите разобраться с пакетированием

Dmitry V. Levin ldv на altlinux.org
Пт Июл 4 22:21:22 MSK 2014


On Sat, Jul 05, 2014 at 01:39:27AM +0800, Евгений Терешков wrote:
> "Dmitry V. Levin" пишет:
> 
> > Этот /var/lib/vz/vz образовался в результате неправильного использования ln(1).
> 
> Угу.
> 
> >> Я прочитал test(1) на предмет ключа "-a" и поправил спек так (4.7.2-alt2,
> >> 4d6158e018a87fb68d1ca846443fef0b8e28a48d):
> >> ===8<=====================================================================
> >> %post
> >> # Some use /vz instead of /var/lib/vz; create a compatibility symlink
> >> test -e /vz || ln -s /var/lib/vz /
> >> 
> >> %preun
> >> test -L /vz && rm -f /vz
> >> ===8<=====================================================================
> 
> Только сейчас заметил, что в оригинальном ovz-шном спеке vzctl тоже везде
> "test -a". Неужели у них какой-то свой test?

Нет, test (что builtin, что в coreutils) в отношении -a/-e, скорее всего,
везде одинаковый.

> >> Т.е. заменил всегда возвращающее ненулевой код "test -a /vz" на "test -e" и
> >> "test -L".
> >> Безуспешно: по обновлению линк /vz всё равно не появляется. Интересно, что
> >> он 100% появляется, если переустановить версию 4.7.2-alt2 с помощью apt-get
> >> --reinstall install vzctl
> > Пожалуйста, уберите эту самодеятельность с /vz из пакета vzctl!
> 
> Хорошо, но как сделать правильно?. В частности, я столкнулся с тем что этот
> путь зашит в vzmigrate. Могу его запатчить, но не факт, что ещё что-то
> внешнее по отношению к vzctl не закладывается на /vz

За те 4.5 года, пока я собирал пакет vzctl, /vz нигде зашит не был,
и никаких проблем с этим не было.  И сейчас тоже нигде не должно быть
кода, завязанного на существование /vz.  Если найдете, и если выяснится,
что это апстримный код - смело отправляйте патч Кириллу.

> >> Также себя ведёт и ещё один симлик из того же исходного коммита,
> >> /etc/net/ifup-post-local -> /usr/sbin/vzifup-post, т.е. они вместе с /vz не
> >> появляются при обновлении 4.5.1-alt1 => 4.7.2-alt1, но появляются при
> >> переустановке крайней версии.
> >> Помогите разобраться, что я делаю не так?
> > Это еще до вас, насколько я понимаю, неправильно написаны скрипты:
> > сперва %post делает ln, а потом %preun делает rm.
> 
> Да, подзабыл я уже порядок срабатывания триггеров. Спасибо.
> 
> P.S.: присоединяюсь к вопросу в соседнем письме относительно цели переноса
> /vz в /var/lib/vz.

Для того, чтобы пакет мог себе позволить создавать новые сущности
непосредственно в корневом каталоге, должна быть очевидная необходимость.
Если с 2006 года, когда vzctl был впервые упакован в Сизиф, я такой
необходимости не замечал, значит, она совсем не очевидная.

У /vz есть исторические корни - так было удобно разработчикам vz еще
до того, как появился openvz.  В Сизифе необходимости поддерживать
совместимость с установками, сделанными до openvz, никогда не было.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 181 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20140704/163ae5fd/attachment.bin>


Подробная информация о списке рассылки Devel