HexEdit
Никнейм HexEdit зарегистрирован!
Никнейм 1nterFucker зарегистрирован!
Поделитесь со мной через Nextcloud


Читать @Timofey_HexEdit

Timofey Negrebetsky
Timofey Negrebetsky
Create Your Badge



IPv6 Certification Badge for HexEdit

HexEdit

aka 1nterFucker

Как я после 3 лет Gentoo обновлял

2019-02-25 by HexEdit, с тегами gentoo linux

Понадобилось тут мне развернуть новую машинку, и полез я за когда-то подготовленным OVF-образом. А образ то оказался довольно таки старым - последнее обновление в июне 2015. Ну и, естесственно, обновляться нормально не захотела.

При попытке обновления portage оно выдало, что мне может обновить (ну... зависимости), ибо EAPI=6.

Так вот годного решения я не нашёл, впрочем мне почти сразу пришла мысль (но сперва решил посмотреть, какие есть варианты) - сделать это вручную.

ebuild /usr/portage/sys-apps/portage/portage-2.3.8.ebuild merge

Ну... тут мы ругаемся на то, что хотим Python 3.6, которого естесственно тоже в системе нет. Ну и, так, заодно, у него уже идёт EAPI=6. Его, разумеется, нужно изменить на наш (5). Но, т.к. нам нужно будет потом делать digest, то тут есть 2 варианта, либо правим в каждом ebuild'е, либо удаляем ненужные. Мне не сложно, я отредактировал все :)

vim /usr/portage/dev-lang/python/python-*.ebuild
ebuild /usr/portage/dev-lang/python/python-3.6.3-r1 digest
ebuild /usr/portage/dev-lang/python/python-3.6.3-r1 merge

Ну и на этом веселье не закончилось, теперь тоже самое нужно было проделать с automake, ибо питон хотел один из последних. После чего снова пытаемся снова merge питона. Всё ок. Далее portage. И тут всё ок.

Закончили (я специально выбирал НЕ последние версии, чтобы потом просто сделать (а его нужно делать) emerge -e @system. Ну и далее классический апгрейд - обновляем binutils и libtool, затем gcc, затем переключаемся на новый gcc, пересобираем снова binutils и libtool и после этого систему.

ЗЫ. Были, кстати, и ещё нюансы при обновлении, но это уже было связано скорее с особенностью построения именно моей системы.

ЗЗЫ. Я одного никак понять не могу, зачем декларировать в ebuild'ах новый EAPI, если он и на старом прекрасно собирается?