emerge world -Nuek :: принцип работы и еще пара вопросов... [solved]

с недавнего времени начал пользоваться ключем -k
понаблюдав за ходом работы возникли некоторые непонятки:

я так представляю алгоритм работы ключа:
emerge "пропускает" компиляцию тех пакетов, которые если бы были пересобраны, то откомпилированные файлы АБСОЛЮТНО не изменились бы. Или я что-то не понимаю. ведь emerge world -Nue -практически тоже самое, только он работает на основе состояния пакетов - тоисть смотрит в кэше с какими USE был собран тот или инной пакет, и если в make.conf мы добавили\удалили какой нибудь флаг, следовательно он будут пересобраны те пакеты которых затронуло изменение флагов....

пожалуйста разьясните начинающиму...
быть может комунибудь тоже помогу...

напоследок
вопрос номер раз:

gnote ~ # java-config -l
[ant-core] Java-based build tool similar to 'make' that uses XML configuration files. (/usr/share/ant-core/package.env)
[cyrus-sasl-2] The Cyrus SASL (Simple Authentication and Security Layer) (/usr/share/cyrus-sasl-2/package.env)
[Provided by the active vm] No Description (None)
[libidn] Internationalized Domain Names (IDN) implementation (/usr/share/libidn/package.env)
[Provided by the active vm] No Description (None)
[db-4.2] Berkeley DB (/usr/share/db-4.2/package.env)

это по логике тоже самое что и gcc-config ? ну с gcc понятно, выбираем профиль исходя из архитектуры, а java - из каких соображений нужно выбирать иль я что-то путаю ?

вопрос номер два:

gnote ~ # less /usr/portage/profiles/use.desc | grep -i curl
curl - Adds support for client-side URL transfer library

как этот флаг связан с jpeg ? при выполнении emerge jpeg, емердж возругался на этот curl, я его запретил в мэйк конф и компиляция прошла....
к сожаленью текст ошибки пока не могу предоставить

приогромнейшая благодарность за терпенье и выдержку... :)

1 Дело в том что

1
Дело в том что ключик -e говорит системе, что-бы она делала вид что у тебя нет ниодного установленного пакета. После этого в том что ты привёл теряет смысл всё, кроме k
далее, ключ -k говорит чтобы если возможно (-K по-любому) использовался бинарник (предварительно собранный с помощю ключа -b/-B или скачанный с бинхостов с помощю -g/-G)
маленькие буквы (k/b/g) - использовать при возможности,
большие буквы (K/B/G) - использовать только этот вариант
-N это переставлять пакет, тока если USE-флаги поменялись (-N подразумеваети -u)
есть ещё и
-D учитывать зависимости зависимостей

2
java-config - это инструмент использующийся для конфигурации Виртуальных Машин Java

1 я веду к тому:

1
я веду к тому: что к примеру мы скомпилировали php под архитектуру i386, а apache под архитектуру i686. Поидее emerge world -Nue не затронет ничего, т.к. USE мы не меняли, а по моим соображениям world -Nuek должен пропустить все пакеты кроме php..... так ли это ?

2
а по подробнее, какие настройки здесь можно выполнить ?

Re: 1

raskapulk написал(а):
1
я веду к тому: что к примеру мы скомпилировали php под архитектуру i386, а apache под архитектуру i686. Поидее emerge world -Nue не затронет ничего, т.к. USE мы не меняли, а по моим соображениям world -Nuek должен пропустить все пакеты кроме php..... так ли это ?

2
а по подробнее, какие настройки здесь можно выполнить ?

emerge world -Nue тоже самое что и emerge world -e. Пересоберет весь мир

хотелось бы не

хотелось бы не третить время на пересорку сотен пакетов из каторых реально треуется пересорать только 10-15%(т.к остальные 85-90% просто пересоиратся без особого смысла), но в тоже время треутся проверить состояние АБСОЛТНО всех пакетов (некоторые при определенных условиях тербут пересорку...)

ну тогда

ну тогда надо

emerge -uND world

но здесь

но здесь перекомпиляция пакетов идет на основе USE флагов... тоисть добавили nls в make.conf и перекомпилируются все пакеты, которым "полезен" nls.

мне хотелось бы реализовать такую зависимость(возвращаюсь к предыдущиму топику):
я веду к тому: что к примеру мы скомпилировали php под архитектуру i386, а apache под архитектуру i686. Поидее emerge world -Nue не затронет ничего, т.к. USE мы не меняли, а по моим соображениям world -Nuek должен пропустить все пакеты кроме php..... так ли это ?

нет!вот скажи

нет!

вот скажи ты мой ответ вообше читал?

во первых - если ты поменял i386 на i686, то всю систему пересобирать надо по любому

во воторых если есть ключ -e то пересобируться ВСЕ пакеты независимо ни от чего, если есть -К то будет сделана попытка установки из бинарников - если их нет, emerge умрёт.
Бинари можно делать самому добавив -b он и установит пакет, и бинарник скинет в $PKGDIR
скажи а зачем "на лету" менять компилятор?

P.S. На сколько я знаю - emerge ничего не знает о архитектуре на какой был собран пакет - и её никак не учитывает.

что я и хотел

что я и хотел услышать =) а ответы я внимательно читаю(практически всегда =) ...когда высплюсь)

т.к. я начинающий гентушник, тонкости постигаются постепенно.... узнал о том, что лучше сменить архитектуру -сменил, а зачем ради этого заново с нуля ставить систему ?
кстати как узнать что лежит в переменной $PKGDIR ?

1 а зачем тогда

1 а зачем тогда ты вообще её менял? Пока не перекомпилиш - изменений небудет(у не перекомпиленых пакетов естесс-но)

2 помотреть чем-нить что там лежит

ищешь в /var/db/pkg/

ищешь в /var/db/pkg/ файлы CFLAGS, там флаги прописаны с которыми собирался пакет

вот, наконец то

вот, наконец то получил ответ на свой вопрос...

следовательно подводя итог:
если я правильно понял, то в случае если целевой пакет собран со "своими" параметрами, одна из его зависимостей собрана со "соими" параметрами. и если зависимый пакет пересобрать с параметрами отличными от тех, с которыми он собирался при сборке целевого пакета, то целевому пакету пофигу, то что одна из его зависимостей была пересобрана с измененными параметрами....
вроде понятно написал =)

теперь вопрос правильно это или нет ? я имею введу всякие конфликты... совместимости и прочее...

без этого

без этого всёравно никак, т.к. бинарные проги всёравно под I386 собраны, просто непонятно, если поменял флаги - и не пересобрал, то ничего не поменялось зачем тогда менять?
ну со временем при регулярных апдейтах оно пересоберётся...

PS некоторые проги конфликтуют - тогда в ебилде дак и пишут - пересобери то-то и то-то.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".