Почему вы храните дерево портежей в своем домашнем каталоге?? Не волнуйтесь, после написания Наблюдения 2 я понимаю, почему . Увидев это, я вздрагиваю. Расположение по умолчанию должно быть:/usr/portage
. Это расположение помогает при создании локальных оверлеев(usr/local/portage
и отличает локальное дерево от синхронизируемого ), то есть пакетов с пользовательскими номерами версий или пакетов, которых нет в основном дереве портежей. Общепринято, что дерево и/или оверлеи в системе Gentoo являются системными компонентами и поэтому должны находиться в системном каталоге. Функции Portage контролируются файлами, находящимися в /etc/portage
. См. Gentoo Portage Wiki . Ваш домашний каталог должен использоваться для вещей, которые вы загружаете или создаете. Это создает границу между системой и пользователем. Эта граница является основой для любой *системы NIX .
Хотя ваш компилятор GCC в настоящее время нестабилен, это не является причиной вашей проблемы. См. Пакет Gentoo -sys -devel/gcc . Проблема заключается в версии sys -libs/glibc . Portage полагает, что у вас установлена версия 2.25 -r11, но ваша хост-система (, отсюда и причина наблюдения 1. Как мне кажется, ваша установка находится внутри системы с другой версией или дистрибутивом linux )содержит и связано с версией 3.4.20. Portage собирает информацию о связывании с хоста, потому что он считает, что ваша хост-система - это система, на которой он установлен сам по себе, как работающая система. См. замечание #1.
См. Несколько библиотек glibc на одном хосте . Короче говоря, у вас есть несколько вариантов:
Удалите вашу установку из вашего домашнего каталога,и Follow the Handbook(arch не имеет значения ), и опустите главу «Настройка загрузчика» вместе с «Завершение установки». Всегда используйте команду chroot
для входа в среду. Создайте пользователя в chroot и su user
каждый раз, когда вы входите в chroot.
Совет :Создайте /home/username/mnt/gentoo
затем используйте процедуру Chrooting, описанную в Gentoo Handbook :Chrooting , указав chroot на /home/username/mnt/gentoo
. После chroot создается граница наблюдения 1. Это заставит portage поверить, что он установлен на собственном хосте, потому что он соблюдает среду chroot.
--prefix
куда-нибудь в свой домашний каталог, а затем поделиться своими программами с другими пользователями, он не будет работать. awk '
{name[$1]++} #Counts how many times each name appear
$3==20{x20[$1]++} #Counts how many times 20 appears in third column
$3==22{x22[$1]++} #Counts how many times 22 appears in third column
END{
for (i in name){
printf "%s %d %d %d\n",i,name[i],x20[i],x22[i]
}
}
' file
Выход:
mike 3 0 0
lawrence 2 0 2
mark 2 1 0
Концепция аналогична ответу @Quasimodo , но с использованием значений 20
и 22
в одном месте, а не в трех, и без жесткого -кодирования значений в именах массивов:
awk '
{ namesCnt[$1]++; pairsCnt[$1,$3]++ }
END {
for (name in namesCnt) {
print name, namesCnt[name], pairsCnt[name,20]+0, pairsCnt[name,22]+0
}
}
' file