Несколько не совсем очевидных вопросов по установке...
Доброго времени суток!
Не могу понять несколько вещей...
1. Есть ли смысл ставить систему со stage1? Слышал, что после установки со stage3 и тотальной пересборки получаем то же самое?
2. Как бы stage3 то более пухлый... Если я изменяю USE флаги под себя после бутстраппинга в stage1 и делаю то же самое в stage3, то после тотальной пересборки я получу абсолютно идентичные системы?
3. А где бы найти полный список пакетов, которые присутствуют в stage1 и stage3?
4. А что будет, если я прибью все USE-флаги в stage1, включая те, что предопределены в профиле, то будет ли система рабочей (в намек на то, что существую флаги, например, cli, которые не описаны в use.desc, да и есть пара флагов, которые минусовать в make.conf не получается).
5. А можно как-нибудь создать свой профиль? Или придется принимать угрызения совести при виде кучи минусованных флагов в make.conf? Где можно почитать про создание своего профиля?
6. Есть идея установить компилятор из unstable ветки, поскольку тот поддерживает SSE4.1. Установить догадался как. А компилировал ли он при этом сам себя (учитывая, что по умолчанию все равно остался старый)? Что он еще компилировал (пересобирались glibc и что-то еще, но опять же какой версией)? Что нужно сделать, чтобы НОВЫМ компилятором пересобрать АБСОЛЮТНО ВСЕ, что есть?
7. Генеральный вопрос, или зачем обычно делают связку emerge -e system, а затем emerge -e world? Мне понятно, какие пакеты включаются в world, а включены ли в system пакеты из world? Не получается ли дублирование при последовательной пересборке system и world?
Заранее огромное спасибо!
- Для комментирования войдите или зарегистрируйтесь
Чёт многа -)))
1. Нет, нет.
2. Нет. Кроме того, при сборки со stage USE игнорируются, вместо неё используется что-то вроде STAEG1_USE из профиля. Идентичности не будет, т.к. систему ещё нужно будет прилично почистить. Собранная таким образом stage3 может оказаться на 10-30Мб пухлее.
3. Эта информация зашита в профилях.
5. Да, можно. Только на базе имеющегося. См. Gentoo Handbook.
6. Вот сильно не советую юзать unstable и tested. Ни glibc, ни gcc. Если юзать tested, то всегда быть готовым решать тяжёлые заскоки ручками и головой. Инструкции по смене gcc - на сайте gentoo. Пересобирать всё, как обычно, см. handbook.
7. Всё зависит от опций пересборки - man emerge.
1 и 2. Тогда тем
1 и 2. Тогда тем более есть смысл, так как появляются лишнии вещи в системе, а это не очень хорошо. Вообще, я не про бутстраппинг. Я про сборку после бутстраппинга, там USE учитываться должны. То есть, stage1 + bootstrap + сборка system =/= stage3?
3. Я понимаю. Вопрос то как раз и стоит в том, чтобы ее надыбать.
5. Да нет же! Не нашел я этого там! Меня интересует информация о том, как создать свой профиль, а не сменить его.
6. Хмм.. А SSE4.1? Много ли я при этом потеряю? Да и есть возможность указать march=core2, по идее должно сказаться на производительности.
>> Если юзать tested, то всегда быть готовым решать тяжёлые заскоки ручками и головой.
А есть реальный опыт работы с подобного рода проблемами? Или это предостережение, как догма распространяющаяся среди гентушников?
6.1. Вот хоть убей, а нигде не могу найти, чтобы было четко написано что-то вроде "чтобы пересобрать ВСЮ систему введите это и это". Есть задача пересобрать именно все, что есть, и я пока не знаю как ее решить.
7. Это я читал. Много опций, местами какие-то противоречивые... Не понятно, как аффектить сразу на все. Включая toolchain.
5. Зачем нужен
5. Зачем нужен новый профиль? Почему не хватает прописывания в make.conf?
Э-э-э... Всё просто: если с новым пакетом будут проблемы, то они все твои, в полном объёме.
Пожалуйста, не описывайте своё железо в подписи
Есть другой способ?
А как мне влиять на список ПО, устанавливаемого по умолчанию, если я хочу его почистить? См. пост ниже, нужно получить самый минимум пакетов.
Это не дело
Это не дело профиля, насколько я понимаю.
Пожалуйста, не описывайте своё железо в подписи
Не берусь
Не берусь сказать как есть на самом деле. Но смею предположить, что именно от профиля и зависит список устанавливаемых по умолчанию пакетов (выбирая разные профили, например server и desktop на x86 получаем разные системы). Хотя бы на основании того, что существует блокировка удаления пакета профилем.
Совершенно в точку
Совершенно в точку... Выбираешь профиль, настраиваешь make.conf и для полного удовольствия package.use (по каждому пакету!!!)...перекомпиливаешь и получаешь максимально чистую и оптимизированную систему.
Это будет твой, совершенно новый профиль, который в корне будет отличаться от дефолтного.
_________________________________________________________
Прежде чем задать вопрос, подумай, сможешь ли ты понять ответ.
?
Хочется услышать мнение тех людей, которые работают конкретно с последней версией на текущий момент (4.3.1 или 4.3.2). Сталкиваются ли они реально с чем-нибудь подобным?
Исповедь пропащего юзверя =)))
> А есть реальный опыт работы с подобного рода проблемами? Или это предостережение, как догма распространяющаяся среди гентушников?
Все перечисленные вопросы мучили меня несколько месяцев назад, когда пересобирался с 10-ок раз по-новой, проводя тесты и эксперименты на новейшем железе. Хотя до этого 2 года работал на стабильной генте без частых обновлений. Отсюда и сделал такие выводы. Точнее вывод такой: хендбук - наше ффсё, и от него - ни на шаг! ;) Или вы Gentoo Developer?
По 1-2. Не выходит эквивалентного стейджа. Даже при использовании catalyst-а. И уж тем более нет смысла, ибо времени занимает немыслимо. Лучше взять готовый третий стейдж, настроить USE и пересобрать необходимое, сначала всё же выполнив инструкции в Gentoo Handbook.
3. Да список-то наверное одинаковый. Просто stage1 - это статически слинкованные либы и минимальная система, список берётся из профиля, см. скрипты chroot-инга в каталисте, как оно это делает. stage2 после бутсрапа - примерно тоже, что и stage1, но в нём уже динамическая линковка и минимальный независимый тульчейн. См. также разницу между emerge -Ep system и emerge -Ep world.
5. USE="-* ..." - в make.conf, вообще свой make.conf + всё, что в /etc/portage - это и есть только ваш локальный профиль, больше ни чей. Подробности в самом конце man portage, man emerge.
6. core2 и native? Я тоже так думал! :) Оказалось, что gcc-4.3.1 тянет glibc-2.8.X, а вот с ней пришлось вручную размаскировывать около 50 пакетов на стабильной ветке. Из-за разницы в заголовочных файлах с glibc-2.6, приходилось нарываться на периодическое исчезновение части хидеров, без которых даже ядра не собрать. Так что не сильно потеряете. ;) Тогда уж лучше сразу ACCEPT_KEYWORDS=~..., что здесь и делают многие каскадёры, вот только... вы - каскадёр? Любите ежедневно обновляться? А хотите при этом быть спокойным? Одним словом, не советую.
6.1 eix-sync; emerge -vauDN world; emerge -a --depclean; revdep-rebuild && revdep-rebuild; Вот только нужно смотреть, что обновляется, т.к. это весьма в общих чертах. Иногда там всякие gcc-config/java-config сначала или python-updater и т.п. Ну и dispatch-conf, source /etc/profile под конец не забывать. Короче всё, как в хендбуке и в info-секции после установки каждого пакета. Поставьте elogv, чтобы это отслеживать.
7. :o Значит снова читать и перечитывать!... ;)
Спасибо, друг!
Спасибо, друг! Ты открыл мне глаза!
6-ой вопрос
6-ой вопрос частичто отвечает на 7-ой :)
Делают сначала "emerge -e system" для того, чтобы быть уверенным, что все пакеты пересоберуться новым компилятором. Если компилятор не менялся, то, как правило, нет причин этого делать.
Опять же по №6 - если новый компилятор был просто установлен, ни он, ни кто другой компилироваться им не будет по умолчанию. Надо пеключать систему на новую версию через gcc-config (лучше поищи инфу по этой теме отдельно).
Смысла ставить со stage1 нет, если ты не собираешь встраиваемую систему. Полюбому инсталяция генту не меньше пары гигов выйдет с нужными программами, какой смысл в сэкономленных 10-ти метрах на диске? (при значительно большем затраченном времени и нервах..).
6-ой вопрос
Слышал, что при таком раскладе что-то все равно не перекомпилируется.
Резюмируя все вышесказанное.
Задача ставится так - есть процессор Core 2 Quad. Нужно выжать из него все возможности. То-есть требуется включить march=core2 и -msse4.1, что есть в gcc 4.3.x, да вот в 2008.0 только 4.1, которые это не поддерживает. Поэтому я думаю, как осуществить это при том, что требуется получить МИНИМАЛЬНУЮ работоспособную систему с САМЫМ МИНИМАЛЬНЫМ количеством установленного. Плюс к этому, с МИНИМАЛЬНЫМ набором USE-флагов. Проще говоря, все что нужно и ничего лишнего. Никто не загонялся таким? Вот и ломаю голову, как такое осуществить... Вернее в какой последовательности что делать и как будет правильно... Думаю будет лучше, если меня закидают ссылками и комментами к ним, что-то вроде "сначала делаешь это, потом прерываешься тут и делаешь кусок из этого" и так далее. На основе этого всеобщего знания, в принципе, можно будет создать руководство по минимальной установке генту.
Ставишь из stage3,
Ставишь из stage3, размаскировываешь gcc:4.3, пересобираешь систему.
Пожалуйста, не описывайте своё железо в подписи
На текущий
На текущий момент я так и сделал. Вроде бы, ничего плохого не произошло. Только не устраивает несколько вещей.
1. В системе есть лишние пакеты, которые мне не нужны. Хочу иметь минимум и ставить только то, что мне нужно.
2. Угнетает мысль, что делая тоже самое из stage1 я бы получил систему почище.
3. USE-флагов неприлично много, существует какой то бред вроде berkdb, накой х она мне, есть неописанные флаги, например, cli, есть два неудаляемых флага, не помню правда какие. Грязно в общем. Не ясно, что откуда берется.
4. Нет твердой уверенности в том, что я пересобрал всю систему. Где-то написано, что emerge -e system действует на все. Где-то не действует на toolchain. Где то еще что-то не затрагивает...
1. Точно лишние?
1. Точно лишние? Какие, например? Ну и удалить их, всего делов-то.
2. Что значит "почище"?
3. Что значит "много USE-флагов"? Список в use.desc слишком длинен?
4.
emerge -e system
абсолютно точно не действует на всё.Читайте доки, они рулез.
Пожалуйста, не описывайте своё железо в подписи
1. Это
1. Это философия. Все то, без чего система может работать, не входит в понятие "минимальный".
2. То и значит. Что при установке из stage1 систему меньше, чем при установке из stage3. Если это так, то stage3 явно перебрала с калориями :-). Образно говоря, не хочется разбираться, что она такое съела. Нужно от этих калорий избавляться.
3. Значит, что по умолчанию включено довольно много. Причем, не все описано в use.desc, что то нельзя убить установками в make.conf.
4. Кто-нибудь напишет команду, как обновить все??? Или будет отправлять к докам без ссылок, что по крайней мере неприлично. Я не впервые ставлю Gentoo и не первый день с ним работаю, но нет понимания в некоторых вещах. И не потому, что я не умею читать документацию. А потому, что в разных источниках встречаются немного отличающиеся сведения. Либо четкого описания нет. Поэтому и спрашиваю.
1. Система
1. Система ядро+busybox уже может работать
2. Это демагогия и остатки виндовозного образа мышления.
3. Ну выключите их и всё! Что мешает забить make.conf выключением всех подряд флагов?
4. Не знаю, чего непонятного в отсылке к man portage/emerge, но если уж так угодно, то
# emerge --depclean && emerge --empty-tree world
Вообще дурацкая какая-то ветка. "Я хочу собрать систему, которая ничего не может, но уместится в 100 Мб на диске".
Пожалуйста, не описывайте своё железо в подписи
> Ну выключите
> Ну выключите их и всё! Что мешает забить make.conf выключением всех подряд флагов?
USE="-* и тут ваши флаги", а дефолтный профиль отдыхает
Если бы!
Дык не все то они выключабельны! :-) А если серьезно, то я уже, в принципе, уяснил из этой темы для себя все, что хотел.
Вбей в тему "РЕШЕНО"
_________________________________________________________
Прежде чем задать вопрос, подумай, сможешь ли ты понять ответ.
Рано еще. О
Рано еще. О правилах поведения на форуме осведомлен.
Quote: Дык не все
о-8Е
Это какие, например?
Пожалуйста, не описывайте своё железо в подписи
Напомнили внизу...
multilib
Не дурацкая
Ты не прав :-). Используя минимальный базис и наращивая его в зависимости от своих нужд ты получаешь систему, которая лишена чего-либо лишнего. Это если с филосовской точки зрения. Если с практической, то я понял, что смысла в этом мало. До тех пор, пока все организовано так, как оно есть. Все равно, что идти против системы. Во всех смыслах :-).
атп
Это с очень "филосовской". На деле ты хочешь взять систему, кастрировать до уровня "едва может загрузиться", после чего придётся всё равно пересобрать три четверти системы, чтобы ей стало можно пользоваться
Пожалуйста, не описывайте своё железо в подписи
Для
Для минимизации мона юзать uclibc/klibc вместо glibc, флаг minimal, отказаться от multilib, etc... но зачем???
полгода назад я
полгода назад я заморачивался той же новящевой идеей: выжать из компа ВСЁ! потратил 2 месяца, извел все нервы с нестабильной веткой, 1-й стадией и прочим бредом, даже тратил ночи и дни на сборку пакетов с Цфлагом -O3 и кажется достиг чего хотел, но представьте моё разочарование, когда неделю назад я собрал еще один комп примерно такой-же конфигурации, накатил на него gentoo из 3 стадии с почти дефолтными настройками и обнаружил что разница в производительности на столько минимальна, что то потраченное время обсалютно не стоило этих жалких 5-10% быстродействия :) Единственное что могу посоветовать - не забивать моск глупостями (если конечно это не спортивный интерес ;-) )
P.S. После такого открытия я полюбил спать по ночам и логи неудавшейся сборки мне больше не снятся =)