с недавнего времени начал пользоваться ключем -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
emerge world -Nue тоже самое что и emerge world -e. Пересоберет весь мир
хотелось бы не
хотелось бы не третить время на пересорку сотен пакетов из каторых реально треуется пересорать только 10-15%(т.к остальные 85-90% просто пересоиратся без особого смысла), но в тоже время треутся проверить состояние АБСОЛТНО всех пакетов (некоторые при определенных условиях тербут пересорку...)
_______________________________________
грех обманывать компиляторы в субботу
ну тогда
ну тогда надо
но здесь
но здесь перекомпиляция пакетов идет на основе 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 некоторые проги конфликтуют - тогда в ебилде дак и пишут - пересобери то-то и то-то.