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
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 некоторые проги конфликтуют - тогда в ебилде дак и пишут - пересобери то-то и то-то.