Обновление libpng на стабильной ветке

Вольный и очень краткий пересказ этого поста.

Многие наверно уже сталкивались с проблемой апдейта media-libs/libpng-1.2.43-r2 до версии media-libs/libpng-1.4.3
Разработчик Гентоо Diego Pettenò (flameeyes@gentoo.org) рекомендует следующую последовательность действий:

а) Поставить, если еще не стоит, dev-util/lafilefixer ( и запустить его )

 lafilefixer --justfixit 

б) Дописываем в файл /etc/portage/bashrc следующие строчки (если файл не существует - его нужно создать)

post_src_install() {
    lafilefixer "${D}"
}

в) удаляем страую версию libpng

emerge -C =libpng-1.2*

г) Следующие операции необходимо выполнять в "чистой" консоли, предварительно остановив X-сервер, т.е. графические приложения не должны быть запущены.
Удаляем ( для гарантии) старые ненужные библиотеки

rm -f /usr/lib/libpng12.so* 

замените /usr/lib на /usr/lib64 в случае использования 64-битной системы

д) Ставим новую версию библиотеки libpng

emerge -1 =libpng-1.4*

e) И запускаем пересборку необходимых пакетов

revdep-rebuild -- --keep-going

.

А какие проблемы несет в себе libpng-1.4.x-update.sh?
У меня все нормально стало через него:
emerge libpng && libpng-1.4.x-update.sh && revdep-rebuild -L libpng12.so.0 && rm -f /usr/lib/libpng12.so*

izbushka написал(а): А какие

izbushka написал(а):
А какие проблемы несет в себе libpng-1.4.x-update.sh?
У меня все нормально стало через него:
emerge libpng && libpng-1.4.x-update.sh && revdep-rebuild -L libpng12.so.0 && rm -f /usr/lib/libpng12.so*

Так же делал,всё нормально.И скрипт libpng-1.4.x-update.sh, как я понял,запускаеться автоматически после установки.

Это хак, применение которого

Это хак, применение которого неприветствется тем же Диего, хак этот просто меняет втупую везде где видит ссылки на старые библиотеки ссылками на новые. Но если программе реально нужна старая версия libpng, например бинарю то будет несколько странная ситуация. К томуже из-за из за того что скрипт поменял файлик то он останется в системе как мусор после удаления пакета.Сходными с хаком побочными эффектами обладает и lafilefixer, но так как он умнее он проставляет в файлах правильные версии.

Эх ты...

Пересказ/перевод конечно хорошо...
Но и своей головой думать тоже полезно. Хотя бы иногда...

slepnoga написал(а):
б) Дописываем в файл /etc/portage/bashrc следующие строчки (если файл не существует - его нужно создать)

post_src_install() {
    lafilefixer "${D}"
}

Оно нужно только для (на этапе) обновления libpng или полезно в принципе?

:wq
--
Live free or die

это полезно всегда, так как

это полезно всегда, так как мягко удаляет ненужные la файлы, в отличие от запуска lafilefixer общесистемно - в этом варианте он поменяет файлы в системе и портаж в последствии их не удалит из-за несовпадения контрольных сумм.

evadim написал(а): это

evadim написал(а):
это полезно всегда, так как мягко удаляет ненужные la файлы

В актуальных stage'ах оно уже есть?
Только мне кажется, что в этом случае сей ньюанс заслуживает отдельной записи (ИМХО предпочтительнее блог + FAQ, где говорится про полезные программы для работы с portage), а не упоминания между делом в рамках вопроса обновления libpng на стабильной ветке?

evadim написал(а):
в отличие от запуска lafilefixer общесистемно - в этом варианте он поменяет файлы в системе и портаж в последствии их не удалит из-за несовпадения контрольных сумм.

И зачищать их потом вручную, выискивая [например] с помощью findcruft'а?

:wq
--
Live free or die

Anarchist написал(а): evadim

Anarchist написал(а):
evadim написал(а):
в отличие от запуска lafilefixer общесистемно - в этом варианте он поменяет файлы в системе и портаж в последствии их не удалит из-за несовпадения контрольных сумм.

И зачищать их потом вручную, выискивая [например] с помощью findcruft'а?

на эту тему лучше почитать Диего.

Он сильно быстро пишет :)

Он сильно быстро пишет :)

Недавно решил наконец

Недавно решил наконец обновить и столкнулся с этой проблемой. Все рецепты отсюда не помогли, а скриптик запускать не хотелось. Делал lafilefixer, запускал revdep-rebuild и тот валился с -lpng12 not found. Тогда я решил пересобрать все пакеты, которые ссылаются на этот самый -lpng12. Использовал вот такую команду, запуская её несколько раз подряд:

Цитата:
find /usr/lib -iname "*.la" -exec grep lpng12 -l {} \; | xargs qfile -qC | sort | uniq | { while read pack; do sudo emerge -v1 $pack; done }

В конце концов пакетов, ссылающихся на -lpng12, в системе не осталось.

я ни разу не сомневался в

я ни разу не сомневался в твоей гениальности :)

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".