Что-то никак не могу выполнить bootstrap-2.6.shОпишу подробно что я делаю
1. Распаковываю стейдж.
2. Распаковываю дерево портежей (вместо этого на всякий случай делал emerge sync, но как я и думал разницы никакой)
stage1-x86-2004.1.tar.bz2
portage-20040720.tar.bz2
3. Правлю /etc/make.conf до след. содержания
ACCEPT_KEYWORDS="~x86"
USE="nptl"
4. Создаю /etc/resolv.conf
5. mount -t proc proc /mnt/home/gentoo/proc
6. chroot /mnt/home/gentoo /bin/bash
7. env-update
8. source /etc/profile
9. Размаскировываю linux26-headers:
CODE
#mkdir /etc/portage
#echo sys-kernel/linux26-headers -* x86> /etc/portage/package.keywords
Затем читая доку
http://forums.gentoo.org/viewtopic.php?t=1...&highlight=nptl и посты Selecter понимаю что для bootstrap-2.6.sh нужен linux26-headers, а с распакованным stage установлен linux-headers, потому что если запускать с установленным linux-headers bootstrap-2.6.sh то он вылетит с ошибкой:
CODE

! Error: the virtual/os-headers package conflicts with another package.

! both can't be installed on the same system together.

! Please use 'emerge --pretend' to determine blockers.
Теперь есть несколько вариантов действий:Вариант 1 Удалить linux-headers.
CODE
#emerge -C linux-headers
Затем скачивая пакеты для bootstrap-2.6.sh я вижу что он за собой тянет linux-headers а не linux26-headers, т.е. смысла удалять в принципе не было если его опять же за собой тянет bootstrap-2.6.sh.
Затем можно попытаться установить linux26-headers вручную, но компиляция вылетает с ошибкой
CODE
emerge linux26-headers
Calculating dependencies ...done!
>>> emerge (1 of 2) sys-devel/patch-2.5.9 to /
>>> md5 src_uri;-) patch-2.5.9.tar.gz
>>> Unpacking source...
>>> Unpacking patch-2.5.9.tar.gz to /var/tmp/portage/patch-2.5.9/work
>>> Source unpacked.
~x86
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
checking for i686-pc-linux-gnu-gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... /lib/cpp
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.
make: *** No targets specified and no makefile found. Stop.

!! ERROR: sys-devel/patch-2.5.9 failed.

!! Function src_compile, Line 38, Exitcode 2

!! emake failed
Как видно даже patch не ставится.
Если попробовать выполнить bootstrap-2.6.sh то он тоже не компилится, вылетает сразу же:
CODE
........
libsandbox.c:764: error: `ENOMEM' undeclared (first use in this function)
libsandbox.c:740: warning: unused variable `canonic'
libsandbox.c: In function `filter_path':
libsandbox.c:992: error: `SB_PATH_MAX' undeclared (first use in this function)
libsandbox.c: In function `check_syscall':
libsandbox.c:1182: error: `SB_PATH_MAX' undeclared (first use in this function)
libsandbox.c: In function `before_syscall':
libsandbox.c:1309: error: `ENOENT' undeclared (first use in this function)
libsandbox.c:1336: error: `EACCES' undeclared (first use in this function)
In file included from libsandbox.c:1363:
getcwd.c: In function `__egetcwd':
getcwd.c:296: error: `EINVAL' undeclared (first use in this function)
getcwd.c:300: error: `SB_PATH_MAX' undeclared (first use in this function)
getcwd.c:415: error: `ENOENT' undeclared (first use in this function)
getcwd.c:424: error: `ERANGE' undeclared (first use in this function)
getcwd.c:434: error: `ENOMEM' undeclared (first use in this function)
In file included from libsandbox.c:1363:
getcwd.c: In function `egetcwd':
getcwd.c:501: error: `ENOENT' undeclared (first use in this function)
In file included from libsandbox.c:1364:
canonicalize.c: In function `erealpath':
canonicalize.c:68: error: `EINVAL' undeclared (first use in this function)
canonicalize.c:75: error: `ENOENT' undeclared (first use in this function)
canonicalize.c:133: error: `ENAMETOOLONG' undeclared (first use in this function)
make: *** [libsandbox.o] Error 1

!! ERROR: sys-apps/portage-2.0.50-r9 failed.

!! Function src_compile, Line 62, Exitcode 2

!! (no error message)
Если попробовать поставить linux-headers обратно, то он тоже не будет ставиться из-за patch.
Как мне думается не ставится ни один пакет после удаления linux-headers.
Вариант 2Попробовать неудаляя linux-headers поставить linux26-headers а потом удалить linux-headers.
CODE
#emerge -pv linux26-headers
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[blocks B ] sys-kernel/linux-headers ("virtual/os-headers" from pkg sys-kernel/linux26-headers-2.6.7-r3)
[ebuild N ] sys-devel/patch-2.5.9 -build -static 197 kB
[ebuild N ] sys-kernel/linux26-headers-2.6.7-r3 34,269 kB
Total size of downloads: 34,466 kB
Но как видно это у меня неудаётся т.к. linux-headers заблокирован.
Затем читая доку приведённую по ссылке выше:
http://forums.gentoo.org/viewtopic.php?t=1...&highlight=nptl пробую заменить в файле /etc/make.profile/virtuals строки
CODE
virtual/kernel sys-kernel/linux-headers
virtual/os-headers sys-kernel/linux-headers
на
CODE
virtual/kernel sys-kernel/linux26-headers
virtual/os-headers sys-kernel/linux26-headers
После этих изменений bootstrap-2.6.sh тащит уже не
linux-headers а
linux26-headers.Затем удаляю linux-headers, т.к. поставить linux26-headers тоже неудастся по причине блокировки пакета linux-headers.
Теперь я снова смотрю возможно ли поставить linux26-headers, как видно что можно.
CODE
#emerge -p linux26-headers
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] sys-devel/patch-2.5.9
[ebuild N ] sys-kernel/linux26-headers-2.6.7-r3
Но без linux-headers опять же не ставится ни один пакет.
Может быть стоит поставить linux26-headers неудаляя linux-headers, а потом после успешной установки удалить linux-headers, но как обойти блокировку?
Отредактированоодно небольшое решение обхода блокировки вроде как нашёлCODE
#emerge -p linux26-headers
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] sys-devel/patch-2.5.9
[ebuild N ] sys-kernel/linux26-headers-2.6.7-r3
Ставлю патч
CODE
#emerge patch
Ставлю linux26-headersh с опцией --nodeps : Portage установит только указанные пакеты, игнорируя их зависимости. Если у вас не установлены соответствующие зависимости, компиляция может потерпеть крах.
Чтобы не потерпела компиляция крах я сначала установил patch который нужен для linux26-headers как видно выше.
Теперь linux26-headersh
CODE
#emerge --nodeps linux26-headers
linux26-headers вроде как поставился, затем я удалил linux-headers и выполняю bootstrap-2.6.sh.
Вроде пока как компилит пока нормально.