LINUX.ORG.RU
ФорумTalks

Вопросы по Gentoo

 ,


0

1

Я таки созрел до установки "сабжа", в связи с чем пришёл сюда, прояснить некоторые вопросы:

  1. В какой директории собираются пакеты? К примеру, makepkg в "арче" собирает пакеты в /tmp/makepkg (если раскомментировать соответствующую строку в /etc/makepkg.conf), если я всё правильно понял, то emerge делает это где-то в /var, так ведь?

  2. Шифрование диска. Какие подводные камни в сравнении с "арчем"? Будет полное шифрование с LUKS, LVM, отдельным ESP, все дела.

  3. Правильно ли я понял, что оверлеи – это как сторонние репозитории в той же Ubuntu?

sudo cast @Zhbert (да, я помню, что ты уже "не", но авось что-то помнишь), @grem, dimgel

1 /var/tmp/portage

2 ну там initramfs нужна, ее можно через генкернел делать, вообще все это в хендбуке есть.

3 да

TDrive ★★★★★
()

Gentoo не для перфекционистов с ОКР. здесь тебе придётся выбирать, очень много выбирать, и выбор будет между двух зол.

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

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

переходи на LiveCD образ жизни, или ставь CRUX.

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

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

О каком выборе ты говоришь? Я вот пользуюсь гентой лет 10 и не понимаю.

У меня за все это время накопилось только

sys-apps/systemd cgroup-hybrid
dev-libs/libpcre2 pcre32
sys-libs/zlib minizip
media-video/ffmpeg fdk codec2 libass
gnome-base/gvfs fuse mtp samba
dev-lang/rust wasm llvm_targets_WebAssembly

и в make USE="bindist bluetooth -wayland"

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

Gentoo не для перфекционистов с ОКР. здесь тебе придётся выбирать, очень много выбирать, и выбор будет между двух зол.

«Всё. Вы нам подходите. И Говинда ваша ничего, жидковата, но ничего…»

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

Мне делать нечего, так что рискнуть можно. Тем более, ОКР ломается как раз несоблюдением всяких "правил".

переходи на LiveCD образ жизни, или ставь CRUX.

Скрытая реклама booty, я за бан.

Korchevatel ★★★★★
() автор топика
  1. Как уже ответили выше: /var/tmp/portage Там же хранится лог сборки и всё что собралось до момента перемещения файлов в систему и оно там же лежит, если сборка завершилась с ошибкой. Есть ключ, оставляющий всё и после завершения установки файлов, но обычно он не нужен.

Если позволяет объём оперативки, то этот каталог можно смонтировать в tmpfs в памяти (очищается при перезагрузке), что заметно ускорит сборку в большинстве случаев. Но для некоторых больших пакетов можно настроить сборку в директории на диске, настройкой параметров окружения для сборки пакета.

  1. Про шифрование ничего сказать не могу.

  2. По сути оверлей - любой сторонний репозиторий, включая локальный. Среди оверлеев есть официальные репозитории проектов, предназначенные для тестирования разработчиками; есть официальный пользовательский GURU; есть неофициальные пользовательские как зарегистрированные в списке, так и незарегистрированные в списке.

В основном репозитории есть пакеты поддерживаемые «проектами» - группой разработчиков (python, kde и т.д.); сопровождаемые отдельными разработчиками; сопровождаемые пользователями под присмотром разработчиков (proxy-maint).

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

Gentoo не для перфекционистов с ОКР. здесь тебе придётся выбирать, очень много выбирать, и выбор будет между двух зол.

Любой другой дистрибутив (кроме LFS и Source Mage) - это просто куча зол. Потому что выборы сделаны без твоего участия.

@Korchevatel Source Mage, кстати, тоже советую глянуть, если совсем заняться нечем. Хотя бы в виртуалке.

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

Если позволяет объём оперативки, то этот каталог можно смонтировать в tmpfs в памяти (очищается при перезагрузке), что заметно ускорит сборку в большинстве случаев.

32 гигабайт хватит?

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

переустанавливая время от времени

ААААААААААААААААААААААААААААААААА

ПРИШЛО ВРЕМЯ ПЕРЕУСТАНОВИТЬ ЛИНУКС

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

Если для tmpfs выделить 8, то хватит практически для всего. Но, например, spidermonkey, qtwebengine хотят просто много оперативки, а не места, в зависимости от числа потоков сборки.

grem ★★★★★
()

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

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

Буду оригинален: 1) в ненужной, 2) подводный камень в том, что гента ненужна и 3) да, как сторонние репозитории, только ненужные.

intelfx ★★★★★
()

emerge делает это где-то в /var, так ведь

/var/tmp/portage

Правильно ли я понял, что оверлеи – это как сторонние репозитории в той же Ubuntu?

Типа того. Но бывают как сторонние, так и официальные.

fernandos ★★★
()

про noatime, nodiratime знаешь?

если да, тогда не подходишь.

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

переходи на LiveCD образ жизни

Раньше ты сверлил форум бабами, теперь одноразовыми системами.

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

Было бы нужно (всем) - не было бы артикса, и sysv бы в аур не лежала. Вот что мешало сделать выбор инита опцией при установке? Навязывание инита - чуть ли не единственный недостаток арча,к счастью, не нерешаемый.

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

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

Странно, не видел, хотя я вроде обсуждения системди не пропускаю. Там всегда ржачно в комментах)

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

Было бы нужно (всем)

Демагогия. Нет практически ничего, что было бы нужно всем без исключения.

Вот что мешало сделать выбор инита опцией при установке?

Много чего.

Навязывание инита

Ты просто некомпетентный ара-тюнер с самомнением, вот тебе и мерещится везде «навязывание».

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

32 гигабайт хватит?

Зависит от того, во сколько потоков будет компиляция. На каждый поток желательно не меньше 2 Гб (для тяжелых пакетов).

У меня 6Гб отдано под tmpfs, компиляю в 5 потоков нетяжелые пакеты. Тяжелые типа gcc, qtwebkit, etc снижаю количество потоков до 3.

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

Ну системд правда навязывали, это факт

Даже если много раз повторять одну и ту же сказку, приговаривая «это факт», фактом она не станет.

Хотя бы одна причина?

systemd глубоко интегрируется в дистрибутив и даёт максимальное количество профита только при условии такой интеграции. Реализация какого-либо «выбора» по сути обязывает разработчиков дистрибутива ограничиваться общим подмножеством фич между всеми вариантами выбора.

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

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

Да-да, и на дебиан редхатовцы прям никакого давления не оказывали. Ок, даже не буду об этом спорить с тобой, все равно толку ноль.

Хотя бы одна причина, почему в арче нельзя было дать возможность выбирать инит при установке. Ты так и не назвал) В генту вот можно, хочешь - системд, хочешь - опенрс, хоть sysV, хоть daemontools вообще. Только не говори, что это какие-то особенности именно арча, нет, в артиксе же можно. А во всем остальном это тот же арч.

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

Ок, даже не буду об этом спорить с тобой

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

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

Назвал, разуй оба глаза и перечитай моё сообщение.

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

Total: 28 packages (23 upgrades, 2 new, 3 in new slots), Size of downloads: 625077 KiB
Would you like to merge these packages? [Yes/No] ^CInterrupted.


вот вот...

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

Ок, я отвечать начал до того, как ты отредактировал, теперь вижу, назвал.

глубоко интегрируется…

Да, за это ее и не любят как раз. Основная фишка линуксов (раньше была,по крайней мере) - модульность, огромный выбор путей решения одной и той же задачи, этакий конструктор одним словом. А системд - лютый комбайн, которым можно полсистемы заменить, ичсх, заменяют. Во-первых, многим просто влом учить это все без очевидных преимуществ, во-вторых, зачем заменять то, что работает? Была бы системдя просто еще одним инитом - вообще пофигу было бы. Но вот в сеть зачем оно лезет? В фс зачем?

Dog ★★★
()
  1. В какой директории собираются пакеты?

/var/tmp/portage. Чтобы не сажать SSD, он у меня замонтирован в tmpfs 32G (могу себе позволить).

Не забудь поставить/настроить ccache: в долгой перспективе где-то 30% cache hits он даст (на моём конфиге; даже с учётом, что кеш надо сбрасывать при смене текущей версии gcc); а если придётся с каким-то пакетом трахаться, многократно туда-сюда его пересобирая, то в этом случае польза от ccache будет более чем ощутима.

max_size = 40G
cache_dir = /var/tmp/ccache
cache_dir_levels = 3
compiler_check = %compiler% -v

  1. Шифрование диска.

Все файловые системы зашифрованы (кроме UEFI FAT32, где стоит sys-boot/refind и скомпилятые с CONFIG_EFI_STUB ядра). У меня и самопальный скрипт, генерирующий initramfs, и самопальный init. Как это делается «стандартно-общепринято», я не знаю. Причина – хотелось странного + проблемы с адресацией диска по UUID. Не помню в чём там было дело, но сохранился камент:

# `findfs UUID=<uuid>` or `blkid -U <uuid>` can be used without eudev; they return "/dev/sd*".

Какие-то у меня были траблы с этими /dev/sd* (возможно, эта адресация дисков была разная в init-скрипте и в основной системе, и если в конфиге mdadm прописать не UUID-ы, у mdadm слетала крыша). Вдоволь натрахавшись, я в итоге стал тупо копировать весь udev в initramfs и вызывать его в init; он мне создаёт полное полноценное /dev/, включая требуемые симлинки в /dev/disk/by-uuid/. После чего mdadm собирает зеркало, а cryptsetup стартует уже поверх зеркала (хз кто из них должен быть ниже из общефилософских соображений, но из сугубо практических – шифрация выполняется один раз, и зашифрованные данные пишутся в оба диска рейда).

Мой init-скрипт (сильно покоцанный: на самом деле я там один раз пароль запрашиваю вызовом read -p "Password: " -s PASS и потом расшифровываю все рейды одним паролем: echo $PASS | cryptsetup luksOpen ...):

#!/bin/busybox sh
/bin/busybox --install -s

# Devtmpfs is required by eudev.
mount -t devtmpfs none /dev
mount -t proc none /proc
mount -t sysfs none /sys

# UEFI FAT32:
export CHECK_EUDEV="/dev/disk/by-uuid/1234-5678"
# Googled somewhere:
udevd --daemon --resolve-names=never
while [ ! -e $CHECK_EUDEV ]; do
        udevadm trigger --action=add --type=subsystems
        udevadm trigger --action=add --type=devices
        udevadm settle
        sleep 2
done
udevadm control --exit
udevadm info --cleanup-db

export CRYPTED_ROOT="/dev/md0"
export RAID_UUID_ROOT="12345678:12345678:12345678:12345678"
mdadm -q --assemble $CRYPTED_ROOT --uuid $RAID_UUID_ROOT
cryptsetup luksOpen --allow-discards $CRYPTED_ROOT root
mount -o ro -t ext4 /dev/mapper/root /mnt/newroot

# Without `mount --move`, load hangs after switch_root, maybe because /dev/mapper is lost after /dev is unmounted.
mount --move /dev /mnt/newroot/dev
mount --move /proc /mnt/newroot/proc
mount --move /sys /mnt/newroot/sys
exec switch_root /mnt/newroot /sbin/init

Помимо стандартных вещей, мой генератор (вызываемый моим же скриптом пересборки ядра) добавляет в initramfs-файл: модули ядра из /lib/modules/{VERSION}, busybox, mdadm (с конфигом), udevd + udevadm (и все udev-конфиги и правила), cryptsetup – а также shared-либы – зависимости всего вышеперечисленного, определяемые вызовами ldd.

Показывать свой скрипт генерации initramfs, как и результирующий файл не хочу: во-первых обосрут (и вполне возможно, что заслуженно, а переделывать не хочу), а во-вторых, путь гентушника – страдание! =) Я и так дохрена рассказал.

Что мне вот действительно интересно, так это насколько гибким и удобным на практике окажется арчевый mkinitcpio, ежели мне вдруг приспичит. Хотя с моими приколами (read общего пароля – не единственный) наверное будет проще тупо свой скрипт адаптировать.

  1. Правильно ли я понял, что оверлеи – это как сторонние репозитории в той же Ubuntu?

Хз как организованы репы в убунте. В layman – единый централизованный реестр оверлеев. Все репы (в т.ч. и главная, и совсем левые) конфигурируются в /etc/portage/repos.d, куда emerge layman добавляет свою репу (общую для всех оверлеев). Рекомендуется также найти в гентушной вике руководство по созданию локального оверлея – иногда пригождается, когда старая версия пакета исчезает из основного дерева, а как раз тебе она и нужна: тогда выковыриваешь из git log соответствующие ebuild-ы вместе с патчами, копируешь себе в локальную репу и подписываешь: ebuild old-package-version.ebuild digest. Также например у меня в локальной репе свежий qt-creator – гентушные мейнтейнеры крайне редко его обновляют, приходится брать пользовательские ebuild-ы из месяцами висящих тикетов.

P.S. А ник мой ты без собаки написал, соответственно я уведомления не получил, и зашёл сюда вообще случайно.

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

Во-первых, многим просто влом учить это все без очевидных преимуществ

Проблемы тех, кому влом. Мне преимущества очевидны.

зачем заменять то, что работает?

Потому что плохо работает и неудобно пользоваться, ваш кэп.

Была бы системдя просто еще одним инитом

…то она была бы не нужна, «просто инитов» и так вагон.

Но вот в сеть зачем оно лезет? В фс зачем?

Потому что может, см. выше.

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

руководство по созданию локального оверлея

*локальной репы

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

Если позволяет объём оперативки, то этот каталог можно смонтировать в tmpfs в памяти (очищается при перезагрузке), что заметно ускорит сборку в большинстве случаев.

32 гигабайт хватит?

да, но для некоторых паккетов нужно примерно 20+ гигов под компиляцию…

В целом если памяти мало, то можно использовать swap все равно лучше получается, чем без tmpfs.

Но учти, что не все так просто собирается, например, тот же tensorflow у меня собирался через раз и хз почему, может новый gcc не нравится, но судя по ошибкам он просто через жопу местами написан.

PS: и да, после генты ты на другие дистрибутивы будешь смотреть, как на кучу мусора в подарок, даже на дебиан.

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

Интересно, что нужно сделать, чтобы быть арчеводом по твоей классификации?

Повторять в каждой теме, что ты пользуешься "арчем".

Шутка.

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

systemd глубоко интегрируется в дистрибутив и даёт максимальное количество профита только при условии такой интеграции.

systemctl enable, systemctl disable — обалдеть какой уровень профитов. Космические технологии.

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

максимальное количество профита только при условии такой интеграции

Эта интеграция уже даёт профит в виде возможности автодополнения названия сервиса после команды systemctl?

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

Эта интеграция уже даёт профит в виде возможности автодополнения названия сервиса после команды systemctl?

Ну, работает автодополнение.

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

да, в fedora 29 похоже уже работало

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

Если для tmpfs выделить 8, то хватит практически для всего

Для руста не хватит, а он щас на десктопе практически в обязательном порядке.
16 гигов tmpfs пока хватает, но видимо ненадолго

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

Для руста не хватит, а он щас на десктопе практически в обязательном порядке.

У меня rust-bin, firefox-bin, thunderbird-bin, ungoogled-chromium-bin. Qtwebengine не установлен. Так что из крупняка остаётся gcc, clang, llvm, libreoffice. При таком раскладе, по идее 16 гиг должно хватить. Если при ошибке сборки перед вызовом emerge -r не забывать чистить /var/tmp/portage.

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