- PVSM.RU - https://www.pvsm.ru -

Год на Gentoo после Xubuntu и macOS: мой опыт (мне нравится)

Эффект IKEA — когнитивное искажение, которое появляется, когда покупатели непропорционально высоко оценивают значимость (ценность) товаров, которые они создают отчасти сами (например, собирают из деталей)[1] [1].

logo
logo

tldr: хоть я и любитель скакать по разным граням реальности - с Gentoo я обрел чувство гармонии. Gentoo качественная, проработанная, не чувствую что проект умирает. Я получил перформанс, минимализм, и не нужно год ждать пока в Debian/Ubuntu выйдет текущая версия например Audacity. Gentoo просто работает, я не уделяю много времени ее настройке - поставил и все, теперь браузер, Vim, и иногда обновления системы.

First of all, welcome to Gentoo [2]! You are about to enter the world of choices and performance. Gentoo is all about choices. When installing Gentoo, this is made clear several times - users can choose how much they want to compile themselves, how to install Gentoo, what system logger to use, etc. Gentoo is a fast, modern meta-distribution with a clean and flexible design. It is built on an ecosystem of free software and does not hide what is beneath the hood from its users.

Теперь подробнее

С 2016 до 2019 я провел на корпоративных Маках - гештальт закрыт, и теперь я знаю что macOS мне не нравится. Тем более на сервере же Линукс. Я люблю открытые технологии, мне нравится что Linux можно установить на флешку, телефон, Raspberry Pi, что Линукс в роутере. MacOS отдавал жирком bloatware, это хорошая гостиница для среднего человека, но я строитель и люблю строить свой домик в лесу. В macOS большинство моего времени было в терминале и браузере, так что сейчас мой UX [3] такой же, только чувство что система работает легче, как то поджаристей. В Маке не оказалось ничего крутого для меня. Годы идут, и Линукс дистрибутивы хорошеют, оптимизируются, странно если к 2030 доля Windows будет такой же высокой как и сегодня, хотя я не тревожусь об этом, если в жизни есть что-то хорошее - не нужно втягивать в это всех.

До 2016 года я жил несколько лет на Xubuntu: добротная Ubuntu, только с оболочкой которая легче для системных ресурсов. Тоже терминал с Вимом и браузер. Я давно хотел попробовать Gentoo, даже не знаю откуда, но я чувствовал что-то в этом названии, через их сайт [4] и уродский логотип. В Ubuntu я замучался тем что там старые версии пакетов в репозитории - это была главная причина вновь попробовать другой дистрибутив. И вот год назад я попробовал Gentoo. Я был в восторге. Хотел сразу поделиться своим счастьем, но прожил на ней год перед тем как это все написать, чтобы остыть и осмотреться.

Известная шутка - Install Gentoo, это значит что если сможешь одолеть этот квест, то будешь знать как разобраться со многими техническими проблемами. Оказалось что у Gentoo нет инсталятора. Хорошая документация по шагам, добрый сабреддит [5] где мне всегда помогали. За день поставил. Потом графическое окружение, несколько программ - и все, оно работает. Тут я познал радости конфигурирования ядра - просто отключил лишее, гуглил некоторые пункты. Ядро получилось маленьким, система запускается быстро, работает шустро - одна из ключевых фич Gentoo это то что пакеты собираются из исходников, и можно указать чтобы компиляция происходила для определенной платформы, то есть если я этот жесткий диск вставлю в другой компьютер - загрузка возможно не случится. Главный минус сборки из исходников - время компиляции, но меня это не сильно тревожит - оставить раз в месяц включенным компьютер на ночь. Большие пакеты можно устанавливать уже в бинарном виде - например Firefox.

Мой главный конфигурационный файл /etc/portage/make.conf:

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-O2 -march=ivybridge -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

CPU_FLAGS_X86="aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

USE="glamor libinput -pulseaudio -qt5 opus vpx ffmpeg -proprietary-codecs -cdda -dvd -bluetooth -closure-compile -cups"

# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C

# Without this cannot "grub-install /dev/sda"
GRUB_PLATFORMS="pc"

# ipw3945 needed for ThinkPad wireless firmware
ACCEPT_LICENSE="@FREE ipw3945"

VIDEO_CARDS="intel i965"

USE флаги - чтобы все пакеты знали с чем и без чего собираться. Например мне нужен opus чтобы экспортировать аудио в этот современный формат - добавил. Нигде не нужен bluetooth - удалил. Платформа: ivybridge, дорогой компилятор, сим сообщаю тебе что у меня не тупо дженерик x64, а вот этот ivybridge - может тебе это поможет производить более кастомный код именно для моего компьютера.

Я читал что и патчи свои тащить можно, которые будут применяться при каждом обновлении пакета, и передавать свои флаги для каждого отдельного пакета - я не пробовал. Я пишу JavaScript, Go - мне редко в жизни нужно было чтото перекомпилировать. Помню разок Python и Git - менял там SSL.

UNIX is very simple, it just needs a genius to understand its simplicity.

Dennis Ritchie [6]

Я не чувствую себя задротистым красноглазиком. У меня есть Tinder и я встречаюсь с девочками. Им я стараюсь не рассказывать о своей любви. Система просто работает. Я чуть лучше разобрался в GNU/Linux. У Gentoo есть дух, стиль. У меня не Gnome, не KDE - у меня минималистичный i3 [7]. Нет панелей - только горячая клавиша для запуска браузера и терминала, так что для этого текста у меня нет секси скриншота как из фильма будущего, даже браузер в полноэкранном режиме. Если нужно запустить Audacity (известный аудиоредактор) - я запускаю ее через терминал. Никаких виджетов - если мне нужно узнать загрузку CPU или сети - я запускаю соответствующие утилиты в терминале. Я не проводил тестов, но уверен что и батарея от этого живет лучше.

Здесь видео как я устанавливаю и использую equery: утилиту для получения информации о пакетах:

Тут что я вижу перед установкой Terminator - эмулятора терминала: сам пакет и его зависимости с флагами
Тут что я вижу перед установкой Terminator - эмулятора терминала: сам пакет и его зависимости с флагами

Несколько раз у меня случались проблемы с зависимостями - но я смог несложно их починить. При установке пакета мне приятно узнать его зависимости, лучше понимать обстановку. Например я узнал что для установки Chromium [8] по умолчанию нужно установить Яву для Closure Compiler - проверить собственный код. Я отключил это флагом.

У Gentoo хорошие веб интерфейсы [9] - если не из терминала, но можно приятно посмотреть на возможные флаги пакета:

Год на Gentoo после Xubuntu и macOS: мой опыт (мне нравится) - 3

Несколько раз поправил несколько конфигурационных файлов. Wi-Fi: пароли тоже в конфиге. Зарепортал им несколько багов, и даже пулл реквест в дерево пакетов. Добавил в страницу моего лаптопа [10]. Сотворчество. Gentoo у меня на двух машинах, немного другие конфиги, чуть другое ядро (некоторые галочки стоят в других местах). Зачем мне Arch? Gentoo дает перформанс. Я нашел тебя. Проблем нет, Gentoo хорошо работает, я доволен. Gentoo это GNU/Linux, без лишнего, с развитым пакетным менеджером который большинство пакетов собирает из исходников; вот так просто, без магии и сюрпризов, скучно и прагматично. Ну еще у них есть своя инит система OperRC [11], но даже не знаю что о ней сказать - она просто работает. Кто хочет можно выбрать systemd [12]. Не нужно после установки удалять почтовый клиент, игры. Даже cron из коробки нет. Одна команда - и cron есть. Репозиторий пакетов большой, можно подключать внешние репозитории, как ppa в Ubuntu, но пока мне всего хватает. Есть две программки которые я сам хочу добавить в репозиторий, я изучал вопрос - оказывается это не сложно, по суть нужно создать файлик ebuild который есть баш скрипт, например вот для Terminator:

# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PYTHON_COMPAT=( python3_{7,8,9} )
inherit distutils-r1 optfeature virtualx xdg-utils

DESCRIPTION="Multiple GNOME terminals in one window"
HOMEPAGE="https://github.com/gnome-terminator/terminator"
SRC_URI="https://github.com/gnome-terminator/terminator/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
IUSE="test"

RDEPEND="
	dev-libs/glib:2
	dev-python/configobj[${PYTHON_USEDEP}]
	dev-python/psutil[${PYTHON_USEDEP}]
	dev-python/pycairo[${PYTHON_USEDEP}]
	dev-python/pygobject:3[${PYTHON_USEDEP}]
	gnome-base/gsettings-desktop-schemas[introspection]
	x11-libs/gtk+:3
	x11-libs/vte:2.91[introspection]
"
BDEPEND="
	dev-util/intltool
	sys-devel/gettext
	test? (
		dev-python/dbus-python[${PYTHON_USEDEP}]
		x11-libs/libnotify[introspection]
	)
"
distutils_enable_tests pytest

PATCHES=(
	"${FILESDIR}"/terminator-1.91-without-icon-cache.patch
	"${FILESDIR}"/terminator-1.91-desktop.patch
)

src_prepare() {
	xdg_environment_reset
	sed -i -e '/pytest-runner/d' setup.py || die
	distutils-r1_src_prepare
}

src_test() {
	virtx distutils-r1_src_test
}

pkg_postinst() {
	xdg_desktop_database_update
	xdg_icon_cache_update

	elog "Consider installing the following for additional features:"
	optfeature "D-Bus" dev-python/dbus-python
	optfeature "Desktop notifications" "x11-libs/libnotify[introspection]"
	optfeature "Global keyboard shortcuts" "dev-libs/keybinder:3[introspection]"
}

pkg_postrm() {
	xdg_desktop_database_update
	xdg_icon_cache_update
}

В Gentoo есть стабильные версии пакетов, тестовые (я читал что некоторые включают тестовый режим для всей системы, и все работает), а также 9999 версии - так тут обозначается git HEAD - когда сборка будет производиться прямо из головы репозитория.

Я не буду ставить Gentoo другу - субьект должен любить компьютер, хотеть чуть разобраться в железе (какие компоненты присутствуют, что нужно а что нет). Я могу сделать это за него, но замена видеокарты может потребовать немножко телодвижения - включить ее поддержку в ядре (нажать кнопочку, сохранить, запустить компиляцию, скопировать файлы, обновить загрузчик одной командой). Хотя можно изначально скомпилировать ядро с поддержкой устройств которых пока нет. Другу-непрограммисту я поставлю Xubuntu/Lubuntu - ведь там есть аналог меню Пуск для запуска программки, горячая клавиша это слишком магично. Хотя в Gentoo можно установить LXQt [13], и внешне будет то же самое, хм.

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

Автор: Vitaly Zdanevich

Источник [14]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/358284

Ссылки в тексте:

[1] [1]: https://ru.wikipedia.org/wiki/%D0%AD%D1%84%D1%84%D0%B5%D0%BA%D1%82_IKEA

[2] welcome to Gentoo: https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/About

[3] UX: https://en.wikipedia.org/wiki/User_experience

[4] сайт: https://www.pvsm.rugentoo.org/

[5] сабреддит: https://www.reddit.com/r/Gentoo/

[6] Dennis Ritchie: https://www.computerhope.com/people/dennis_ritchie.htm

[7] i3: https://en.wikipedia.org/wiki/I3_(window_manager)

[8] Chromium: https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/chromium-87.0.4280.20-r1.ebuild?id=cc7468f246a1a02361eb7b0f6bfa36e47bac114d

[9] хорошие веб интерфейсы: https://packages.gentoo.org/packages/media-video/ffmpeg

[10] страницу моего лаптопа: https://wiki.gentoo.org/wiki/Lenovo_Thinkpad_T430

[11] OperRC: https://en.wikipedia.org/wiki/OpenRC

[12] systemd: https://en.wikipedia.org/wiki/Systemd

[13] LXQt: https://en.wikipedia.org/wiki/LXQt

[14] Источник: https://habr.com/ru/post/525154/?utm_source=habrahabr&utm_medium=rss&utm_campaign=525154