Неудачное обновление 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, мягко говоря, не совсем одно и т
Есть такое дело. Статья называлась что-то вроде "Почему не надо делать emerge -e world три раза"
Вообще-то, @installed и @world, мягко говоря, не совсем одно и то же.
нашел доку по апгрейду gcc,
нашел доку по апгрейду gcc, уже пересобираю system
недуюсь после этого система хотя бы загрузится
http://www.gentoo.org/doc/ru/gcc-upgrading.xml
???
Вопреки всем стараниям наших доблестных чубайсов в аналогичной ситуации никаких проблем с загрузкой системы не наблюдал.
Вероятно потому что неизменно предпочитаю загрузку на третий инит.
В качестве достаточно интуитивного минимального решения:
Дальше он сам подсказывает, что
# 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.
Кроме того все описано на вике.
Иногда надо не начинать сразу шашкой махать, а прочесть о правилах ее использования в быту.
Нащяльника, мая сервира паставиль, фрибизьдя инсталя сделаль, апачи сабраль, пыхапе патключиль, сапускаю, а ано - ажамбех пашамбе эшельбе шайтанама!
.
Т.е. Вы считаете, что
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
- на этом большинство и обломалось.Мне думается
Что это --- минимальные меры, чтобы не сломать систему.
А не правильные действия по полному и корректному обновлению.
Потому продолжу утверждать, что подобные события было бы очень неплохо отражать на этапе, предшествующем обновлению.
:wq
--
Live free or die
Вот так это лечится без
Вот так это лечится без использования второй машины.
http://gentoo.ru/node/14486
На самом деле оно лечится проще
Об чём я и написал в комментарии.
ЗЫ: Правда, при условии [возможности] загрузки на третий инит.
ЗЗЫ: Даже LiveCD не потребовался.
:wq
--
Live free or die