LINUX.ORG.RU

gentoo make.defaults

 ,


0

0

Решил попробовать gentoo, установил в vbox. Вся прелесть gentoo насколько я понял в use флагах. Основную идею и суть я уловил, но кое что понять не могу.

Как сказано ранее, все USE флаги объявляются в переменной USE. Чтобы упростить пользователям поиск и выбор флагов, мы предлагаем значение USE по умолчанию, которое представляют собой список USE флагов, как нам кажется, наиболее часто используемых пользователями Gentoo. Это значение приведено в файле make.defaults вашего профиля.

При установке профиль я указал. После стал искать файл make.defaults с помощью locate, но оказалось что таких файлов на самом деле много по адресу /usr/portage/profiles. Хорошо можно узнать все установленные USE флаги и с помощью

emerge --info | grep ^USE
но смущает следующее

Профиль, на который ориентируется ваша система, указывается символьной ссылкой /etc/portage/make.profile. Каждый профиль основывается на предыдущем, более крупном, а итоговый складывается из всех профилей. Верхним является базовый профиль (/usr/portage/profiles/base).

перешел по адресу /usr/portage/profiles/base и нашел таки файл make.defaults, но там нет никаких UES флагов. Далее попробовал поискать /usr/portage/profiles/default/linux/amd64/13.0/desktop/ здесь, так как профиль выбрал desktop, но опять же там нет make.defaults и по адресу /etc/portage/make.profile тоже нет.
В нэте встретил вот такой совет:

Все флаги без исключения добавляем в файл /etc/portage/packages.use, то есть указываем флаги только локально. Когда набирается большое число пакетов, анализируем их на наличие повторяющихся флагов и переносим их в /etc/make.conf

Стоит ли ему следовать или нет?
PS. Начитался и в голове путаница, знаю что USE флаги это не сложно, но пока не могу разобраться, ПОМОГИТЕ.

Если сомневаешься, то # eselect profile set 1, самый общий вариант, всё остальное веди в packages.*. Готовые профили нужны больше для того, чтобы DE сами поставились и не сыпались, для отрубания мильтилиба или включения hardened.

Bfgeshka ★★★★★ ()

мне понравилась эта статья молодец что копаешься в этом но все флаги по умолчанию лежат в

/usr/portage/profiles/*
. когда выбираешь eselect profile set * они берутся от тудова (поправьте если ошибаюсь). В make.conf можно указывать флаги глобально для всей системы. в package.use можно (и нужно) указывать флаг конкретно для одного пакета. мне лично не нужна поддержка менеджера печати поэтому я задал в make.conf -сups. мне нужно чтобы пакет spacefm работал на gtk2 поэтому добавил в package.use. почитай статью она мне очень помогла в свое время.

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

а при смене профиля надо ли пересобирать мир или достаточно env-update && source /etc/profile ведь USE флаги поменялись?
И потом я хочу понять как это работает. Вот например про приоритет

Конечно же, существует определенная последовательность формирования значения USE. Вы же не хотите объявить USE="-java" только для того, чтобы узнать, что java все еще включена из-за значения с более высоким приоритетом.

Самый высокий приоритет у make.defaults. Этого файла найти я не смог, а то что нашел там нет USE флагов. Зато можно через emerge --info | grep ^USE посмотреть на активные флаги, но там мешанина - локальные вперемешку с глобальными, и потом бывают флаги локальные и глобальные с одинаковыми именами, ну например kde, как их различать? Градации там я не наблюдал.
И потом, как избежать конфликтов USE флагов и не запутаться? Например у меня выбран 1 профиль. Но я захотел поставить kde, но kde в make.defaults нет. Как быть?

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

При смене профиля USE-флаги МЕНЯЮТСЯ, ибо во многом определяются профилем. Пересобирай.

Самый высокий приоритет - у packages.use. Сначала читаются флаги профиля, потом - твои из make.conf, потом - индивидуальные для каждого пакета.

Если желаешь поставить KDE, лучше выбрать соответствующий профиль. Иначе - дописать его в make.conf.

Valdor ★★ ()

профили это готовые наборы use флагов, ими можно пользоваться можно не пользоваться, если тебе нужно добавити свои флаги то это или /usr/portage/make.conf (для всей системы) или /usr/portage/package.use (для отдельных пакетов). Кстати из package.use вроде недавно сделали папку, но поддержка файла осталась.

Лично у меня в make.conf из флагов только

USE="-bindist mmx sse sse2"
VIDEO_CARDS="nvidia"
LINGUAS='*'
Остальное в профиле и в package.use

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

USE="-bindist mmx sse sse2"

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

CPU_FLAGS_X86="mmx sse sse2"
а еще лучше емержнуть app-portage/cpuinfo2cpuflags и вставить туда его выхлоп.

Ты новости игнорируешь? Let it flow, let it go типа?

LINGUAS='*'

Это как, ставишь все 86 языковых пакета для фирефокса, хромиума и остальные приложения собираешь со всеми локалями?

Это же равносильно:

LINGUAS="af ak ar as ast be bg bn_BD bn_IN br bs ca cs csb cy da de el en_GB en_ZA eo es_AR es_CL es_ES es_MX et eu fa fi fr fy_NL ga_IE gd gl gu_IN he hi_IN hr hu hy_AM id is it ja kk km kn ko ku lg lt lv mai mk ml mr nb_NO nl nn_NO nso or pa_IN pl pt_BR pt_PT rm ro ru si sk sl son sq sr sv_SE ta ta_LK te th tr uk vi xh zh_CN zh_TW zu" emerge firefox
нахер такое нужно? Скачка по ftp 84 ненужных пакета кроме нужных тебе 2?

Кстати из package.use вроде недавно сделали папку

лет 6 уже, дальше просто не уверен в точности воспоминаний.

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

Ты новости игнорируешь? Let it flow, let it go типа?

Я их перед обновлением системы читаю.

Это как, ставишь все 86 языковых пакета для фирефокса, хромиума и остальные приложения собираешь со всеми локалями?

локалей 2, а без всех языков у меня в FF вместо иероглифов квадратики.

нахер такое нужно? Скачка по ftp 84 ненужных пакета кроме нужных тебе 2?

Кому они мешают то?)

лет 6 уже, дальше просто не уверен в точности воспоминаний.

Значит недавно в stage3 сделали папку.

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

профили это готовые наборы use флагов, ими можно пользоваться можно не пользоваться, если тебе нужно добавити свои флаги то это или /usr/portage/make.conf (для всей системы) или /usr/portage/package.use (для отдельных пакетов). Кстати из package.use вроде недавно сделали папку, но поддержка файла осталась.

где найти make.defaults своего профиля, по приоритету он идет наверху, и потом если я добавлю флаг, которого нет в профиле, включится ли он, ну например профиль без поддержки kde, а я пишу в make.conf USE=«kde» будет ли это работать или нет? Или бесполезно писать в make.conf того что нет в make.defaults, который еще и прячется?

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

где найти make.defaults своего профиля

find /usr/portage/profiles -name make.defaults

по приоритету он идет наверху,

Все что в /etc/portage/make.conf перекрывает профиль, все что в package.use перекрывает make.conf

Или бесполезно писать в make.conf того что нет в make.defaults, который еще и прячется?

Да нет, профиль можно просто выбрать и забить на него, а при установке пакетов дописываешь к emerge флаги -av, смотришь с какими use флагами он будет собираться и дописываешь в make.conf/package.use если что то надо поправить.

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

По факту, лично у меня, просто выбран профиль, добавлено в make.conf флаги для языков и видеокарты и в package.use несколько строчек, там для php флаги для gvfs включил fuse и samba для evince включил djvu... + несколько строчек для разрешения всяких конфликтов которые попадаются при пересборке всей системы, всего строчек 15. Но я с системой особо не изгаляюсь.

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

Все что в /etc/portage/make.conf перекрывает профиль, все что в package.use перекрывает make.conf
Да нет, профиль можно просто выбрать и забить на него, а при установке пакетов дописываешь к emerge флаги -av, смотришь с какими use флагами он будет собираться и дописываешь в make.conf/package.use если что то надо поправить.

+100500 и можно было бы закрыть тему, разобрался спасибо, но вот find /usr/portage/profiles -name make.defaults находит очень много make.defaultsов, а я хочу найти свой, ведь он же должен быть где-то, тем более что открывая любой не находишь вообще никаких USE флагов, хотя в рукокниге сказано обратное. Профиль desktop.

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

Ну вот например

# cat /usr/portage/profiles/targets/desktop/gnome/make.defaults

# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/targets/desktop/gnome/make.defaults,v 1.8 2013/07/11 20:45:39 pacho Exp $

USE="colord eds evo gnome gnome-keyring gnome-online-accounts gstreamer introspection libsecret nautilus pulseaudio socialweb"

Возможо это оно и есть? К тому же ты сам писал что профиль из разных файлов собирается.

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

вот desktop

# cat /usr/portage/profiles/targets/desktop/make.defaults 

# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/targets/desktop/make.defaults,v 1.27 2014/09/16 17:25:37 chithanh Exp $

USE="a52 aac acpi alsa bluetooth branding cairo cdda cdr consolekit cups dbus dri dts dvd dvdr emboss encode exif fam firefox flac gif glamor gpm gtk jpeg lcms ldap libnotify mad mng mp3 mp4 mpeg ogg opengl pango pdf png policykit ppds qt3support qt4 sdl spell startup-notification svg tiff truetype vorbis udev udisks unicode upower usb wxwidgets X xcb x264 xml xv xvid"

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

Возможо это оно и есть? К тому же ты сам писал что профиль из разных файлов собирается.

как бэ да, но вот не дает покоя вот это

(в этом примере объединяются значения из base, default/linux, default/linux/x86 и default/linux/x86/13.0/) USE=«a52 aac acpi alsa branding cairo cdr dbus dts dvd dvdr emboss encode exif fam firefox flac gif gpm gtk hal jpeg lcms ldap libnotify mad mikmod mng mp3 mp4 mpeg ogg opengl pango pdf png ppds qt3support qt4 sdl spell startup-notification svg tiff truetype vorbis unicode usb X xcb x264 xml xv xvid»

и далее

Как видите, эта переменная уже содержит достаточно много ключевых слов. Не меняйте файл make.defaults для настройки переменной USE под свои нужды: изменения в этом файле аннулируются при обновлении Portage!

складывается впечатление, что make.defaults какой-то абстрактный файл, который состоит из многих make.defaultsов. Если это так тогда где конечный объединенный из всех профилей make.defaults?
Или просто неправильно понял? Очень хочется понять и разобраться.

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

Ну ты профиль когда выбираешь там написано например

default/linux/amd64/13.0/desktop/gnome/systemd
вот значит он собирает флаги из default, linux, amd64, 13.0, desktop, gnome, systemd

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

default/linux/amd64/13.0/desktop/gnome/systemd или же это все таки путь? указывается? или из каждой папки по make.defaultsу? если так тогда понятно, а окончательный результат уже виден в emerge --info | grep ^USE
или я ошибаюсь?

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

вряд ли это путь так как например systemd для всех профилей один и тот же и лежит отдельно /usr/portage/profiles/targets/systemd/make.defaults, больше похоже на приоритеты, linux перекрывает default, amd64 перекрывает флаги из linux... но это просто догадка.

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

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

У меня возник еще один вопрос по USE флагам. Смысл создавать отдельную тему не вижу.
Основной принцип работы с USE флагами я уяснил. Если кратко, то это

Все флаги без исключения добавляем в файл /etc/portage/packages.use, то есть указываем флаги только локально. Когда набирается большое число пакетов, анализируем их на наличие повторяющихся флагов и переносим их в /etc/make.conf

А вот например, когда я устанавливаю X или Alsa, нужно прописывать соответствующие флаги в USE как это написано в рукокниге? Или это не обязательно. Например, по поводу X на ЛОРе я читал такое мнение

Например, не везде нужна поддержка «X», если используется какой-нибудь xarchiver\fileroller для thunar, то 7zip не нужен собственный GUI.

То есть могу ли я когда устанавливаю X не писать флаг X в USE? А нужное прописывать в package.use? От этого ведь X хуже не соберутся?. Ведь у вас в USE="-bindist mmx sse sse2" X нет, но они же по любому собраны? Правильно? Значит их можно и не указывать в USE, скажем так же как и Alsa, dbus, udev и остальное? Или все таки надо указывать глобально данные флаги?

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

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

# USE="интересующие флаги" emerge -pvND @world
И смотришь что меняется, анализируешь.)

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

У меня есть еще один вопрос по make.conf. Как должен выглядеть make.conf после того как появился repos.conf?
Правильно ли я записал?

PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"

GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/"
а SYNC записал в /etc/portage/repos.conf/gentoo.conf и получилось в итоге
[DEFAULT]
main-repo = gentoo
 
[gentoo]
location = /usr/portage
sync-type = websync
sync-uri = rsync2.ru.gentoo.org/gentoo-portage
auto-sync = yes
Правильно ли я сделал? И правильно ли я понял?

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

Ну у тебя emerge --sync ошибками не плюется? пакеты ставятся? значит все ок, какие тут еще могут быть варианты)

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