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