Восстановление после сбоев массовой компиляции

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Ответить
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Восстановление после сбоев массовой компиляции

Сообщение yoricI »

Здравия!
Недавно обновился профиль системы, в сопутствующей новости сказали делать полную пересборку системы.

Код: Выделить всё

emerge -e @world
Одна пересобралась без особых проблем, а вторая под конец вылетела с ошибкой, требует @preserved-rebuild. Не все пакеты перекомпилировались. И как бы теперь избежать повторения с начала? По логам вычислить, вроде, затруднительно, какие пакеты остались необработанными. Надо было что-то вроде

Код: Выделить всё

emerge -e @world | tee log
делать... Какие есть ещё варианты?
Спасибо сказали:
Аватара пользователя
delvin-fil
Сообщения: 135
ОС: Linux → Gentoo

Re: Восстановление после сбоев массовой компиляции

Сообщение delvin-fil »

yoricI писал(а):
08.12.2017 17:02
Какие есть ещё варианты?

--emptytree (сокращенно -e)
Переустанавливает все атомы с их глубокими зависимостями, как если бы ни одного пакета не было установлено. Вначале рекомендуется запустить эту команду с ключом --pretend, дабы убедиться, что она отработает так, как вы ожидаете.


Вот чего люди дурью маятся?
emerge @world -pvuDN1 --backtrack=30 (1 - необязательно, прямо скажем)
Смотришь "что почем" и решаешь конфликты. Зачем всю то пересобирать?
import __hello__
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: Восстановление после сбоев массовой компиляции

Сообщение yoricI »

Простота хуже воровства :-)

Код: Выделить всё

$ eselect news read 22
2017-11-30-new-17-profiles
  Title                     New 17.0 profiles in the Gentoo repository
  Author                    Andreas K. Hьttel <dilfridge@gentoo.org>
  Posted                    2017-11-30
  Revision                  1

We have just added (for all arches except arm and mips, these follow
later) a new set of profiles with release version 17.0 to the Gentoo
repository. These bring three changes:
1) The default C++ language version for applications is now C++14.
   This change is mostly relevant to Gentoo developers. It also
   means, however, that compilers earlier than GCC 6 are masked
   and not supported for use as a system compiler anymore. Feel
   free to unmask them if you need them for specific applications.
2) Where supported, GCC will now build position-independent
   executables (PIE) by default. This improves the overall
   security fingerprint. The switch from non-PIE to PIE binaries,
   however, requires some steps by users, as detailed below.
3) Up to now, hardened profiles were separate from the default
   profile tree. Now they are moving into the 17.0 profile
   as a feature there, similar to "no-multilib" and "systemd".

Please migrate away from the 13.0 profiles within the six weeks after
GCC 6.4.0 has been stabilized on your architecture. The 13.0 profiles
will be deprecated then and removed in half a year.

If you are not already running a hardened setup with PIE enabled, then
switching the profile involves the following steps:
If not already done,
* Use gcc-config to select gcc-6.4.0 or later as system compiler
* Re-source /etc/profile:
    . /etc/profile
* Re-emerge libtool
    emerge -1 sys-devel/libtool
Then,
* Select the new profile with eselect
* Re-emerge, in this sequence, gcc, binutils, and glibc
    emerge -1 sys-devel/gcc:6.4.0
    emerge -1 sys-devel/binutils
    emerge -1 sys-libs/glibc
* Rebuild your entire system
    emerge -e @world

Switching the profile from 13.0 to 17.0 modifies the settings of
GCC 6 to generate PIE executables by default; thus, you need to do
the rebuilds even if you have already used GCC 6 beforehand.
If you do not follow these steps you may get spurious build
failures when the linker tries unsuccessfully to combine non-PIE
and PIE code.
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: Восстановление после сбоев массовой компиляции

Сообщение yoricI »

Вычислил по логам, на ручном управлении, пересобралось всё, а глюки остались...
Спасибо сказали:
Ответить