Обновления Gentoo Linux

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 09:55, 14 марта 2011 (править)
178.130.5.137 (Обсуждение)
(gcc glibc)
← К предыдущему изменению
Версия 20:18, 11 мая 2011 (править) (отменить)
NCdy (Обсуждение | вклад)
(coreutils)
К следующему изменению →
Строка 2: Строка 2:
== coreutils == == coreutils ==
-При обновлении до свежих версий (>coreutils-6.12) появляется баг с командой <code>touch</code> [[http://bugs.gentoo.org/233280 Bug 233280]] специфичный для Open VZ платформы.+При обновлении coreutils-6.12 появляется баг с командой <code>touch</code> [[http://bugs.gentoo.org/233280 Bug 233280]] специфичный для Open VZ платформы.
В качестве решения можно использовать совет Антона Фёдорова, выполнить команды заменяющие touch на busybox. В качестве решения можно использовать совет Антона Фёдорова, выполнить команды заменяющие touch на busybox.
Строка 8: Строка 8:
Лучше заранее добавить исключение в package.mask и не обновлять работающий coreutils. Лучше заранее добавить исключение в package.mask и не обновлять работающий coreutils.
-<code>>=sys-apps/coreutils-6.12</code>+<code>>=sys-apps/coreutils-6.12</code>. Как и ядро, которое мы используем уже как 5 лет не актуально, так и coreutils-6.12 уже нет в дереве portage. Вам необходимо собрать локальный overlay (костыли) и добавить туда вот этот [[http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-apps/coreutils/coreutils-6.12.ebuild ebuild]].
 + 
 +Оба метода не идеальны, так как новые пакеты основаны на работе с coreutils 8+, busybox не является полноценной заменой.
== libtool == == libtool ==

Версия 20:18, 11 мая 2011

В этой статье описаны известные проблемы и их решения при обновление ПО в ОС Gentoo Linux.

coreutils

При обновлении coreutils-6.12 появляется баг с командой touch [Bug 233280] специфичный для Open VZ платформы. В качестве решения можно использовать совет Антона Фёдорова, выполнить команды заменяющие touch на busybox.

rm /bin/touch && ln -s /bin/bb /bin/touch

Лучше заранее добавить исключение в package.mask и не обновлять работающий coreutils. >=sys-apps/coreutils-6.12. Как и ядро, которое мы используем уже как 5 лет не актуально, так и coreutils-6.12 уже нет в дереве portage. Вам необходимо собрать локальный overlay (костыли) и добавить туда вот этот [ebuild].

Оба метода не идеальны, так как новые пакеты основаны на работе с coreutils 8+, busybox не является полноценной заменой.

libtool

Некоторые версии `libtool` блокируют сами себя. Например:

[blocks b ] =sys-devel/libtool-2*:1.5 ("=sys-devel/libtool-2*:1.5" is blocking sys-devel/libtool-2.2.10)

Для обновления в этом случае надо удалить и сразу же установить libtool.

emerge -C libtool
emerge -1 libtool

gcc >=4.3 и glibc >=2.8

Имеют циклическую зависимость. То есть glibc версии >=2.8 требует компилятор gcc версии >=4.3, а компилятор gcc версии >=4.3 требует glibc версии >=2.8.

В этом случае надо обновить сначала компилятор, затем при помощи gcc-config выбрать компилятор самой большой версии, потом установить glibc и переустановить опять компилятор.

Последовательность команд будет следующей:

emerge --nodeps gcc
gcc-config
emerge glibc
emerge gcc