LINUX.ORG.RU

Для тех, кто думает перейти на Gentoo

 


61

25

Привет

Достаточно часто создаются темы, где люди думают переходить на Gentoo и хотят уточнить некоторые моменты. Чтобы сэкономить время себе и другим, решил создать этот топик, в котором буду собирать ответы на частые вопросы.

TL; DR: Для тех, кто думает перейти на Gentoo (комментарий)

Преимущества
#1 Gentoo очень гибкая и всенастраиваема
Пример того что в Gentoo делается просто:
- Использовать openrc вместо systemd или наоборот; pulseaudio или без него
- Наложить кастомный патч; пример когда это нужно
- Подключить или отключить такие вещи как vaapi, vdpau, opencv и т. п.
- Иметь несколько веток софта; уточню, что это работает только для определённых пакетов; например можно одновременно установить python 2.7, 3.4, 3.5 или qt4 и qt5, но нельзя одновременно установить qt 5.7 и 5.8

#2 Очень удобный и функциональный пакетный менеджер
Примеры удобных фич:
- Прервать установку (вплоть до перегрузки компьютера), а потом ее продолжить. Можно продолжить с последнего пакета (emerge --resume), продолжить но пропустить последний пакет, например, если его установка прервалась с ошибкой (emerge --resume --skipfirst, некоторые нюансы); для больших пакетов можно продолжить саму компиляцию (ebuild <полный путь и имя файла>.ebuild merge).
- Когда при установке обновляется конфиг приложения, определяется редактировался ли предыдущий конфиг пользователем. Если да, конфиг не перезаписывается, а кладётся радом, и выводится сообщение пользователю с предложением обновить конфиг.
- Обновить всю систему, но исключить некоторые пакеты (удобно для исключения больших пакетов из ежедневного обновления)
- Почистить зависимости - удалить те пакеты, которые больше никому не нужны.
- Поскольку ebuild - текстовый файл, то можно пропарсить на предмет требований к количеству ресурсов для установки:

$ for F in $(find /usr/portage -name "*.ebuild") ; do REQ=$(grep "CHECKREQS" "$F") ; if [[ -n "$REQ" ]]; then echo -e "\n$F\n$REQ" ; fi; done
- Вынести компиляцию на другой компьютер (поддержка distcc на уровне пакетного менеджера). Важно когда Gentoo устанавливается на слабый компьютер.


#3 Хорошая документация, по крайней мере на английском. Более того, поскольку Gentoo-специфичные утилиты являются лишь надстройкой на generic механизмами, документация от других дистрибутивов (например от Arch) в большинстве случаев тоже подходит.
Опрос 2014: У какого дистрибутива лучшая документация

#4 Достаточно свежий софт, много сторонних репозиториев.
Список сторонних репозиториев
Gentoo - rolling release, а значит как только новая версия конкретного софта появилась в репозитории, её можно установить. Но здесь не имеется ввиду, что как только новая версия зарелизилась, она моментально становится доступна в основном дереве; лаг есть, но он как правило не большой, хотя зависит от пакета. В тестинг ветке новые версии появляются раньше. Кроме того мейнтейнеры Gentoo могут маскировать некоторые версии, если в них обнаруживаются серьезные баги. Однако всегда можно размаскировать нужную версию. Кроме того для некоторых пакетов есть -live версии, когда исходники скачиваются напрямую из github или аналога.
Пример когда «у меня не самый свежий софт в Gentoo»

#5 Полный порядок в системе, ничего лишнего - эстетическое удовольствие, плюс возможно можно немного улучшить перформанс

#6 В процессе установки и эксплуатации получаешь полное понимание как работает система, а значит возникающие проблемы решаются быстро. На самом деле без должного знания Линукса (или желания его узнать в процессе) Gentoo нормально не установить.

Недостатки
#1 Сложная и долгая первичная установка. Если устанавливать в первый раз, нужно готовиться потратить несколько дней. Для опытных - несколько часов + компиляция.
Время установки (компиляции) Gentoo, еще немного цифр по большим пакетам

#2 Пакетный менеджер хоть и удобный, но очень медленный

#3 Если не обновлять систему долго (полгода и более), то сложность обновления сопоставима с установкой новой системы. Есть мнение, что emerge-webrsync --revert=yyyymmdd должен помочь (лично я не проверял).

Особенности
#1 Высокий порог входа; дистрибутив не для новичков. Если человек не комфортно чувствует себя в командной строке, никогда не компилировал ядро, не разбивал диски на разделы, не привык изучать докуменацию, вчитываться в сообщения и анализировать логи, то Gentoo покажется сложной в обслуживании, а возникающие проблемы будут списываться на дистрибутив.

#2 Обновляться нужно часто.

#3 Основные фичи - в командной строке. Для тех, кто не привык работать в командной строке, это будет минусом. А для тех, кто комфортно чувствует себя в командной строке, это будет плюсом, так как работа в командной строке более эффективна, а типовые сценарии можно обернуть в скрипты и еще больше сократить время на обслуживание системы.

#4 Есть две ветки: stable и testing. В stable меньше шансов встретить проблему, но в testing более свежий софт. Ветки можно комбинировать.

Мифы
Миф #1 Gentoo даст прирост производительности за счет того, что весь софт компилируется под конкретное железо.
Краткий ответ: В 99% случаев при смене дистрибутива X на Gentoo вы не заметите какого-либо улучшения в плане скорости работы. Если вы зададитесь целью сравнить свежеустановленный дистрибутив X с свежеустановленной Gentoo, то в 90% вы не увидите значительной разницы.

Детальный ответ.
Не следует ожидать что просто скомпилировав систему из исходников вы получите сколько-нибудь заметное улучшение перформанса.
Для большинства приложений компиляции под конкретное железо даст прирост производительности в районе 1-2%.
Ложка дегтя: в некоторых случаях даже может быть замедление. Например Firefox, можно ускорить с помощью PGO. В Gentoo по умолчанию это отключено, так как PGO увеличивает время компиляции почти в два раза. В бинарных дистрибутивах соотв. софт может быть скомпилирован с PGO.
Так как добиться улучшения производительности? Узкий круг приложений может быть значительно ускорен при компиляции под конкретную платформу - на 30%-50% и больше. В основном это приложения которые активно занимаются вычислениями. Но для этого требуется соотв. настройки. Например, активация SIMD инструкций, даст прирост производительности в мультимедиа приложениях. Некоторые процессоры имеют аппаратную поддержку шифрования AES. В бинарных дистрибутивах подобные фичи будут отключены, так как не все процессоры это поддерживают, а бинарные дистрибутивы в первую очередь заботятся о совместимости.
Небольшое улучшения перформанса возможно если убрать из системы всё лишнее (мнение 1, мнение 2).
Еще интересный случай

Миф #2 Обновления занимают много времени
Краткий ответ: 5-10 минут на фоне, не мешая основной работе.

Детальный ответ.
Обновления не занимают много времени, но опять же, при правильном подходе.
Во-первых, как было сказано выше, обновляться нужно часто. Для testing ветки это каждый день, или по крайней мере не реже чем в раз 2-3 недели. Для стабильной ветки - раз в неделю достаточно (на стабильной ветке намного реже выпускаются обновления)
Во-вторых, есть пакеты которые правда очень долго компилятся: libreoffice, firefox, chromium... Их всего 10-15. Я их исключаю из ежедневного обновления, а обновляю раз в несколько месяцев.
Еще нужно сказать, что на этом вопросе часто заостряют неоправданно много внимания. Обычно обновления происходят на фоне, и не сильно влияют на работу; так какая разница как долго они выполняются?
В итоге, у меня обновления занимают примерно 5-10 мин ежедневно (у меня тестинг-ветка).
К тому же всё происходит на фоне, в любой момент можно поставить на паузу (Ctrl+Z, fg), продолжить после прерывания (умышленного или случайного).
Мой скрипт ежедневного обновления

Миф #3 Gentoo требует много времени на обслуживание
Краткий ответ: Может быть больше, может быть меньше по сравнению с другими дистрибутивами. Очень зависит от того, насколько вы будете вчитываться в то, что пишет вам пакетный менеджер, и разбираться первопричинах.

Детальный ответ.
Обслуживание Gentoo занимает меньше времени по сравнению с другими дистрибутивами, но только при грамотном обращении, конечно. Достигается это за счет следующего:
- хороший пакетный менеджер: маскировки, глобальные и индивидуальные установки для пакетов (USE флаги, опции компиляции, каталоги), хуки, приоритеты (чтобы компиляция происходила на фоне и можно было работать), много опций для установки и анализа, подсказки после установки.
- всё происходит в CLI, а значит типовые операции можно обернуть в скрипты/алиасы.
- уже существуют много утилит для облегчения обслуживания: eselect, equery, eix, eclean, euse, genlop и др.
Грамотное обращение означает, что вы правильно и регулярно обновляете систему, исполняете предписания emerge, которые он выдает после установки, держите в порядке конфигурационные файлы, а если таки возникает проблема, которую решить вы не можете, то вы обращаетесь в форумы, а не просто жалуетесь на жизнь.
Что до проблем с обновлениями - см. следующий пункт «Миф #4 Установка, обновление постоянно падают; частые блокировки»

Миф #4 Установка, обновление постоянно падают; частые блокировки
Краткий ответ: Не чаще чем в других дистрибутивах

Детальный ответ.
Если говорить про «часто» и «постоянно», то проблемы с обновлением/установкой могут быть если:
- система давно не обновлялась
- система неправильно обслуживается (см. выше про Грамотное обращение)

В редких случаях пакет просто не компилируется. На самом деле это проблема не Gentoo, а тех, кто писал этот софт. И в подавляющим большинстве случаев это не является проблемой, и вот почему. Если это обновление, то можно продолжить процесс запустив emerge с параметрами --resume --skipfirst - он обойдет проблемный пакет, пересчитает зависимости чтобы система осталась консистентной, и продолжит обновление (а можно изначально передать параметр --keep-going, тогда это будет происходить автоматически, прерываний вообще не будет). Если пакет критичен, можно установить предыдущую версию, которая компилировалась (а проблемную замаскировать чтобы пакетный менеджер ее не видел).

Что может заблокировать обновление полностью:
- просьба пакетного менеджера поменять флаги пакета. При этом emerge предлагает сделать это автоматически, но лично я предпочитаю делать вручную. Для ручного способа, решается добавлением строчки в package.use
- просьба пакетного менеджера задать лицензию. Это валидно только для не-свободных лицензий, например EULA, Skype, Adobe Flash и т. п. Если мы говорим имено про обновление, то такое бывает только когда лицензия обновляется, что бывает очень редко (как много у вас пакетов под не-свободной лицензией, и как часто они меняют лицензию?). Решается добавлением одного слова в make.conf
- просьба пакетного менеджера размаскировать пакет. По моему опыту нужно не размаскировывать, а наоборот замаскировывать пакеты, которые тянут замаскированные зависимости. Это, да, требует минут 5-10 на разобраться. Но, если только у вас нет смешения веток и live пакетов, такой вариант случается раз в пятилетку.
- сложные блокировки. Большинство блокировок пакетный менеджер разрешает сам; по моим наблюдениям, качество данного механизма значительно улучшилось пару лет назад. Из своего опыты скажу, что (учитывая частые обновления) блокировок, которые бы совсем останавливали обновление я уже не видел года 1.5. Но если они есть, то это действительно сложный кейс.

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

Миф #5 В Gentoo нет бинарных пакетов
Краткий ответ: Есть там, где это действительно нужно.

Детальный ответ
Во-первых есть Calculate Linux - полностью бинарный форк Gentoo.
Во-вторых даже в самом Gentoo в основном репозитории есть несколько бинарных пакетов: libreoffice-bin, firefox-bin, некоторые другие. Связано это с тем, что из исходников они очень долго компилируются, и иногда проще поставить бинарник.
Бинарный пакет можно сделать самому командой quickpkg --include-config y <установленный пакет> - удобно для бекапов.

FAQ

#1 Установка на слабый компьютер
Смотря что есть слабый компьютер.
Из собственного опыта: Intel Core2 Duo 6600 @ 2.40GHz, 2Gb RAM + 4Gb swap хватало для комфортной работы в Gentoo.
Зачастую ebuld'ы содержат информацию о том, сколько нужно памяти для компиляции пакета. TOP 5:
16G - chromium
8G - ledger, isabelle
7G - ceph
6G - firefox x64 (для x32 нужно 3G), pypy x64 (для x32 нужно 3G)
5G - electron
Если компьютер и вправду слабый, то лучше выбрать не Gentoo (точнее не-source-based дистрибутив). Альтернатива - можно вынести компиляцию на другой «не-слабый» компьютер с помощью distcc.


Опрос 2021: Какую операционную систему и/или дистрибутив GNU/Linux вы используете на ПК?
Опрос 2018: Какой ОС вы пользуетесь на основном ПК?
Опрос 2017: Какую ОС вы используете на основном ПК?
Опрос 2014: Какой дистрибутив вы используете на десктопе?
W3Tech стастика дистрибутивов на серверах
Отличия дистрибутивов, время работы ноутбука
Чем удобны USE флаги
Сколько памяти нужно для РАБОТЫ Gentoo (сколько нужно для компиляции было указано выше)
Сколько места на диске нужно для Gentoo
Правильное полное обновление Gentoo, Мой скрипт ежедневного обновления, Еще вариант
Gentoo для девелоперов
Практика инсталляции Gentoo: в двух словах простым языком
Небольшой скрипт - сборка livecd

★★★★★

Последнее исправление: Kroz (всего исправлений: 36)

Ответ на: комментарий от Bers666

funtoo.org - тут очень активно отвечали год назад.

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

FEATURES=preserve-libs и @preserved-rebuild подходит? Это и проблемой сложно назвать, но теперь такие случаи разбираются в рамках portage.

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

FEATURES=preserve-libs и @preserved-rebuild подходит? Это и проблемой сложно назвать, но теперь такие случаи разбираются в рамках portage.


Похоже что это все ещё проблема. Из https://wiki.gentoo.org/wiki/Preserve-libs читаю:

Warning
Even though preserve-libs makes it unnecessary to use revdep-rebuild (provided by app-portage/gentoolkit) for most common updates, it is still a good practice to run `revdep-rebuild -ip` after updates, in order to check if there are any broken library dependencies that preserve-libs was not able to handle. For example, see bug #459038.

Говоря по-русски, мы тут что-то попытались пофиксить, но не вполне получилось.

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

Ещё вопрос: какую систему контроля версий сейчас используют в Генту для хранения ебилдов?

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

какую систему контроля версий сейчас используют в Генту для хранения ебилдов?

...

Хм, может быть про систему контроля версий я не так выразился. Мне интересно, если я написал ебилд для своей новой софтины, то как его в общее дерево добавить?

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

Мне интересно, если я написал ебилд для своей новой софтины, то как его в общее дерево добавить?

Насколько я знаю, кто угодно не может коммитить изменения в основное дерево, так что чтобы добавить новый ebuild, нужно создать тикет на bugzilla: https://wiki.gentoo.org/wiki/Submitting_ebuilds

Но Pinkbyte должен лучше знать.

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

Говоря по-русски, мы тут что-то попытались пофиксить, но не вполне получилось.

Я так понял, что это аналогично 12309: нельзя 100% доказать что проблемы нет. Поэтому лучше запускать.

У меня это часть скрипта обновления, и по наблюдениям скажу, что за последние лет 5 emerge @preserved-rebuild не находит ни одного пакета на переустановку. Так что всё нормально.

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

С установленными исходниками собранного ядра - да, нормально, сейчас примерно столько и весит. Например у меня только один /usr/src весит 1,4 гигабайта.

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

Угу, сам так однажды через проксю помог обновить ебилд OpenShot'а, но мейнтейнером не стал. У меня слишком низкая социальная ответственность для такого рода деятельности.

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

Находишь действующего разработчика Gentoo

Подскажи, какие обязанности, нагрузка, SLA у разработчика?
Если человек поддерживает один ebuild - это уже разработчик?

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

Всем привет. установил тут Gentoo. Установленный дистрибутив аж 5 гигабайт без графики, это много или мало?

Сильно зависит от конфигурации.
Но можно точно сказать, что это число можно уменьшить, если требуется и если есть время и вдохновение этим заниматься.

P. S. Посмотри сколько у тебя весит /usr/portage/distfiles (по сути кеш скачанных пакетов) и /usr/src (сорцы ядра) - это не особо нужно для функционирования системы (хотя без крайней потребности я бы не рекомендовал от этого избавляться).

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

Держи карман шире. Обжитая Gentoo может весить до 20 ГБ (мой случай, пятая плазма, 1500 «пакетов»).
Всем привет. установил тут Gentoo. Установленный дистрибутив аж 5 гигабайт без графики, это много или мало?

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

Я рассказал ему о будущем. А выводы пусть делает сам.

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

P. S. Посмотри сколько у тебя весит /usr/portage/distfiles (по сути кеш скачанных пакетов)

Стоит указать, что эти дистфайлы (каталог с загруженными сорцами, не пакеты, не запутывай человека) лучше вынести на отдельный раздел и указать новый путь к ним в make.conf.

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

обязанности

поддерживать пакеты, которые взялся мэйнтэйнить

нагрузка

Сколько на себя возьмешь - столько и тяни. Вступление в команды добровольное(раньше было хорошим тоном в рекрутинг-багах на новых разработчиках указывать команды, которые заинтересованы в данном человеке, как сейчас - хз, не слежу). Если не тянешь - снижай нагрузку либо отдавая пакеты в maintainer-needed с обязательным уведомлением в мэйллисте, либо договариваясь с другими разработчиками на совместное обслуживание пакетов. Так нередко образуются новые проекты, как посвященные какому-то языку(Python, Ruby и т.д.), так и какой-то подсистеме(Virtualization и т.д.)

SLA

Есть только у Security, но и там с этим довольно давно наблюдаются проблемы. Еще товарищи из QA могут затребовать решение определенных критичных моментов в жестко-заданные временные рамки. В остальном - «как только, так сразу». Можешь что-то починить - чини. Не можешь - попроси кого-нибудь помочь. И не бери на себя то, с чем не справляешься.

Ну и уходя в отпуск или еще куда-то без долгого регулярного commit-доступа - потрудиться повесить статус devaway

Если человек поддерживает один ebuild - это уже разработчик?

Для того чтобы стать разработчиком Gentoo с commit-доступом в главное дерево одного ебилда будет мало. Но есть сферы, где такой доступ поначалу не нужен(та же Security, правда я в нее вступил уже имея commit-доступ, но тем не менее это был тот еще квест).

Подробнее такое лучше спрашивать у рекрутеров. Особенно учитывая что тимлид рекрутеров есть на ЛОРе( Zlogene, я тебя сейчас подло сдал (^_^))

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

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

Как решать пересбор пакетов с модулями ядра (например wireguard) после пересбора самого ядра?
В обычных дистрах есть dkms hooks.

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

Находишь действующего разработчика Gentoo, готового взять ебилд на сопровождение или сам становишься мэйнтэйнером через проект Proxy maintainers

Понятно, возможно стало лучше. Помню, 10 лет назад процесс напоминал обряд посвящения в масоны, там какие-то права на запись в cvs и всё такое..

Всё-таки, мне кажется слишком бюрократизировано. Вот в NixOS достаточно пулл-реквест на GitHub послать.

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

Говоря по-русски, мы тут что-то попытались пофиксить, но не вполне получилось.

Я так понял, что это аналогично 12309: нельзя 100% доказать что проблемы нет. Поэтому лучше запускать.

Могу предложить аналогию с выбором языка программирования. Если требуется отсортировать список, то мы могли бы писать на чистом С, внимательно проверяя код на корректность работы с указателями и своевременно освобождая ресурсы. Но в большинстве случаев правильнее выбрать Rust (или Хаскель или джаваскрипт), где нельзя напортачить с указателями и есть сборщик мусора.

Вот мне кажется, что проблема revdep-rebuild - это те самые указатели, за которыми нужно следить. Да, сообщество выработало набор удобных правил и инструкций, но в 21м веке не лучше ли просто выбрать дистр где проблема решается на другом уровне?

ierton ★★
()

Хочу оспорить тезис автора, что

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

В зависимости от назначения компа, «Грамотное обращение» может подразумевать, что обновлять дистр нужно как можно реже!

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

Получается, для такого рода разработки Генту категорически непригодна?

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

Да, сообщество выработало набор удобных правил и инструкций, но в 21м веке не лучше ли просто выбрать дистр где проблема решается на другом уровне?

Нет гораздо лучше выбрать дистрибутив где проблемы зависимостей просто не существует как таковой.

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

> Да, сообщество выработало набор удобных правил и инструкций, но в 21м веке не лучше ли просто выбрать дистр где проблема решается на другом уровне?

Нет гораздо лучше выбрать дистрибутив где проблемы зависимостей просто не существует как таковой.

Глупости. Пока программисты используют библиотеки, проблема зависимостей будет. Вопрос состоит в том, как и за счет чего она решается.

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

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

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

Вот мне кажется, что проблема revdep-rebuild - это те самые указатели, за которыми нужно следить.

Да, только тут указатели - это ссылки на либы-зависимости внутри ELF-бинарников. И в идеальном мире они должны совпадать с зависимостями, которые прописаны в ebuild'ах. Как ты обеспечишь чтобы это совпадало на 100%? Одно другим не заменить.

Да, сообщество выработало набор удобных правил и инструкций, но в 21м веке не лучше ли просто выбрать дистр где проблема решается на другом уровне?

Если дистр не-rolling-relase и не-source-based это невозможно даже чисто теоретически. Хочешь взять не-rolling-relase и не-source-based - велкам, тебя никто не держит.

Но в данном случае ты борешься с ветряными мельницами.

Но я предложу другой подход: просто забудь о том, что существует revdep-rebuild: и без него всё работает.

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

В зависимости от назначения компа, «Грамотное обращение» может подразумевать, что обновлять дистр нужно как можно реже!

Есть две модели работы с Gentoo: 1) обновлять часто (хотя бы раз в месяц) 2) не обновлять никогда. Я практикую обе модели на разных компах.

Просто когда не обновляешь совсем, через примерно полгода, установка/обновления софта начинает превращаться в неслабый квест. Если у тебя машина «поставил и забыл» - возможно это ок. Для десктопа скажу из опыта, что за 3-5 лет 1) нужно как мининимум обновить браузер, иначе сайты перестаю работать 2) появляются новые технологии, новый софт, который хочется установить - вайберы, телеграмы, биткоины и т. п.

Повторюсь, я нахожу уместными обе модели для разных кейсов.

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

Каким образом обновление может помешать?

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

> Вот мне кажется, что проблема revdep-rebuild - это те самые указатели, за которыми нужно следить.

Да, только тут указатели - это ссылки на либы-зависимости внутри ELF-бинарников. И в идеальном мире они должны совпадать с зависимостями, которые прописаны в ebuild'ах. Как ты обеспечишь чтобы это совпадало на 100%? Одно другим не заменить.

Если дистр не-rolling-relase и не-source-based это невозможно даже чисто теоретически.

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

Я назову три дистрибутива, которые кмк решают эту проблему: Cubes за счет их контейнеро-ориентированности, NixOS и GUIX за счет хешей и иммутабильности хранилища пакетов.

Но я предложу другой подход: просто забудь о том, что существует revdep-rebuild: и без него всё работает.

Да, но это как не думать о розовом гиппопотаме.

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

достаточно пулл-реквест на GitHub послать.

Если хочешь просто прислать пару фиксов - здесь тоже так можно(https://github.com/gentoo/gentoo). Если хочешь сам рулить пакетом - «извольте следовать правилам, сэр»

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

в результате неких действий пакетного менеджера, система может оказаться в непристойном состоянии

И при этом в рабочем состоянии. В чем критика?

> Но я предложу другой подход: просто забудь о том, что существует revdep-rebuild: и без него всё работает.
Да, но это как не думать о розовом гиппопотаме.

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

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

Система на VBox. Так и не удалось запустить Иксы Xorg:

lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:02.0 VGA compatible controller: VMware SVGA II Adapter
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:0c.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller
00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (rev 02)
Лог после запуска startx

https://pastebin.com/raw/afmXh2VR

P.s. Переводчики с английского не надо. надо решить проблему запуска.

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

Для таких вопросов создаются новые темы. При создании темы в «метки» пишешь «gentoo» (это чтобы местные гентушники обратили внимание).

В make.conf в VIDEO_CARDS добавь «virtualbox vmware» и перекомпиль x11-base/xorg-drivers .

Если проблема не решится - создавай новую тему.

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

Ничего не перекомпилолось что-то

localhost ~ # emerge --ask x11-base/xorg-drivers

 * IMPORTANT: 15 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


 * IMPORTANT: 11 config files in '/etc/portage' need updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] x11-libs/libdrm-2.4.96  USE="libkms*"
[ebuild   R    ] media-libs/mesa-18.2.8  USE="xa*"
[ebuild  N     ] x11-base/xorg-drivers-1.20  INPUT_DEVICES="evdev -elographics -joystick -keyboard -libinput -mouse -synaptics -vmmouse -void -wacom" VIDEO_CARDS="virtualbox vmware -amdgpu -ast -dummy -fbdev (-freedreno) (-geode) -glint -i915 -i965 -intel -mga -nouveau -nv -nvidia (-omap) -qxl -r128 -radeon -radeonsi -siliconmotion (-tegra) (-vc4) -vesa -via"
[ebuild  N     ] x11-base/xorg-server-1.20.3  USE="glamor ipv6 suid udev xorg -debug -dmx -doc -kdrive -libressl -minimal (-selinux) -static-libs -systemd -unwind -wayland -xcsecurity -xephyr -xnest -xvfb"
[ebuild  N     ] x11-drivers/xf86-video-vboxvideo-1.0.0
[ebuild  N     ] x11-drivers/xf86-input-evdev-2.10.6
[ebuild  N     ] x11-drivers/xf86-video-vmware-13.3.0

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by x11-drivers/xf86-video-vmware-13.3.0::gentoo
# required by x11-base/xorg-drivers-1.20::gentoo[video_cards_vmware]
# required by x11-base/xorg-server-1.20.3::gentoo[xorg]
# required by x11-drivers/xf86-input-evdev-2.10.6::gentoo
>=x11-libs/libdrm-2.4.96 libkms
# required by x11-drivers/xf86-video-vmware-13.3.0::gentoo
# required by x11-base/xorg-drivers-1.20::gentoo[video_cards_vmware]
# required by x11-base/xorg-server-1.20.3::gentoo[xorg]
# required by x11-drivers/xf86-input-evdev-2.10.6::gentoo
>=media-libs/mesa-18.2.8 xa

Would you like to add these changes to your config files? [Yes/No] Yes

Autounmask changes successfully written.

 * IMPORTANT: 12 config files in '/etc/portage' need updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.
localhost ~ #

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

The following USE changes are necessary to proceed:

Пропиши флаги для и начнёт собираться:

>=x11-libs/libdrm-2.4.96 libkms
>=media-libs/mesa-18.2.8 xa

vvn_black ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)