Неудачное обновление gcc. Разбор полетов

Приветствую всех.

Споткнулся на обновлении gcc. стоял 4,1,2 не так давно вышел 4,3,2. обновил систему, но не пересобирая мир выполнил emerge --depclean. Понятное дело старый компилятор снесло подчистую, после чего на машине (squid+SAMS+MySQL+Apache) отказался запускаться MySQL, сетуя на отсутствие libstdc6, собрать его заново новым компилем мне не удавалось, как не удавалось собрать вообще что либо: компилятор С говорил что не может . Благо система и сквид работать не отказались и сервер остался частично в работе. На мое счастье рядом стоит машина с жабой где выполнить emerge --depclean руки еще не дошли. Собрал с нее бинарник gcc-4.1.2 с помощью quickpkg, но сколько ни бился с emerge и флагом PKGDIR установить чеовеческим путем пакет не удалось. Пришлось просто распаковать его в корень. После чего я пересобрал MySQL и вернул сервис к жизни.

Теперь собственно вопросы. Является ли достаточным после обновления gcc выполнить emerge -ev world, чтоб в дальнейшем выполнять emerge --depclean, что снесет старый компилятор? Почему ничего не вышло с emerge -k? Я явно указывал ему директорию через переменную PKGDIR и в ту директорию складывал gcc-4.1.2.tbz2, но он в упор его не видел, говоря что мне нужно указать PKGDIR

# первая сборка

# первая сборка toolchain
emerge linux-headers glibc binutils gcc-config gcc
# выбрать новый gcc если он установился в новый слот
gcc-config имя_или_номер_нового_gcc
# см. “gcc-config -l”
source /etc/profile
# компиляция toolchain с созданием бинарных пакетов
emerge -b glibc binutils gcc portage
# не компилить glibc, binutils и gcc
emerge -bke system
# не компилить предыдущие пакеты (включая system)
emerge -bke world

# первая сборка

# первая сборка toolchain
emerge linux-headers glibc binutils gcc-config gcc
это до сборки gcc? или уже после emerge --update --deep --newuse world?

С созданием бинарных пакетов все ясно, я собирал gcc с помощью quickpkg на другой, еще рабочей системе, после чего попытался поставить собраный gcc на не рабочей и именно установка мне не удалась. Надобности в бинарных версиях system и world нет.

Если обновляется хотя-бы

Если обновляется хотя-бы один из linux-headers, glibc, binutils или gcc, то рекомендуется пересобрать их дважды, после чего весь system, после чего весь world.

Примечание: Цель двойной компиляции toolchain - получить гарантированно стабильный и корректный toolchain не зависящий от предыдущего. Перекомпилировать system/world после этого жёсткой необходимости нет, по крайней мере если остальной софт продолжает работать (возможно даже используя библиотеки из старого toolchain.

Цель перекомпиляции system/world - чтобы весь софт получил потенциальное преимущество от установки нового toolchain. system перекомпилируется перед world из тех-же соображений, т.к. при компиляции программ из world используются утилиты из system.

Так, что emerge linux-headers glibc binutils gcc-config gcc
делается по идее как только выходит новая версия inux-headers, glibc, binutils или gcc, но я тоже проглядел все это дело и тоже сделал depclean при этом удалился старый gcc и полезли ошибки, когда доперло что случилось, сделал "gcc-config -l" потом "gcc-config цифра_нужного_компилятора", дальше "source /etc/profile",
и пошел по инструкции в предыдущем посте.

.

Где-то я читал давно, что обычный "emerge gcc" приводит к тому, что gcc собирается три раза. Поэтому там пояснялось, что дважды (трижды) компилять смысла нет. А тем, кто может сделать emerge @installed нет смысла делать "после чего весь system, после чего весь world". Но пруфлинк дать не могу, сорри.

Это подпись, которую невозможно истолковать неправильно

Вообще-то, @installed и @world, мягко говоря, не совсем одно и т

patamooshta написал(а):
Где-то я читал давно, что обычный "emerge gcc" приводит к тому, что gcc собирается три раза. Поэтому там пояснялось, что дважды (трижды) компилять смысла нет.

Есть такое дело. Статья называлась что-то вроде "Почему не надо делать emerge -e world три раза"

patamooshta написал(а):
А тем, кто может сделать emerge @installed нет смысла делать "после чего весь system, после чего весь world".

Вообще-то, @installed и @world, мягко говоря, не совсем одно и то же.

нашел доку по апгрейду gcc,

нашел доку по апгрейду gcc, уже пересобираю system
недуюсь после этого система хотя бы загрузится

http://www.gentoo.org/doc/ru/gcc-upgrading.xml

???

Вопреки всем стараниям наших доблестных чубайсов в аналогичной ситуации никаких проблем с загрузкой системы не наблюдал.
Вероятно потому что неизменно предпочитаю загрузку на третий инит.

В качестве достаточно интуитивного минимального решения:

# gcc-config --help
# gcc-config -c
# gcc-config i686-pc-linux-gnu-4.3.2

Дальше он сам подсказывает, что
# source /etc/profile

ЗЫ: А после починки X-сервера можно добраться до указанной инструкции и продолжить решать квест :)))

:wq
--
Live free or die

И ещё по мотивам

gentoo-team, надо полагать, уже считает процедуру смены компиллятора тривиальным действием.
Не заслуживающим упоминания в новостях (читаемых по eselect news)?

Есть мнение, что здесь они несколько погорячились.

:wq
--
Live free or die

Я другого мнения. Сам сменил

Я другого мнения.
Сам сменил вот на днях компилятор на x86 и amd64 платформах. Все прошло успешно. Просто почитал статью на gentoo.org.
Она хоть и немножко устарела и на английском, но суть я понял ибо мои действия в корне не отличались от описанных выше с пересборкой toolchain -> system -> world.
Кроме того все описано на вике.
Иногда надо не начинать сразу шашкой махать, а прочесть о правилах ее использования в быту.

Нащяльника, мая сервира паставиль, фрибизьдя инсталя сделаль, апачи сабраль, пыхапе патключиль, сапускаю, а ано - ажамбех пашамбе эшельбе шайтанама!

.

_passer написал(а):
Я другого мнения.

Т.е. Вы считаете, что eselect news, предупреждая о смене X-сервера не должен выдавать аналогичного предупреждения о смене компиллятора?

ЗЫ: Исходя из моих наблюдений в данном случае (4.1 -> 4.3) живучесть системы несколько превышает описанное в статье.

:wq
--
Live free or die

На трёх машинах обновлялся с

На трёх машинах обновлялся с 4.1 на 4.3, в разное время (летом, осенью, в феврале) — всё прошло гладко.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Дык у меня тоже не смотря на

Дык у меня тоже не смотря на все старания наших чубайсов особых проблем не возникло.

Я просто говорю о том, что если бы в eselect news было предупреждение и пара строчек подсказок, жизнь была бы ещё проще и ещё веселее.

:wq
--
Live free or die

Пожалуй что. bugs.gentoo.org?

Пожалуй что.
bugs.gentoo.org? (-:E

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Я им написал [почти] всё, что я о них думаю :)))

http://bugs.gentoo.org/show_bug.cgi?id=266209

:wq
--
Live free or die

Ну разве что было бы полезным

Ну разве что было бы полезным напоминание сделать gcc-config перед запуском emerge --depclean - на этом большинство и обломалось.

Мне думается

a_v написал(а):
Ну разве что было бы полезным напоминание сделать gcc-config перед запуском emerge --depclean - на этом большинство и обломалось.

Что это --- минимальные меры, чтобы не сломать систему.
А не правильные действия по полному и корректному обновлению.
Потому продолжу утверждать, что подобные события было бы очень неплохо отражать на этапе, предшествующем обновлению.

:wq
--
Live free or die

Вот так это лечится без

Вот так это лечится без использования второй машины.
http://gentoo.ru/node/14486

На самом деле оно лечится проще

KiberGus написал(а):
Вот так это лечится без использования второй машины.
http://gentoo.ru/node/14486

Об чём я и написал в комментарии.

ЗЫ: Правда, при условии [возможности] загрузки на третий инит.

ЗЗЫ: Даже LiveCD не потребовался.

:wq
--
Live free or die

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

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