Помощь - Поиск - Участники - Календарь
Полная версия: bootstrap-2.6.sh
LinuxForum > Дистрибутивы > Gentoo
deisler
bootstrap-2.6.sh
Обнаружил такой файлик в портежах, и не знаю стоит ли с ним собирать систему если будет стоять ядро 2.6.х. Какие у него преимущества и есть ли смысл его использовать?
И не хочет ли оно использования какого-нибудь спецефического ядра?
Selecter
По идее, bootstrap-2.6.sh отличается от bootstrap.sh только тем, что там идёт сборка с linux-headers для ядер ветки 2.6 со всеми вкусностями, как NPTL (в USE флаг добавь nptl). Если собираешься использовать ядра 2.6, то собирай stage1 с помощью bootstrap-2.6.sh

А никаких специальных ядер не требует, хочешь поставь ванильное 2.6.
deisler
Но я так понимаю придётся ставить unstable?
Selecter
Ну да, gentoo всё ещё считает ядро 2.6 нестабильным. Хотя продвижения уже на лицо smile.gif Совсем недавно создали в portage ответвление linux26-headers.

Сам использую 2.6.7 linux-headers - вполне стабильно (для моей машины). Несколько багов сообщил: не собирались sox, ffmpeg, xfree. Всё пофиксили.

---------

the 2.6 linux-headers have moved to linux26-headers. there is a linux-headers-2.6.99 ebuild to aid migration, it simply installs the latest keyworded version of linux26-headers.

the reasoning behind this change is that 2.4 kernel users probably dont want 2.6 headers installed, and having them can even break their systems in subtle ways. this has prevented a keyword from being added to the 2.6 header ebuilds, even though 2.6 has been the stable kernel for a bit now. with the ebuilds in linux26-headers, they can be keyworded appropriately without breaking things for 2.4 kernel users.
deisler
Стал ставить с nptl и bootstrap-2.6.sh В USE указал флаг nptl. ACCEPT_KEYWORDS="~x86". Вылетает с ошибкой:

CODE

......
<<<        dir /usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.2
<<<        dir /usr/lib/gcc-lib/i386-pc-linux-gnu
<<<        dir /usr/i386-pc-linux-gnu/gcc-bin/3.3
<<<        dir /usr/i386-pc-linux-gnu/gcc-bin
<<<        dir /usr/i386-pc-linux-gnu
--- !empty dir /usr/share/gcc-data
--- !empty dir /usr/share
--- !empty dir /usr/lib/gcc-lib
--- !empty dir /usr/lib
--- !empty dir /usr/bin
--- !empty dir /usr
--- !empty dir /sbin
--- !empty dir /lib/rcscripts/awk
--- !empty dir /lib/rcscripts
--- !empty dir /lib
--- !empty dir /etc/env.d/gcc
--- !empty dir /etc/env.d
--- !empty dir /etc
~x86

* GNU info directory index is up-to-date.
Calculating dependencies ...done!

excl.gif!! Error: the virtual/os-headers package conflicts with another package.
excl.gif!!        both can't be installed on the same system together.
excl.gif!!        Please use 'emerge --pretend' to determine blockers.

# emerge -pv virtual/os-headers

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] sys-devel/patch-2.5.9  -build -static  0 kB
[ebuild   R   ] sys-kernel/linux-headers-2.4.22   0 kB


Так и не смог понять в чём дело.
Selecter
Ты сделал emerge sync перед тем, как делать bootstrap?

CODE
grep headers /usr/portage/scripts/bootstrap-2.6.sh
       # have proper linux headers ...
          [ -z "`portageq best_visible / '>=sys-kernel/linux26-headers-2.6.0'`" ]
               eerror "You need to have >=sys-kernel/linux26-headers-2.6.0 unmasked!"
               eerror "Please edit the latest >=sys-kernel/linux26-headers-2.6.0 package,"
myVOS_HEADERS=`cat ${MYPROFILEDIR}/virtuals | grep -v '^#' | grep virtual/os-headers | awk '{print $2}'`
deisler
QUOTE(Selecter @ Wednesday, 21 July 2004, 14:44)
Ты сделал emerge sync перед тем, как делать bootstrap?

CODE
grep headers /usr/portage/scripts/bootstrap-2.6.sh        # have proper linux headers ...           [ -z "`portageq best_visible / '>=sys-kernel/linux26-headers-2.6.0'`" ]                eerror "You need to have >=sys-kernel/linux26-headers-2.6.0 unmasked!"                eerror "Please edit the latest >=sys-kernel/linux26-headers-2.6.0 package,"myVOS_HEADERS=`cat ${MYPROFILEDIR}/virtuals | grep -v '^#' | grep virtual/os-headers | awk '{print $2}'`

*


Я скачал дерево портежей в архиве и распаковал. Думаю разницы никакой.
Selecter
Тебе нужны linux26-headers в любом случае... Сделай emerge -C linux-headers
unix_man
QUOTE
localhost portage # scripts/bootstrap-2.6.sh

Gentoo Linux; http://www.gentoo.org/
Copyright 1999-2004 Gentoo Technologies, Inc.; Distributed under the GPL
Starting Bootstrap of base system ...

Invalid or unset record 'packages' in mtimedb.
Invalid or unset record 'eclass' in mtimedb.
Deleting invalid mtimedb key: ldpath

* You need to have >=sys-kernel/linux26-headers-2.6.0 unmasked!
* Please edit the latest >=sys-kernel/linux26-headers-2.6.0 package,
* and add your ARCH to KEYWORDS.

Что нетак?
deisler
unix_man
выполнить:
CODE
#mkdir /etc/portage
#echo sys-kernel/linux26-headers -* x86> /etc/portage/package.keywords
unix_man
Спасибexcl.gif процесс пошел smile.gif
deisler
Что-то никак не могу выполнить 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

excl.gif! Error: the virtual/os-headers package conflicts with another package.
excl.gif!        both can't be installed on the same system together.
excl.gif!        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.

excl.gif!! ERROR: sys-devel/patch-2.5.9 failed.
excl.gif!! Function src_compile, Line 38, Exitcode 2
excl.gif!! 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

excl.gif!! ERROR: sys-apps/portage-2.0.50-r9 failed.
excl.gif!! Function src_compile, Line 62, Exitcode 2
excl.gif!! (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.
Вроде пока как компилит пока нормально.
Selecter
Пока не прочёл твой последний пост. Узнал, что на западе тоже столкнулись с этой проблемой smile.gif http://forums.gentoo.org/viewtopic.php?p=1347442#1347442
unix_man
У меня пока такаяже хреньexcl.gif
Selecter
linux26-headers появились недавно, вот и получилось, что нестыковочка появилась =) Грязный хак хотя должен сработать.
deisler
Пока компилится нормально, если всё будет ок, напишу полно и подробно как надо ставить.
unix_man
Былобы круто thumbsup.gif
Mitya-ncc
Я уж давно ставил и сразу делал bootstrap-2.6 smile.gif
Помнится я какой-то ebuild правил, чтоб всё поставилось.
Какой, к сожалению, не помню.
ValKov
Mitya-ncc писал:

QUOTE
Помнится я какой-то ebuild правил, чтоб всё поставилось.
Какой, к сожалению, не помню.


Наверное этот:
/usr/portage/sys-kernel/linux26-headers/linux26-headers-2.6.7-r3.ebuild (это сейчас, а несколько ранее): /usr/portage/sys-kernel/linux-headers/linux-headers-2.6.5.ebuild например. И надо было изменить KEYWORDS="-*" на KEYWORDS="-* x86" и предварительно добавив USE флаг nptl в /etc/make.conf можно было приступать к /usr/portage/scripts/bootstrap-2.6.sh
deisler
Сейчас же в /usr/portage/sys-kernel/linux26-headers/linux26-headers-2.6.7-r3.ebuild значения по умолчанию такие:
KEYWORDS="-* ~x86 ~ppc ~arm ~hppa"
но это не спасает ситуацию.
deisler
Установка Gentoo 2004.1 с bootstrap-2.6.sh + NPTL

1 Загрузитесь с LiveCD и выберете тип загрузки smp.

CODE
boot: smp

Либо если вы устанавливаете Gentoo из другого дистрибутива Linux, у него должно быть загружено ядро 2.6.5 или выше.

2 Создайте разделы, примонтируйте корневой в любой удобный для вас каталог и скопируйте и распакуйте туда stage1 с вашего LiveCD.

CODE
# tar -xvjpf stage?-*.tar.bz2

Затем скачайте с любого зеркала дерево портежей:

CODE
# wget -c http://mirror.gentoo.ru/pub/mirror/gentoo/snapshots/portage-20040720.tar.bz2

и распакуйте

CODE
# tar -xvjf portage-.20040720.tar.bz2 -C /mnt/gentoo/usr

или выполните

CODE
# emerge sync

3 Отредактируйте /etc/make.conf до следующего содержания:

CODE
ACCEPT_KEYWORDS="~x86" ## Этот параметр по желанию. Включение его будет означать unstable установку. ##Невключение - stable.
USE="nptl"

4 Поменяйте ваш корневой каталог

CODE
# mount -t proc proc /mnt/gentoo/proc
# chroot /mnt/gentoo /bin/bash
# env-update
# source /etc/profile

5 Размаскируйте linux26-headers (при stable установке)

CODE
# mkdir /etc/portage
# echo sys-kernel/linux26-headers -* x86> /etc/portage/package.keywords

6 Для установки из bootstrap-2.6.sh вам нужен linux26-headers. По умолчанию уже установлен linux-headers. Если сейчас запустить bootstrap-2.6.sh то он потом вывалится с ошибкой о конфликте версий linux-headers. Сам bootstrap-2.6.sh тянет за собой linux-headers а не linux26-headers.
Замените в файле /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 будет тянуть linux26-headers.

7 Теперь надо установить linux26-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  

# emerge patch

# emerge --nodeps linux26-headers

# emerge unmerge linux-headers

8 Теперь сам bootstrap-2.6.sh

CODE
# cd /usr/portage

# scripts/bootstrap-2.6.sh

А дальше по Gentoo Linux/x86 Handbook
unix_man
# emerge patch
QUOTE
make: *** [config.status] Error 77

!!! ERROR: sys-devel/patch-2.5.9 failed.
!!! Function src_compile, Line 38, Exitcode 2
!!! emake failed


Вот что получается. mad.gif
Selecter
QUOTE(unix_man @ Friday, 23 July 2004, 17:28)
# emerge patch
QUOTE
make: *** [config.status] Error 77

!!! ERROR: sys-devel/patch-2.5.9 failed.
!!! Function src_compile, Line 38, Exitcode 2
!!! emake failed


Вот что получается. mad.gif
*



Мало информации. Что до этого было???
unix_man
Ладно это проехали. После запуска scripts/bootstrap-2.6.sh вылетает ошибка (3раза уже)
QUOTE
make[2]: Leaving directory `/var/tmp/portage/groff-1.19/work/groff-1.19/contrib/mom'
make[2]: Entering directory `/var/tmp/portage/groff-1.19/work/groff-1.19/doc'
makeinfo -I/var/tmp/portage/groff-1.19/work/groff-1.19/doc /var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:846: Multiline command @group used improperly.
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:852: Непарная `@end'.
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:852: Непарная `@end'.
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:856: Multiline command
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:2202: Непарная `@end'.
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:2205: Multiline command @maindex used improperly.
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:2209: Непарная `@end'.
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:2241: Multiline command @maindex used improperly.
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:2243: Непарная `@end'.
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:2246: Multiline command @maindex used improperly.
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:2250: Непарная `@end'.
/var/tmp/portage/groff-1.19/work/groff-1.19/doc/groff.texinfo:2253: Multiline command @maindex used improperly.
Слишком много ошибок! Остановка.
make[2]: *** [groff] Error 1
make[2]: Leaving directory `/var/tmp/portage/groff-1.19/work/groff-1.19/doc'
make[1]: *** [doc] Error 2
make[1]: Leaving directory `/var/tmp/portage/groff-1.19/work/groff-1.19'
make: *** [all] Error 2

!!! ERROR: sys-apps/groff-1.19 failed.
!!! Function src_compile, Line 86, Exitcode 2
!!! (no error message)
Если что-то еще надо для анализа проблемы пишите!!!
Mitya-ncc
QUOTE(ValKov @ Friday, 23 July 2004, 6:43)
Mitya-ncc писал:

QUOTE
Помнится я какой-то ebuild правил, чтоб всё поставилось.
Какой, к сожалению, не помню.


Наверное этот:
/usr/portage/sys-kernel/linux26-headers/linux26-headers-2.6.7-r3.ebuild (это сейчас, а несколько ранее): /usr/portage/sys-kernel/linux-headers/linux-headers-2.6.5.ebuild например. И надо было изменить KEYWORDS="-*" на KEYWORDS="-* x86" и предварительно добавив USE флаг nptl в /etc/make.conf можно было приступать к /usr/portage/scripts/bootstrap-2.6.sh
*


Точно. Второй вариант с linux-headers-2.6.х
Так и делал. Всё было на УРА!
Selecter
unix_man
Не знаю. Наверное эта ошибка связана с предыдущей ошибкой сборки gcc. Сообщи об ошибке в bugzilla.gentoo.org.

P.S Русский на английский замени.
unix_man
Ура!!! Кажись проблема решена...
Закоментировал вот эту строчку: ACCEPT_KEYWORDS="~x86" после этого scripts/bootstrap-2.6.sh прошел без единой ошибки ! emerge system уже 34 of 57 пока тоже без ошибок.

Mitya-ncc
Я бы эту строчку посоветовал навсегда закомментировать.
А в .bashrc для удобства написать
CODE
alias AK="ACCEPT_KEYWORDS="~x86""

wink.gif
deisler
Кстати вопрос к тем кто ставит с bootstrap-2.6.sh в Gentoo 2004.2 исправили этот баг?
Selecter
QUOTE(deisler @ Monday, 26 July 2004, 13:51)
Кстати вопрос к тем кто ставит с bootstrap-2.6.sh в Gentoo 2004.2 исправили этот баг?
*



Нет... До сих пор ставятся linux-headers, а не 26
GemoRой
спосибо deisler за подробное описание установки , пробовал на 2004.2 все ок
v0iD
Два дня назад собирал генту по новой. bootstrap-2.6.sh уже нету, есть только bootstrap.sh и bootstrap-macos.sh. Но по-умолчанию он всеравно тянет linux-headers...
Так что статья deisler'a еще актуальна wink.gif
Zhic
Эх..... сколько проблем. а всего то надо было не только nptl добавить а еще nptlonly.....
Kotjara
QUOTE
Эх..... сколько проблем. а всего то надо было не только nptl добавить а еще nptlonly.....

Это если ~x86. А для x86 достаточно nptl (во всяком случае так было 3 месяца назад)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2005 Invision Power Services, Inc.