LINUX.ORG.RU

Избежать конфликтов USE

 , ,


0

2

Я новичек в Gentoo и не до конца понимаю глубокую философию портажа. При установки системы (пару месяцев назад) я решил сразу задать переменную USE в файле make.conf - вот так: http://bpaste.net/show/163616/ . Я просто просмотрел все глобальные USE флаги и поверхностно выбрал те, которые, возможно, мне нужны. Однако при обновлении/установке новых пакетов постоянно всплывают конфликты USE и приходится делать

USE="..." emerge --ask ...
Таким образом становится практически невозможным обновленить ВСЁ через
emerge --update --deep --ask @world 
Сразу начинают всплывать конфликты USEов. Хотелось бы узнать самый Ъ способ задать нужные USEы и избежать конфликты; обеспечить удобное обновление системы и установку новых пакетов. Что должно быть в make.conf, а что задавать через локальный USE?

Я просто просмотрел все глобальные USE флаги и поверхностно выбрал те, которые, возможно, мне нужны

Глупость. Для начала достаточно всего двух трех, а-ля «qt4 -gtk» и типа того. Остальное допишется походу дела. Читай хэндбук, в общем.

Zhbert ★★★★★
()

Выбираешь нужный профиль через eselect profile list.
В файле /etc/portage/package.use задаешь флаги отдельно для каждого пакета.
На make.conf можно забить.

TDrive ★★★★★
()

самый Ъ способ задать нужные USEы

package.use

и избежать конфликты

debian, etc

обеспечить удобное обновление системы и установку новых пакетов

--autounmask-write, debian, etc

Что должно быть в make.conf

USE="-*" и минимум самых общих, ибо один и тот же юз часто значит совсем разные вещи для разных ебилдов.

а что задавать через локальный USE?

Всё остальное.

anonymous
()

[code] USE="..." emerge --ask ...[/code]

Никогда так больше не делай при установке пакета. Это для других целей.

Флаги для устанавливаемых пакетов прописываются в /etc/portage/package.use. Формат записи найдешь в хэндбуке. Флаги которые пакеты требуют (по зависимостям) записывать туда же! (с указанием кто что потянул).

Для удобства можешь использовать emerge -av program --autounmask-write. эта команда запишет сама все что нужно package.use. Но, лучше все же делать это ручками.

zekka
()

Поправь make.conf. Оставь не более 10 флагов. У меня как-то так:

USE="X udev dbus -gnome -kde -minimal gtk bash-completion -ipv6 unicode startup-notification"

zekka
()
Ответ на: комментарий от zekka

хмм.. а если 30 с плюсами/минусами?? убрать все {kde,qt}-шное и т.д и т.п
у мну к примеру X в make забит
и в лок.юзах примерно 3-4 пакета с -Х

или -slang в make и в лок. mc +slang стоит..

двумя-тремями не ограничишься.. есть же юзы, которые либо не нужны, либо нужны многим пакетам, но по деф. отключены

TODD ★★
()
Ответ на: комментарий от TODD

10 флагов - это не как нужно делать всем гентушникам. Это то, что лучше всего сделать топикстартеру. Ты посмотри на его мэйк.конф и ужаснись.

А когда опыт есть - делать лучше как тебе удобно. У меня у самого солянка еще та..

zekka
()
Ответ на: комментарий от zekka

)) у самого раньше солянка была, но после чистки в более-менее нормальный вид привел

TODD ★★
()
Ответ на: комментарий от anonymous

USE="-*"

Не делайте так, пожалуйста. Систему собранная с USE="-*" с натяжкой можно назвать рабочей. По крайней мере современный десктоп без глобальных USE=«nls» и USE=«unicode»(если мы говорим о десктопе НЕ-англоязычного пользователя, конечно) - это мрак и адЪ.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Систему собранная с USE="-*" с натяжкой можно назвать рабочей.

4.2

По крайней мере современный десктоп без глобальных USE=«nls

Как относится локаль к «современному десктопу»? Ещё я написал «и минимум самых общих». А что ты тогда LINGUAS=«ru» забыл? Нормальный пользователь включит nls селективно, тк часто перевод просто ужасен.

USE=«unicode»

Ты рассказываешь, что майнтейнер генты, а не понимаешь базовых вещей — загляни в ебилды пакетов с этим юзом, и смотри, что он на самом деле значит. У меня ни на одном пакете не стоит unicode, но юникод работает везде, в системе, полной десктопного софта и kde.

USE="-*" очень желательно, тк отключается куча ненужного и ускоряется сборка.

anonymous
()
Ответ на: комментарий от anonymous

Как относится локаль к «современному десктопу»? Ещё я написал «и минимум самых общих». А что ты тогда LINGUAS=«ru» забыл? Нормальный пользователь включит nls селективно, тк часто перевод просто ужасен.
Ты рассказываешь, что майнтейнер генты, а не понимаешь базовых вещей — загляни в ебилды пакетов с этим юзом, и смотри, что он на самом деле значит.

Я прекрасно понимаю, что он значит, это как раз ты судя по всему не понимаешь. Как и что значит USE=«nls» и то что он имеет достаточно опосредованное отношение к текущей локали в системе и к LINGUAS. И что некоторые пакеты без USE=«nls» работают достаточно странно(а у некоторых зависимости от того же gettext и intltool прибиты гвоздями, во избежании).

USE="-*" очень желательно, тк отключается куча ненужного и ускоряется сборка.

В #gentoo-dev было обсуждение на эту тему. Сошлись на том, что системы с USE="-*" поддерживаются постольку поскольку. Потому что если пользователь бездумно отключает предустановленный безопасный(а зачастую и минимальный, ну за исключением USE=«minimal» конечно) набор USE-флагов - значит он сам себе мэйнтэйнер, багзилла и техподдержка.

В общем - всё тоже самое что и с CFLAGS. Можно вхреначить -funroll-loops и удивляться проблемам, которые огребаешь. А можно знать зачем это нужно и использовать по назначению.

Речь я вёл не об этом, речь о том, что рядовому гентушнику я USE="-*" не порекомендую, хотя сам достаточно активно использую данную конструкцию в сборочных чрутах.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

я к примеру рядовой пользователь.. давненько просмотрел все используемые флаги и закатил в package.use именно то, что я понимаю и что из этого понимаемого мне не_нужно/нужно.. к примеру таже самая поддержка иксов в некоторых пакетах.. или поддержка гуя в гцц..

TODD ★★
()
Ответ на: комментарий от TODD

Вопрос не в этом. У тебя в make.conf есть USE="-*"? То есть, перефразирую - ты отключаешь по умолчанию ВСЕ USE-флаги, которые предложены, сразу, без разбора?

Или ты просто включаешь/отключаешь то что тебе нужно, попакетно?

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

в make лежат флаги, которые явно используют 10+ пакетов.

"-*" нет.. раньше(когда только начинал осваивать генту) пытался, но потом убрал.. специфичные флаги висят в package.use

TODD ★★
()
Ответ на: комментарий от Pinkbyte

Как и что значит USE=«nls» и то что он имеет достаточно опосредованное отношение к текущей локали в системе

http://xkcd.com/605/ Native Language Support == локаль.

и то что он имеет достаточно опосредованное отношение к

Как и остальные юзы — ведь их рисуют руками субьекты со своими тараканами.

В #gentoo-dev было обсуждение на эту тему. Сошлись на том

Не истина в последней инстанции, и не пример хороших решений в частности.

некоторые пакеты без USE=«nls» работают достаточно странно

Здесь должен быть список примеров. Вообще, в таких случаях нормальные ебилды выдают предупреждение. И что значит «работают странно» — почему тогда не добавить флаг в package.use.force?

а у некоторых зависимости от того же gettext и intltool прибиты гвоздями, во избежании

Такое делают из-за кривых autotools, если сборка валится или конфигурация не соответствует юзам. Довольно кривое решение — лучше патчить скрипты сборки.

Потому что если пользователь бездумно отключает предустановленный безопасный ... набор USE-флагов - значит он сам себе мэйнтэйнер, багзилла и техподдержка.

Так можно редуцироваться в убунту. Я веду разговор не о влажных проблемах майнтейнеров, а о качестве продукта.

а зачастую и минимальный

Преувеличения-преувеличеньюшки.

рядовому гентушнику я USE="-*" не порекомендую

На сервере будете играть в штабильность. На десктопе собрал — не работает — пересобрал.

anonymous
()
Ответ на: комментарий от Pinkbyte

Или ты просто включаешь/отключаешь то что тебе нужно, попакетно?

Чем отличается ситуация с package.use, полным -something? Так сразу и пиши — не рекомендуется пользоваться юзфлагами, тк майнтейнеры не осилили тесты.

anonymous
()
Ответ на: комментарий от anonymous

http://xkcd.com/605/ Native Language Support == локаль.
и то что он имеет достаточно опосредованное отношение к

nls - Add Native Language Support (using gettext - GNU locale utilities)

В Gentoo глобальный(а могут быть и локальные, с другим значением, да) USE=nls значит именно это и ничего другого. Глобальные USE-флаги стандартизируются и обсуждаются в мэйллисте. Не нравится процесс стандартизации - дело твоё, я говорю о том, как оно задумано и как реализовано - то есть в более узком смысле; а не о значении самого термина NLS в широком смысле.

Не истина в последней инстанции, и не пример хороших решений в частности.

Кроме политик(того что стандартизировано), остальное решается соглашением разработчиков между собой. Если знаешь другой способ - всегда будем рады выслушать твои предложения в мэйллисте.

Здесь должен быть список примеров. Вообще, в таких случаях нормальные ебилды выдают предупреждение. И что значит «работают странно» — почему тогда не добавить флаг в package.use.force?

Работают странно = upstream предполагает что локализационные утилиты стоят в системе всегда. Что-то из системных утилит точно вело себя странно, но я не член Gentoo base system project, слышал об этом краем уха от разработчиков, чьему мнению я привык доверять.

И что значит «работают странно» — почему тогда не добавить флаг в package.use.force?

Если апстрим не предполагает работы пакета без определенных зависимостей, то USE-флага может просто и не быть, а зависимость от gettext и intltool будет просто обязательной.

Такое делают из-за кривых autotools, если сборка валится или конфигурация не соответствует юзам. Довольно кривое решение — лучше патчить скрипты сборки.

Смотри выше. Иногда проблема не только в скриптах сборке но и в логике работы всего пакета. И тут 2 варианта - либо форкать и патчить(потому что километровые патчи в главном дереве, от которого получат профит только гентушники - это моветон), либо жрать что дают и спамить апстрим багрепортами, которые довольно часто игнорируются или закрываются как WONTFIX(апстрим бывает разной степени упоротости, да).

Так можно редуцироваться в убунту. Я веду разговор не о влажных проблемах майнтейнеров, а о качестве продукта.

Возможность кастомизабельность != вседозволенность. Чем больше ты хочешь получить от системы нестандартного, тем больше ты должен быть готов пожертвовать системе, будь то багрепорты, патчи или форк проекта(по нарастающей).

Мэйнтэйнер - это тот кто адаптирует готовый продукт в экосистему дистрибутива. Дальше, в зависимости от степени заинтересованности он может стать контрибьютором в этот продукт, слать патчи или просто слать багрепорты, как обычный пользователь. Мэйнтэйнер далеко не всегда является разработчиком то, что он мэйнтэйнит. И проблема как раз не в этом.

Преувеличения-преувеличеньюшки.

Обсуждения в мэйллисте я тебе уже предлагал. Если ты предпочитаешь говорить о проблемах дистрибутива там, где тебя слышат 3,5 разработчика этого дистрибутива - это твоё право. Я предлагаю обсуждать проблемы с теми людьми, которые могут что-то изменить. Как я уже говорил - я не трогаю base system пакеты генты - потому что это как минимум достаточно хрупкая инфраструктура, и без глубинного понимания, стоит ли накладывать тот или иной патч/фикс, можно сломать к чертям всё остальное. А я пока не готов взять на себя такую ответственность. Я могу фиксить что-то у себя, но я не готов поручиться за корректность таких фиксов для base system.

На сервере будете играть в штабильность. На десктопе собрал — не работает — пересобрал.

Если тебе десктоп нужен как плацдарм для игр с пакетами - дело твоё. У меня десктоп крутится на stable-ветке с парой экспериментальных пакетов там, где я могу себе это позволить. Для экспериментов у меня - чруты, lxc и KVM.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от anonymous

Чем отличается ситуация с package.use, полным -something? Так сразу и пиши — не рекомендуется пользоваться юзфлагами, тк майнтейнеры не осилили тесты.

Еще раз объясняю - один умник даёт совет 'USE="-*" - это круто!!!1' и десяток начинающих гентушников вхреначивает его в make.conf, отстреливает себе ногу и потом кричат что генту - говно. Оно конечно не жалко, потерять людей, которые не понимают того что делают и бездумно следуют любой документации, даже если ее источник - Вася Пупкин. Но из-за этого создаётся имидж у Gentoo как у нерабочей поделки, которую нужно патчить и где нужно быть охрененно крутым гуру чтоб использовать(хотя это не так, достаточно просто вдумчивого чтения документации и понимания того что ты делаешь).

Пойми же - я не против, если ты используешь какую-то опцию и у тебя всё хорошо. Но невозможно поддерживать все мыслимые и немыслимые конфигурации одинаково хорошо при условии ограниченности ресурсов(как людских так и аппаратных). Если некий sane default(stable), которые поддерживается и тестируется; есть конфигурации, на поддержку которых тратится меньше времени и она для тестеров(unstable); есть конфигурации, поддерживаются постольку-поскольку, но при этому могут работать(грубо говоря, это no keywords - live-ебилды и прочее, хотя это очень большое приближение) и есть откровенно не поддерживаемые конфигурации, баги по которым закроют как WONTFIX.

Поэтому следуют различать «у меня всё работает» и «у меня всё работает, а если что-то сломается, то кроме меня еще будет кто-то, кому не всё равно это чинить»

USE="-*" это вполне себе первый случай.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 4)

не слушай ты этих минималистов!

portconf -cpu
default/linux/x86/13.0: cracklib cxx berkdb crypt ipv6 ncurses nls pam readline ssl tcpd zlib mudflap fortran openmp cli pcre session dri iconv 
modules -python_targets_python3_2 python_targets_python3_3 acl gdbm nptl unicode bzip2
найдите мне тут лишние флаги!

megabaks ★★★★
()
Ответ на: комментарий от Pinkbyte

один умник даёт совет 'USE="-*" - это круто!!!1' и десяток начинающих гентушников вхреначивает его в make.conf, отстреливает себе ногу и потом кричат что генту - говно

Теперь тебя волнует что кричат на лор. Но чем больше тестеров и багрепортов — тем лучше продукт, в реальности а не на словах. В опенсорсе и мусолится тема тысячи глаз, не?

Как бы, я не писал, что это стабильная опция, а если некий школьник воспринимает советы с форумов как наилучшее решение для стабильной системы, ты понял.

Возможность кастомизабельность != вседозволенность.

Ну что за игра словами опять.

Если тебе десктоп нужен как плацдарм для игр с пакетами

У меня всё, кроме тормозной системы автомобиля и аппарата искусственного кровообращения (гипотетически) — «плацдарм для игры». Что плохого? На крайний случай — флешка с лайв-убунтой и дуалбут, ни разу не понадобились.

Если ты предпочитаешь говорить о проблемах дистрибутива там, где тебя слышат 3,5 разработчика этого дистрибутива

По-вашему и весь лор выпилить.

anonymous
()
Ответ на: комментарий от anonymous

Ну вот видишь - мы просто не поняли друг друга :-)

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.