Русский
Русский
English
Статистика
Реклама

Gentoo

Кризис дистрибутивостроения или о Gentoo в последний раз

26.07.2020 00:10:08 | Автор: admin
Gentoo могла стать монополистом на рынке дистрибутивов. Но не стала. И
не станет. По причине того, что в дистрибутиве gentoo заложена
идеология, которая с момента основания не эволюционирует. А по
принципам мироздания всё, что не эволюционирует имеет вектор
направленности на смерть. Это может кому-то не нравится, но можно
сколь угодно долго отрицать то, что трава зеленая и от этого она
зеленой быть не перестанет

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

Для начала, стоило бы разобраться в причине популярности дистрибутива
Gentoo(2005-2010 год) и дальнейшем спаде популярности и неминуемой
смерти дистрибутива в течении последующих 10 лет.

Причина популярности в 2005-2010 годах заключалась в том, что:

1. бинарные дистрибутивы, несмотря на их количество, не предоставляли
пользователю актуальных версий пакетов программного обеспечения в
стабильной ветке. Ветки тестинг и анстейбл не предоставляли
пользователю стабильную работу, с периодичной регулярностью приводящих
рабочую станцию в неработоспособное состояние. Далее дистрибутив
debian пересмотрел свою позицию и стабилизировал версии пакетов, на
которых пользователь смог работать(имеется ввиду контекст девелоп
студио и десктоп). И стал популярен. Именно по этой причине.

2. дистрибутив Gentoo имплементировал инновационную технологию
USE-флагов, которая не реализована в полной мере в других
дистрибутивах. Частично она реализована в NixOS. Эта технология
позволяла пользователю менять функциональный интерфейс ОС.

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

Отстуствие эволюционирования дистрибутива Gentoo привело к появлению
дистрибутивов, которые пытаются эту гибкость пользователю
предоставлять. В разных контекстах, даже самых невероятных. Вопиющий
пример это появление дистрибутива NixOS, который пытается
предоставить пользователям следующие возможности:

1. возможность использования нескольких версий программного обеспечения

2. возможность фиксирования состояния

3. декларативная настройка операционной системы

4. возможность изменения функционального интерфейса ОС(аналог USE-флагов)

Каждый из этих пуктов в этом дистрибутиве реализован. При этом
фиксация на 1, 2 пункте привела к многочисленным трудностям в
использовании этого дистрибутива. 3 пукнт переусложнён и имеет
тенденцию к дальнейшему переусложнению и уже привел к тому, что этот
дистрибутив потерял универсальность. Самый простейший пример:
попытайтесь сделать chroot из установочного образа NixOS в другой
дистрибутив

Итак, Gentoo предоставила инновационный интерфейс USE-флагов, который
позволяет менять функциональный интерфейс операционной
системы. Основной недостаток реализации время сборки из исходных
текстов. Вопрос: является ли сборка из исходных текстов единственно
возможной в вопросе реализации предоставления возможности изменения
функционального интерфейса? Мой ответ: НЕТ. Такую возможность можно
реализовать не применяя сборку из исходных текстов. И для того, чтобы
их решать(а решить их в конечном итоге можно, на практическом уровне
дистрибутив NixOS это показал) лежит исключительно в плоскости
трансформации идеологии управленческого состава дистрибутива Gentoo

Множество раз на просторах рунета(и не только), пользователями
поднимался вопрос бинарных кешей пакетов. Ответ всегда один: это
невозможно сделать, по причине того, что у каждой рабочей станции
процессор со своим набором CFLAGS и что пакет, который собран с одним
набором CFLAGS не обязательно будет работоспособным на другой рабочей
станции с другим набором CFLAGS. И ввиду этого технически невозможно
реализовать бинарный кеш пакетов, которые бы работали на других
рабочих станциях даже в пределах одной архитектуры(допустим
AMD64). Это утверждение верно, но пути решения есть:

1. использование GENERIC CFLAGS

2. сегментирование бинарных кешей по CFLAGS

И первый и второй пукнт есть возможность реализовать. Желания у
управленческого состава дистрибутива Gentoo нет. Что ожидает дистрибутив Gentoo, если у него появлятся бинарные кеши пакетов? Он обречен. На успех.

Я мечтаю, чтобы управленческий состав дистрибутива Gentoo пересмотрел свою идеологию и принял стратегическое решение по вектору направленности этого замечательного дистрибутива и стал по-настоящему инновационным в мире дистрибутивов
Подробнее..
Категории: *nix , Linux , Кризис , Gentoo , Дистрибутив

Самые лучшие дистрибутивы Linux для десктопа в 2020 году

20.10.2020 12:19:01 | Автор: admin

Логотипы пяти лучших дистрибутивов для начинающих пользователей Linux

Linux традиционно считается операционной системой для инженеров и программистов, но уже давно прикладываются реальные усилия, чтобы сделать Linux привлекательнее для остальных людей. Это очень важно, поскольку неустранимые архитектурные проблемы безопасности Windows и закрытая экосистема Apple не позволяют рассматривать их как надёжные варианты для массового использования.

Linux представлен в разных видах. Здесь невероятные возможности настройки, поэтому дистрибутивы разрабатываются исходя из разных потребностей и интересов пользователей. Например, кто-то переходит с Windows или macOS и есть дистрибутивы, которые в точности повторяют их интерфейс. Другие сосредоточены, например, на максимальной безопасности или эффективном использовании ресурсов.

Посмотрим на самые популярные дистрибутивы Linux в 2020 году для домашнего десктопа, что рекомендуют для начинающих пользователей, опытных специалистов и на легковесные варианты для старых машин x86. И проголосуем за самый популярный дистрибутив.

Содержание


  1. Лучшие дистрибутивы для начинающих
  2. Лучшие дистрибутивы для опытных специалистов
  3. Самые легковесные варианты для старых машин x86
  4. Опрос

В интернете можно найти много рейтингов Linux-дистрибутивов от разных изданий. Здесь представлен кумулятивный рейтинг, который рассчитан по базе из пяти упомянутых по ссылкам выше. В конце проголосуем и попробуем составить рейтинг самых популярных дистрибутивов на Хабре.

В целом выбор конкретного дистрибутива зависит от того, что нам нужно: графический интерфейс, похожий на Windows или macOS? Лучшая безопасность? Возможность тщательной настройки ядра и всех аспектов системы?

Разные дистрибутивы Linux предназначены для конкретных типов пользователей. Например, Ubuntu проста в использовании, потому что предназначена для новичков. С другой стороны, Arch Linux создана для опытных пользователей, которые любят вводить команды в консоли. Давайте пройдёмся по разным категориям.

Лучшие дистрибутивы для начинающих



Ubuntu


Во многих рейтингах на первом месте для домашнего десктопа стоит Ubuntu. Несомненно, это один из самых популярных вариантов (посмотрим результаты голосования на Хабре). Система проста в использовании, у неё комфортный GUI. Внешний вид элементов легко настраивается, поддерживаются темы, хотя этим сейчас никого не удивишь.



Самое главное, что у Ubuntu большое сообщество, на Хабре раньше даже был отдельный хаб Убунтариум. Но и сейчас легко найти многочисленные форумы, где можно попросить совета и просто пообщаться с единомышленниками. Главный ресурс Форум русскоязычного сообщества Ubuntu. С этим сообществом вряд ли может кто-то может сравниться.

Linux Mint


В течение нескольких лет Linux Mint лидировал в счётчике Distrowatch, сейчас он опустился на третье место после MX Linux и Manjaro.

Среднее за сутки количество заходов на страницу Distrowatch за последние 6 месяцев
1 MX Linux 3713
2 Manjaro 2567
3 Mint 2313
4 Ubuntu 1615
5 Pop!_OS 1498
6 Debian 1355
7 elementary 1300
8 Fedora 1011
9 Solus 1011
10 Zorin 885

Цель проекта Linux Mint предоставить пользователю современную, элегантную и удобную операционную систему, которая одновременно является мощной и простой в использовании.


Linux Mint с окружением MATE

Дистрибутив обеспечивает полноценную поддержку форматов мультимедиа, включает некоторые проприетарные программы и поставляется в комплекте с обширным набором опенсорсных приложений. Linux Mint очень понравится новым пользователям Linux, потому что интерфейс похож на Windows 7. Все программы сгруппированы по категориям.

Систему можно собрать с окружением Cinnamon, MATE или Xfce. Linux Mint работает быстро, отлично подходит для старых компьютеров. Сделан на базе Ubuntu и Debian, использует те же репозитории.

Elementary OS


Многие дистрибутивы приспосабливают графический интерфейс для удобства пользователей, которые привыкли к Windows. А вот Elementary OS один из немногих, который ориентирован на пользователей macOS, то есть очень похож на интерфейс маков. Поэтому его называют одним из самых красивых дистрибутивов Linux.



Эта система тоже основана на Ubuntu LTS, что означает высокую стабильность. Используется среда рабочего стола Pantheon (на основе GNOME), которая копирует macOS. Приложения Pantheon либо форки приложений GNOME, либо написаны с нуля на Vala (компилируемый язык программирования).



В комплекте установки идёт совсем немного программ, включая браузер Epiphany, почтовый клиент и несколько инструментов. Всё необходимое придётся устанавливать самостоятельно из AppCenter. Это единый центр для установки и обновления приложений.

Manjaro



Manjaro Linux

Дистрибутив Manjaro основан на Arch Linux. Хотя в основе лежит система, которая ориентирована на опытных специалистов, сам Manjaro на самом деле хорошо подходит для новичков. Простой и дружественный интерфейс, много GUI-приложений в комплекте.

В качестве среды рабочего стола можно установить Xfce, KDE или GNOME. Также официально поддерживается Net-версия без графического окружения для более опытных пользователей, желающих создать рабочее окружение на свой вкус.

Zorin OS



Zorin OS

Zorin OS ещё один дистрибутив на базе Ubuntu, который входит в число самых простых в использовании, интуитивно понятных и красивых. Графический интерфейс особенно улучшился после выхода версии Zorin 15 в прошлом году. Целевой аудиторией являются начинающие пользователи Linux, привыкшие работать в Windows.

Zorin OS выпускается в четырёх редакциях: Lite, Core, Education и платная Ultimate. Автор дистрибутива Артём Зорин, молодой парень из Дублина. Его родители русские, переехавшие из Украины в Ирландию много лет назад. Над операционной системой Артём работает с 2008 года вместе с братом Кириллом. Они зарегистрировали коммерческую компанию и продают платные версии Zorin OS и другие продукты.


Авторы дистрибутива Кирилл и Артём Зорины в 2010 году. Фото: podcast.ubuntu-uk.org

Лучшие дистрибутивы для опытных специалистов



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

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

Arch и Gentoo при инсталляции даже не предлагают вариантов по умолчанию, так что нужно вручную выбрать текстовый редактор, веб-браузер, читалку PDF и т. д. В остальных дистрибутивах есть настройки по умолчанию, но туда не включены кодеки и плагины для медиафайлов, их надо добавить самостоятельно.

Одно из главных преимуществ этих дистрибутивов заключается в том, что они легко настраиваются. Конечно, во всех дистрибутивах вы можете изменить фон рабочего стола, тему значков, определить сочетания клавиш, настроить управление питанием и внести множество других изменений во внешний вид и поведение всех. Но эстетическая конфигурация это лишь малая часть общей картины. Представленные здесь дистрибутивы идут дальше, предлагая пользователям возможность вносить не только косметические изменения, но и настраивать практически всё, что можно настроить, в соответствии с вашими конкретными потребностями, включая ядро. Это резко контрастирует с обычными дистрибутивами, где вы проходите через процесс установки, а потом удаляете ненужные пакеты и настройки. Так никогда не получится собрать такую же хорошую (оптимизированную) систему, как построенную с нуля в соответствии с вашими спецификациями.

Например, Gentoo это единственный дистрибутив, который во время инсталляции позволяет проверить ядро и удалить из него ненужные функции.



Fedora это испытательный стенд инструментов и технологий, которые затем попадают в Red Hat Enterprise Linux. Это идеальный дистрибутив для тех, кто хочет быть на переднем крае разработки.

В то время как Slackware, Gentoo и Arch заставляют использовать консоль для многих задач настройки, у Fedora отличные инструменты GUI для настройки сети, брандмауэра и т. д. Fedora легко настроить как игровую станцию, медиасервер для стриминга контента или даже как веб-сервер.

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

Debian чрезвычайно стабильная система, что делает её идеальной для серверов. Стабильность достигается благодаря тому, что ОС поставляется с более старыми пакетами, поэтому система не очень подходит для десктопа.

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

У Arch и Gentoo отличная система управления пакетами, в то время как Slackware здесь выделяется в худшую сторону.

Перечисленные пять дистрибутивов сильно отличаются по модели обновления. Fedora выпускает новый релиз раз в шесть месяцев, Debian раз в два года, и процесс перехода на новую версию болезненный и времязатратный. Slackware выпускает новую версию без расписания, когда накопится достаточное количество новых функций (раз в несколько лет). Наконец, Arch и Gentoo применяют плавающий релиз (rolling release), постоянно обновляя систему по мере выхода новой версии каждого пакета. То есть пользователь устанавливает систему и навсегда забывает об обновлениях, которые выполняются постоянно в фоновом режиме. Это просто отличная вещь.

Самые легковесные варианты для старых машин x86



Современные дистрибутивы типа Ubuntu ориентированы на массовую аудиторию пользователей, работающих на современном железе. В результате они стали слишком раздутыми и тормозными для старых машин, даже если вручную провести установку и удалить ненужные пакеты. Без большого объёма оперативной памяти и мощного CPU они не показывают хорошей производительности.

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

Lubuntu


Дистрибутив Lubuntu рекомендуют почти в каждом обзоре. Многие знают, что это официальный вариант Ubuntu (как и другой легковесный дистрибутив Ubuntu MATE). Благодаря этому Ubuntu и Lubuntu пользуются одним и тем же программным обеспечением и репозиториями.


Lubuntu с рабочим столом

Это быстрый и лёгкий дистрибутив, который отлично подходит для старых компьютеров. К сожалению, с версии 18.10 перестали выходить 32-битные образы. Последняя Lubuntu 20.04 LTS работает с минималистичным рабочим столом LXQt. В системе реализовано эффективное энергопотребление, так что её можно рекомендовать для установки на ноутбуки. Минимальные системные требования: процессор Pentium 4, Pentium M, AMD K8 или выше, 1 ГБ оперативной памяти.

Linux Lite


Linux Lite также можно рекомендовать как вариант для новых пользователей. Не так давно он был одним из самых быстрорастущих дистрибутив. Если нужен дистрибутив, который одновременно прост в освоении, работает на старых ПК и приятно выглядит, то это идеальный вариант.


Linux Lite 5.0

Это отличная легковесная ОС, основанная на выпусках Ubuntu LTS. Она поставляется со всеми популярными и полезными приложениями. Linux Lite также считается одним из лучших дистрибутивов для тех, кто переходит на Linux с Windows (то есть он похож на Windows). Минимальные требования: процессор 1 ГГц, 768 МБ оперативной памяти, разрешение экрана 1024768.

Puppy Linux


Puppy Linux один из ветеранов среди легковесных дистрибутивов с 15-летней историей. Сейчас выпускаются различные версии в зависимости от базовой среды, например, версия Puppy Linux 8.0 (Bionic Pup) основана на Ubuntu Bionic Beaver (18.04), а Slacko Puppy 6.3.2 на Slackware 14.1.


Puppy Linux

Создатель дистрибутива Барри Каулер отошёл от основного проекта, а теперь занимается смежным проектом под названием Quirky это версия Puppy Linux, собранная волшебными, как он их называет, скриптами Woof-CE. Скрипты могут скачивать пакеты некоторых других дистрибутивов, обрезать их прямо в Puppy-размер, а затем собирать Puppy Linux live-CD и делать всё это полностью автоматически.

В дистрибутиве очень много разнообразных приложений, которые устанавливаются по желанию. В том числе довольно нестандартных, как Homebank для управления финансами или Samba для управления общими ресурсами. Версия Bionic Pup совместима с репозиториями Ubuntu, предоставляя доступ к обширной коллекции софта от родительского дистрибутива. Но если ограничиться минимальным набором пакетов, то Puppy Linux занимает на диске около 300 МБ.

Минимальные системные требования: процессор 600 МГц, 256 МБ оперативной памяти.

TinyCore


TinyCore пожалуй, самый крошечный дистрибутив Linux. Самая лёгкая версия Core весит всего 11 МБ и идёт без GUI.

Базовая система TinyCore размером 16 МБ предлагает на выбор графические среды для рабочего стола FLTK или FLWM.

Можно установить CorePlus весом 106 МБ, там уже более продвинутые оконные менеджеры, такие как IceWM и FluxBox, есть поддержка Wi-Fi и другие необходимые нормальному человеку функции.

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


TinyCore

TinyCore экономит на размере, требуя подключения к сети во время первоначальной настройки. Минимальный объём оперативной памяти 64 МБ, рекомендуемый 128 МБ, процессор i486DX. Выпускаются 32-битные и 64-битные версии, а также PiCore для устройств ARM, таких как Raspberry Pi.

Ubuntu MATE


Ubuntu MATE это самый тяжёлый из легковесных дистрибутивов Linux. Его системные требования: процессор 1 ГГц, 1 ГБ оперативной памяти и 8 ГБ свободного места на диске.

В последней версии Ubuntu MATE 20.04 LTS реализована масса новых функций и улучшений, включая несколько вариаций цветовых тем, установка в один клик, экспериментальный ZFS и игровой режим от Feral Interactive.


Ubuntu MATE 20.04

MATE одно из лучших окружений для десктопа, наряду с GNOME, KDE и Cinnamon. То есть это самый красивый вариант Linux, который можно установить на относительно старом железе.



Кроме всех упомянутых, нужно отметить самые быстрорастущие в последнее время дистрибутивы MX Linux и Linux Lite, однозначный выбор для приватности и безопасности Tails, для пентестинга Kali Linux, серверную систему CentOS (по сути, бесплатная версия RedHat Enterprise) и лучший дистрибутив для Raspberry Pi Raspbian.

Стоит ещё добавить, что по своей архитектуре Linux фундаментально превосходит Windows в вопросах информационной безопасности. Это относится к любому дистрибутиву.

Что ж, теперь посмотрим на результаты опроса ниже. Победит ли ожидаемо Ubuntu или хабражители выберут другой вариант?



На правах рекламы


Арендуйте сервер любой конфигурации в течение минуты, с любой операционной системой (есть возможность установить ОС со своего образа). Используем только современное брендовое оборудование и лучшие ЦОД-ы. Эпичненько :)

Подробнее..

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

26.10.2020 20:10:07 | Автор: admin

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

logologo

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

First of all, welcome to Gentoo! 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 такой же, только чувство что система работает легче, как то поджаристей. В Маке не оказалось ничего крутого для меня. Годы идут, и Линукс дистрибутивы хорошеют, оптимизируются, странно если к 2030 доля Windows будет такой же высокой как и сегодня, хотя я не тревожусь об этом, если в жизни есть чтото хорошее - не нужно втягивать в это всех.

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

Известная шутка - Install Gentoo, это значит что если сможешь одолеть этот квест, то будешь знать как разобраться со многими техническими проблемами. Оказалось что у Gentoo нет инсталятора. Хорошая документация по шагам, добрый сабреддит где мне всегда помогали. За день поставил. Потом графическое окружение, несколько программ - и все, оно работает. Тут я познал радости конфигурирования ядра - просто отключил лишее, гуглил некоторые пункты. Ядро получилось маленьким, система запускается быстро, работает шустро - одна из ключевых фич 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 enabledPORTDIR="/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 firmwareACCEPT_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

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

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

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

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

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

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

# Copyright 1999-2020 Gentoo Authors# Distributed under the terms of the GNU General Public License v2EAPI=7PYTHON_COMPAT=( python3_{7,8,9} )inherit distutils-r1 optfeature virtualx xdg-utilsDESCRIPTION="Multiple GNOME terminals in one window"HOMEPAGE="http://personeltest.ru/aways/github.com/gnome-terminator/terminator"SRC_URI="http://personeltest.ru/aways/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:2dev-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+:3x11-libs/vte:2.91[introspection]"BDEPEND="dev-util/intltoolsys-devel/gettexttest? (dev-python/dbus-python[${PYTHON_USEDEP}]x11-libs/libnotify[introspection])"distutils_enable_tests pytestPATCHES=("${FILESDIR}"/terminator-1.91-without-icon-cache.patch"${FILESDIR}"/terminator-1.91-desktop.patch)src_prepare() {xdg_environment_resetsed -i -e '/pytest-runner/d' setup.py || diedistutils-r1_src_prepare}src_test() {virtx distutils-r1_src_test}pkg_postinst() {xdg_desktop_database_updatexdg_icon_cache_updateelog "Consider installing the following for additional features:"optfeature "D-Bus" dev-python/dbus-pythonoptfeature "Desktop notifications" "x11-libs/libnotify[introspection]"optfeature "Global keyboard shortcuts" "dev-libs/keybinder:3[introspection]"}pkg_postrm() {xdg_desktop_database_updatexdg_icon_cache_update}

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

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

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

Подробнее..
Категории: Linux , Настройка linux , Gentoo , Portage

Oracle cloud превращаем ubuntu 20.04 в gentoo

15.01.2021 10:11:34 | Автор: admin
Oracle cloud предлагает некоторые ресурсы совершенно бесплатно. В частности на халяву можно получить 2 виртуальные машины. При создании машины у вас есть выбор из centos, Ubuntu или oracle linux. С учетом ограниченности ресурсов витруальной машины мне стало интересно нельзя ли использовать на этой машине gentoo?

В документации gentoo описано как можно на лету превратить любой линукс в gentoo. К сожалению инструкция последний раз обновлялась в 2014 и если ее применять в лоб скорее всего у вас возникнут проблемы. Однако на гитхабе можно найти скрипт, который по утверждению автора может в автоматическом режиме превратить любой линукс в gentoo. Скрипт давно не обновлялся, но после небольших изменений отработал как надо. Автор исходного скрипта решил не применять мой пулл реквест, но модифицировал свой скрипт базируясь на моих предложениях. Мой вариант скрипта можно найти тут.

Итак, давайте осуществим превращение ubuntu 20.04 в gentoo. Для этого создаем виртуальную машину используя образ ubuntu 20.04 minimal и логинимся на него как пользователь ubuntu. После этого переключаемся на юзера root
sudo -i

Переходим в режим single user
systemctl rescue

В нормальных условиях при этом отваливается сеть. В oracle cloud этого не происходит, однако завершается процесс systemd-resolved и как следствие перестает работать dns. Давайте это исправим
rm /etc/resolv.conf && echo 'nameserver 8.8.8.8' >/etc/resolv.conf

Теперь можно запустить скрипт миграции и пойти выпить чаю, это займет какое-то время
wget -qO- https://raw.githubusercontent.com/kt97679/to-gentoo/master/to-gentoo|bash

Когда выполнения скрипта закончится он предложит вам перезагрузиться. Прежде чем это делать надо убедиться, что вы не потеряете root доступ после перезагрузки. Для этого надо разрешить доступ root по ssh
sed -i -e '/^PermitRootLogin.*/d' /etc/ssh/sshd_config && echo -e "\nPermitRootLogin without-password" >>/etc/ssh/sshd_config

И поправить файл /root/.ssh/authorized_keys
sed -i -e 's/.*\(ssh-rsa.*\)/\1/' /root/.ssh/authorized_keys

Теперь можно перезагружаться, но команда reboot не поможет, так что давайте привлечем тяжелую артиллерию
sync && echo 1 > /proc/sys/kernel/sysrq && echo b > /proc/sysrq-trigger

Машина уходит в перезагрузку и через пару минут вы сможете залогиниться на нее по ssh как root. Вы находитесь в gentoo окружении, но по прежнему используете старые ядро и initrd. Давайте это исправим.

Включим swap, без этого вам не хватит памяти скомпилировать новое ядро.
fallocate -l2G /var/tmp/swap && chmod 0600 /var/tmp/swap && mkswap /var/tmp/swap && swapon /var/tmp/swap

Я не планирую использовать на этой машине systemd, так что маскирую его и udev
echo -e 'sys-apps/systemd\nsys-fs/udev'> /etc/portage/package.mask/systemd

После этого можно установить пакеты необходимые для компиляции ядра
emerge gentoo-sources app-arch/lz4

Теперь можно перейти в директорию с исходниками ядра,
cd /usr/src/linux

сгенерировать конфиг нового ядра используя конфиг загруженного ядра,
yes ""|make oldconfig

и оставить в конфиге только те модули, которые используются в настоящий момент.
yes ""|make localmodconfig

Я планирую не использовать на этой машине initrd, так что все модули будут вкомпилированы в ядро
yes ""|make localyesconfig

Запускаем компиляцию и установку ядра
make && make INSTALL_MOD_STRIP=1 modules_install && make install

Наша машина весьма маломощна, так что этот процесс займет много времени. Когда компиляция закончится надо обновить конфигурацию загрузчика. Я добавил параметры ядра, которые применялись в исходной ubuntu.
cat >/boot/grub/grub.cfg <<EOFset timeout=1menuentry 'gentoo' {  linux $(ls -t /boot/vmlinuz-*|head -n1) root=/dev/sda1 console=tty1 console=ttyS0 nvme.shutdown_timeout=10 libiscsi.debug_libiscsi_eh=1}EOF

Имеет смысл разрешить логин на последовательной консоли если будут проблемы с сетью
sed -i -e 's/^#\(.*ttyS0.*\)/\1/' /etc/inittab

Осталось немного. После перезагрузки сетевой интерфейс будет называться не ens3, а eth0. Надо удалить скрипт инициализации старого интерфейса и добавить инициализацию нового
cd /etc/init.d && rm net.ens3 && ln -s net.lo net.eth0

На случай необходимости залогиниться через последовательную консоль надо задать пароль для пользователя root
passwd

Все готово, можно перезагружаться.

Если после перезагрузки вам не удасться залогиниться на машину по ssh создайте консольное подключение и используйте его для отладки.

Теперь у вас есть базовая установка gentoo которую можно модифицировать под ваши нужды. В системе остались артефакты от исходной ubuntu. Они больше не нужны и их можно удалить. Скрипты с командами миграции можно найти тут.
Подробнее..
Категории: Linux , Настройка linux , Gentoo

Насколько маленьким может быть ядро linux?

02.02.2021 00:22:58 | Автор: admin
Некоторое время назад я научился конвертировать виртуальные машины в oracle cloud из ubuntu 20.04 в gentoo. Машины предоставляемые в рамках always free tier весьма маломощны. Это в частности приводит к тому, что перекомпиляция ядра превращается в достаточно длительный процесс. У исходного ядра ubuntu 20.04 в конфиге было 7904 параметра. После того, как я сделал
make localmodconfig && make localyesconfig

число параметров уменьшилось до 1285. Мне стало интересно попробовать выбросить из ядра все лишнее и посмотреть, что получится.
Я буду компилировать ванильное ядро 5.4.0, потому что именно эта версия используется на моей установке gentoo. Для ускорения процесса я компилирую ядро на своей рабочей машине (i7, 8 cores, 64Gb RAM, tmpfs). Готовое ядро я копирую на машину в oracle cloud. Начинать процесс надо с команды
make tinyconfig

В результате у вас появится файл .config для самого минимального ядра текущей архитектуры. В моем случае в этом файле оказалось 284 непустых строк, не являющихся комментариями. Давайте скомпилируем его и посмотрим на размер ядра:
$ yes ""|make -j$(nproc)$ ll arch/x86/boot/bzImage && grep -v ^# .config|grep -c .-rw-rw-r-- 1 kvt kvt 441872 Jan 31 18:09 arch/x86/boot/bzImage284$
Это ядро абсолютно бесполезно. Оно не только не может загрузиться но даже не имеет возможности сообщить о возникших проблемах. Давайте это исправим. Для активации параметров я буду использовать команду
script/config -e config_parameter_name

Итак, наше ядро будет 64-х битным, мы активируем вывод диагностики ядра, включаем поддержку терминала, конфигурируем последовательный порт и консоль на нем:
./scripts/config -e CONFIG_64BIT -e CONFIG_PRINTK -e CONFIG_TTY -e CONFIG_SERIAL_8250 -e CONFIG_SERIAL_8250_CONSOLE

Машина в oracle cloud загрузиться с этим ядром не сможет, вывода на консоль не будет. Как оказалось, надо добавить поддержку EFI и ACPI, являющуюся ее зависимостью. Скрипт ./scripts/config не реализует логику добавления обратных зависимостей т.е. если добавить только CONFIG_EFI, то make выкинет этот параметр из конфига. Также стоит отметить, что включение опций часто включает нижележащие опции. Так в случае с включением CONFIG_ACPI автоматически включается, к примеру, поддержка кнопки включения/выключения.
./scripts/config -e CONFIG_ACPI -e CONFIG_EFI -e CONFIG_EFI_STUB

Собираем ядро
$ yes ""|make -j$(nproc)$ ll arch/x86/boot/bzImage && grep -v ^# .config|grep -c .-rw-rw-r-- 1 kvt kvt 1036960 Jan 31 18:13 arch/x86/boot/bzImage409$

Это ядро по прежнему не может завершить процесс загрузки, но по крайней мере способно сообщить об этом:
Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance.Kernel Offset: 0x22000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)---[ end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance. ]---

Давайте добавим необходимые параметры:
# virtual guest support and pci./scripts/config -e CONFIG_PCI -e CONFIG_VIRTIO_PCI -e CONFIG_VIRTIO -e CONFIG_VIRTIO_MENU -e CONFIG_PARAVIRT -e CONFIG_HYPERVISOR_GUEST  # disk support./scripts/config -e CONFIG_BLOCK -e CONFIG_SCSI -e CONFIG_BLK_DEV_SD -e CONFIG_SCSI_VIRTIO# filesystems./scripts/config -e CONFIG_EXT4_FS -e CONFIG_PROC_FS -e CONFIG_SYSFS -e CONFIG_DEVTMPFS -e CONFIG_DEVTMPFS_MOUNT# executable formats./scripts/config -e CONFIG_BINFMT_ELF -e CONFIG_BINFMT_SCRIPT# network./scripts/config -e CONFIG_NET -e CONFIG_VIRTIO_NET -e CONFIG_PACKET -e CONFIG_UNIX -e CONFIG_INET -e CONFIG_NET_CORE -e CONFIG_NETDEVICES -e CONFIG_VIRTIO_NET

Собираем ядро:
$ ll arch/x86/boot/bzImage && grep -v ^# .config|grep -c .-rw-rw-r-- 1 kvt kvt 1950368 Jan 31 18:18 arch/x86/boot/bzImage616$

И загружаемся. На этот раз ядро успешно находит корневой диск, но в консоли мы видим ошибки:
The futex facility returned an unexpected error code.... * Call to flock failed: Function not implemented

Пытаемся залогиниться:
(none) login: rootprocess 182 (login) attempted a POSIX timer syscall while CONFIG_POSIX_TIMERS is not setPassword:setgid: Function not implemented

Тоже не получается, но зато нам недвусмысленно подсказывают какой параметр надо добавить. Добавляем его и остальные необходимые параметры:
./scripts/config -e CONFIG_POSIX_TIMERS -e CONFIG_FUTEX -e CONFIG_FILE_LOCKING -e CONFIG_MULTIUSER

Собираем ядро:
$ ll arch/x86/boot/bzImage && grep -v ^# .config|grep -c .-rw-rw-r-- 1 kvt kvt 1979040 Jan 31 18:25 arch/x86/boot/bzImage623$

На этот раз нам удается залогиниться:
instance-20210124-1735 login: rootPassword:Last login: Mon Feb  1 02:25:10 UTC 2021 from 73.239.106.74 on sshroot@instance-20210124-1735:~#

Ура! Ssh тоже работает. Тем не менее в консоли опять есть ошибки:
 * Some local filesystem failed to mount...hwclock: Cannot access the Hardware Clock via any known method.hwclock: Use the --verbose option to see the details of our search for an access method. * Failed to set the system clock

А в dmesg находим еще:
[    2.910198] udevd[360]: inotify_init failed: Function not implemented

Добавляем поддержку часов реального времени, файловой системы vfat и inotify:
./scripts/config -e CONFIG_RTC_CLASS -e CONFIG_DNOTIFY -e CONFIG_INOTIFY_USER -e CONFIG_VFAT_FS

Собираем ядро:
$ ll arch/x86/boot/bzImage && grep -v ^# .config|grep -c .-rw-rw-r-- 1 kvt kvt 2015904 Jan 31 18:36 arch/x86/boot/bzImage643$

Хммм, vfat диск по прежнему не может подмонтироваться:
 * Some local filesystem failed to mount

А вот и ответ почему в dmesg заодно с еще одной ошибкой:
[    3.782884] udevd[527]: error creating signalfd[    4.107698] FAT-fs (sda15): codepage cp437 not found

Добавляем параметры:
./scripts/config -e CONFIG_SIGNALFD -e CONFIG_NLS_CODEPAGE_437 -e CONFIG_NLS_ISO8859_1

Собираем ядро:
$ ll arch/x86/boot/bzImage && grep -v ^# .config|grep -c .-rw-rw-r-- 1 kvt kvt 2015904 Jan 31 18:41 arch/x86/boot/bzImage646$

Загружаемся, в консоли ошибок нет, но появилась новая ошибка в dmesg:
[    2.756136] udevd[360]: error creating epoll fd: Function not implemented

Исправляем:
./scripts/config -e CONFIG_EPOLL

Собираем ядро:
$ ll arch/x86/boot/bzImage && grep -v ^# .config|grep -c .-rw-rw-r-- 1 kvt kvt 2020000 Jan 31 19:13 arch/x86/boot/bzImage647$

Перезагружаемся и на этот раз не видим новых ошибок :)!

На моей рабочей машине (i7, 8 cores, 64gb RAM, tmpfs) финальная конфигурация собирается за 1m 16s. В oracle cloud с двумя ядрами и на обычном диске этот же процесс занимает 19m 51s.

Получившееся ядро не является абсолютно минимальным. Так, например, включение поддержки сети добавляет кучу разных сетевых адаптеров. Я не стал заниматься перфекционизмом и вычищать абсолютно все, что не нужно. Кроме того хочу предупредить, что хотя загрузка и быстрое тестирование не выявило проблем с отсутствием дополнительных важных компонент ядра скорее всего таковые существуют. Так что если вдруг вы решите переиспользовать мой конфиг пожалуйста тщательно протестируйте ядро для вашего конкретного случая и при необходимости добавьте нужные параметры ядра.
Подробнее..
Категории: Настройка linux , Gentoo , Linux kernel

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru