IT-инфраструктура для бизнеса и творчества

Русский Arch Linux: интервью с создателем CtlOS

Хочу представить вашему вниманию дистрибутив на основе Arch Linux, написанный российским разработчиком. Вполне возможно, что вы уже встречались с этим дистрибутивом, но если нет — очень советую с ним ознакомиться.

CtlOS — дистрибутив, созданный в 2017 году с помощью скриптов archiso. Имеет несколько версий с разными менеджерами рабочего стола: bspwm, openbox, XFCE. Отличается уже настроенными темами ВМ, графическим установщиком, поддержкой UEFI и BIOS. Shell по умолчанию zsh, включена поддержка Aur. Имеется свой сайт и Wiki с несколькими разделами.

По случаю 3х-летия проекта, вот небольшое интервью с создателем CtlOS — Alex`ом Creio.

Начнем с простого

Q: Как к Вам пришла идея создать собственный дистрибутив?

A: Я испробовал много разных окружений и дистрибутивов, дабы понять, что о чем. Затем начал вникать в конфиги и различные настройки. После задался целью создать «искоробочное» решение с нужным мне набором, использовал systemback. После этого начал искать решение под arch, так и пришел к archiso и calamares.

Q: Логичный простой вопрос: название Ctlos произошло от части systemctl?

A: Да. :)

О тестировании, установщике и других ВМ

Q: Какие проекты, материалы и репозитории помогли Вам в создании ctlos?

A: Я часто смотрю dots репозитории на github, если мы говорим о конфигах.

Насчет iso. Некоторые вещи были взяты у manjaro, а именно pkgbuild calamares, некоторые решения были адаптированы с аналогичных проектов.

Если посмотреть исходники, то практически все собрано через archiso, build.sh.

Больше всего мне нравится подход ArchLabs к этому делу, они стараются всё минимизировать, как в лучших традициях, хотя исходники calamares в их репозиториях лежат.

Q: Почему Вы выбрали calamares в качестве установщика?

A: Он хоть и не совсем хороший по-моему, но он очень активно развивается и используется многими, значит, понятен больше пользователю и просто так сложилось с самого начала.

Calamares

Q: Как осуществляется шифрование данных, если мы пользуемся calamares?

A: По поводу шифрования calamares ничего сказать не могу, я не пользовался данной опцией, но она работает. У меня в calamares всё по умолчанию, я особо не изменяю его.

Q: Можно ли поставить авторазметку диска и можно ли разметить диск так, чтоб рядом поставить другую ос?

A: Диск можно разметить как в самом установщике, так и предварительно в gparted.

Q: Планируется ли поддержка gnome, deepin, kde в последующих релизах (если нет, почему)?

A: Я не планирую этого, если только в дефолте.

Все эти ДЕ на мой взгляд перегружены, хоть я не имею ничего против, что кому-то это нравится. Лично мне не нужны эти навороты и лишения, ведь что-то исправить (не погружаясь в дебри) и выкинуть лишнее практически нет возможности (конкретно в gnome, deepin).

Q: Как происходит тестирование образа (если qemu, то какие параметры задаются; если реальное железо, то есть ли проверка загрузки в Legacy/UEFI отдельно, а также сравниваете ли Вы работу дистрибутива на жестком диске и ssd)?

A: Тесты провожу только скриптом run_archiso -u -i от GitLab из стандартной поставки.

qemu запускаю так: https://github.com/creio/dots/blob/master/.bin/qvirt

В virtualbox: настройки стандартные.

У себя на ПК: mbr на hdd.

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

Некоторые пользователи оперативно помогают в тестировании. Если проблема есть и я знаю, как ее решить, или google знает, то исправляю и пересобираю, но это очень редко, либо нет проблем, либо на них не обращают внимания.

И, как можно заметить, что нет никакого графика релизов, всё это делается в свободное время и под настроение.

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

Q: Если систему часто переустанавливать, обязательно потребуется делать бэкапы. Какие методы создания бэкапов Вы используете чаще всего?

A: rsync, git, timeshift.

О своем репозитории

Предварительная заметка: для своего дистрибутива в арч вики рекомендуется создавать свой репозиторий и добавлять его в /etc/pacman.conf. У Алекса его создание подробно описано на youtube. А как обновлять ключи и зеркала, описано в вики.

Q: Где, кроме github, располагаются зеркала CtlOS?

A: Основное зеркало на github, на данный момент в ветке dev и отсюда уже зеркалю в osdn и keybase, со временем, может, еще добавлю.

В основном тут собраны пакеты из аура без вмешательств и -skel с конфигами.

Q: Как выглядит /etc/pacman.conf, mkinitcpio.conf и sudoers после установки CtlOS?

A: В /etc/pacman.conf добавляется мой репозиторий и репозитроий Black Arch:

[ctlos_repo]

Include = /etc/pacman.d/ctlos-mirrorlist

[blackarch]

Include = /etc/pacman.d/blackarch-mirrorlist

/etc/mkinitcpio.conf выглядит стандартно как при установке Арча:

HOOKS="base udev autodetect modconf block keyboard keymap filesystems fsck"

В /etc/sudoers добавляется строчка

@includedir /etc/sudoers.d

liveuser ALL=(ALL) ALL

О масштабности проекта

На момент написания статьи, у образа CtlOS более 20 тысяч скачиваний, в чате телеграма 200 участников, в группе ВК 400 подписчиков, на основном Github репозитории 45 звезд.

Q: Сколько человек в вашей команде(судя по гитхабу, их 4)? Кого бы вы хотели видеть в ней?

A: Это причастные и выразившие желание на добавление. Один активно помогал в тестировании и создании тем и раздач на торрент форумах. Один какое-то время исправлял и форматировал вики. Один по моей просьбе переделывал иконки. Собственно и всё на этом, на данный момент активности со стороны нет. Я даже не знаю, кого бы я хотел видеть, и особо не задаюсь данным вопросом, я для этих целей и запустил форум (и чат), чтобы любой в понятной форме мог что-то добавить, а я возможно внедрить.

Q: Вам бы хотелось сделать проект масштабным, как, например, Manjaro?

A: Я не занимаюсь особым пиаром и не стремлюсь к размещению на distrowatch :)

Q: Ваша официальная работа связана с Linux?

A: Если учитывать, что я использую исключительно linux, то можно сказать, связана. Основной род деятельности - это арбитраж трафика, affiliate marketing. Linux мне очень в этом помогает, расширяет воображение, а именно консоль и bash-скриптинг.

Q: Если бы Ваш проект был вашей основной работой, что бы Вы добавили в новый релиз в первую очередь?

A: Если бы это было основным, то я бы хотел реализовать установку через calamares online, на данный момент происходит простое распаковывание iso с usb и установка некоторых пакетов выбранных на этапе установки, то есть установщик делает не совсем то, что я хочу, но это и так будет сделано: вопрос времени. Не совсем просто взаимодействовать, как может показаться. Существуют трудности, как в упорядочивании зависимостей, так и в грамотной поставке конфигураций. Чем дальше в лес, тем больше дров).

Узнаем планы Алекса написать и снять больше материала

Q: У Вас замечательное видео по разворачиванию openbox. Планируете снять подобное видео по настройке bspwm, если есть с ним релиз?

A: Я еще не закончил с openbox, планирую основное разобрать на нем, а остальные wm потом. Принцип не особо меняется, если говорить о bspwm, то его конфигурация проще openbox.

Q: Изменилась структура профиля archiso .../releng. Будете ли Вы переписывать статью в Ctlos wiki по сборке собственного образа?

A: Да, статью перепишу, как только доберусь.

Тут особо нечего комментировать по поводу releng, просто изменили состав systemd сервисов и переделали build.sh в будущем выкинут customize_airootfs.sh.

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

А если пользователь хочет узнать, как будут выглядеть настройки BSPWM/Openbox на Arch`e, не ставя CtlOS?

Предварительно стоит заметить, что все конфиги хранятся в репозиториях dotfiles и skel. Но как и куда их копировать, не совсем очевидно. По поводу видео на YouTube мы уже знаем, спросим о более компактном формате — ридми.

Q: Вы напишете README по использованию к некоторым своим репозиториям, например к дотфайлам и ctlos skel?

A: Да, у меня есть в планах написать, как установить с чистого arch с подключением репозитория ctlos и установкой пакетов skel, то есть получить сконфигурированное de/wm, как в ctlos.

Мотивация :)

Q: В каком возрасте вы начали увлекаться OS Linux?

A: Точно не помню, около 24 лет, сейчас мне 30.

Q: Ваш совет начинающим пользователям Arch.

A: У каждого свой путь в изучении этого вопроса, материалов валом, пусть каждый проходит его по разному.

Q: Как относитесь к критике о стороны любителей идеологии K.I.S.S.?

A: Абсолютно нейтрально :)

Q: Возникает ли иногда ощущение, что слишком много людей разбираются в Linux лучше вас?

A: Не возникает, т.к. я не рассматриваю это как конкуренцию и понимаю, что данное направление безгранично, или почти, в изучении. А если у кого-то возникает, то надо просто больше учить и изучать, если интересна эта тема.

Q: Какие личности в IT вас вдохновляют?

A: Я не ищу вдохновения в личностях, я впитываю инфу из разных источников, затем анализирую ее и делаю выводы. Не могу утверждать, что они правильные, но если даже неправильные — на ошибках учатся.

Ссылки на всякие полезные вещи:

(function () { let cdnUrl = `https://specialsf378ef5-a.akamaihd.net/SelectelBranding/images/` let previousArticleNumber = null let currentArticleNumber = 0 let platform = 'Desktop' let articles = [ { name: 'camera', url: `${cdnUrl}CameraCat`, text: 'умную камеру для\u00A0наблюдения за\u00A0котиками', link: 'https://vc.ru/selectel/306690', num: 3 }, { name: 'chill', url: `${cdnUrl}ChillCat`, text: 'трекер, который подскажет, когда пора отдохнуть', link: 'https://vc.ru/promo/288561-eye-tracker', num: 1 }, { name: 'cloud', url: `${cdnUrl}CloudCat`, text: 'котика: даёшь ему «пять», а\u00A0он делает бэкап в облако', link: 'https://vc.ru/dev/294799-maneki-neko', num: 2 } ] let buttonCycle = document.querySelector('.button--cycle') let buttonChoose = document.querySelector('.button--choose') let buttonMobile = document.querySelector('.button--mobile') let textField = document.querySelector('.selectel-footer-subtitle') let imageAgent = document.querySelector('.image--agent') let banner = document.querySelector('.selectel-footer') buttonCycle.addEventListener('click', cycleClick) buttonChoose.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) buttonMobile.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) let media = window.matchMedia("(max-width: 570px)") media.addEventListener('change', matchMedia) function matchMedia() { if (media.matches) { platform = 'Mobile' } else { platform = 'Desktop' } update() } matchMedia() function cycleClick(event) { sendEvent(`Promo ${articles[currentArticleNumber].num} Right`, 'Click') if (event) { event.preventDefault() event.stopPropagation() } window.open('https://vc.ru/tag/selectelDIY', '_blank') //cycle(event) } function cycle(event) { // incrementArticleNumber() textField.innerHTML = generatedText() imageAgent.src = articles[currentArticleNumber].url + platform + '.svg?3' imageAgent.setAttribute("class", "") imageAgent.classList.add('image--agent', articles[currentArticleNumber].name) banner.href = articles[currentArticleNumber].link } function update() { banner.href = articles[currentArticleNumber].link imageAgent.src = articles[currentArticleNumber].url + platform + '.svg' textField.innerHTML = generatedText() } function incrementArticleNumber() { previousArticleNumber = currentArticleNumber if (currentArticleNumber >= articles.length - 1) { currentArticleNumber = 0 } else { currentArticleNumber++ } } const sendEvent = (label, action = 'Click') => { const value = `SelectelDIY — loc: Footer — ${label} — ${action}`; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } }; function generatedText() { let defaultText if (platform === 'Desktop') { defaultText = `Мы тут собрали %text%. Хотите научим?` } else { defaultText = `Мы тут собрали %text%.` } return defaultText.replace('%text%', articles[currentArticleNumber].text) } function getRandom(min, max) { min = Math.ceil(min) max = Math.floor(max) return Math.floor(Math.random() * (max - min + 1)) + min } (function create() { currentArticleNumber = getRandom(0, articles.length - 1) cycle() let page = document.querySelector('.page--entry') if (page) { function insertAfter() { let parents = page.querySelectorAll('[data-id="7"]') let referenceNode = parents[0] referenceNode.parentNode.insertBefore(banner, referenceNode.nextSibling); loaded() } setTimeout(() => insertAfter(), 0) } }()) function loaded() { banner.classList.add('loaded') } loadImages([ `${cdnUrl}CameraCatDesktop.svg`, `${cdnUrl}ChillCatDesktop.svg`, `${cdnUrl}CloudCatDesktop.svg`, `${cdnUrl}CameraCatMobile.svg`, `${cdnUrl}ChillCatMobile.svg`, `${cdnUrl}CloudCatMobile.svg?3`, ]) function loadImages(urls) { return Promise.all(urls.map(function (url) { return new Promise(function (resolve) { var img = document.createElement('img'); img.onload = resolve; img.onerror = resolve; img.src = url; }); })); } }())
0
8 комментариев
Популярные
По порядку
Написать комментарий...

Дистр на archiso - это на самом деле сложно, я тоже увлекался этим:) 
На счет KISS, конечно же будут визжать что им простоту портят, но это же было сделано не для простоты, а наоборот для удобства.
И вообще ничего лишнего) 

2

Плюсую! Ставь, понравится, потом перейдёшь на арч, гораздо более плавно.

0

Было дело - админил сервера под центос и хотел на домашний ПК накатить линукс. Пока сложнее федоры ничего не пробовал, но прям серьезно нацелился арч изучить. Там всякие АУР и прочие приятные вещи... А тут вот такой дистр интересный. Пробовать? 

1

Я считаю, однозначно да.
Тестировал релизы образа на qemu несколько раз, мне зашло оформление и классные настройки bspwm из коробки. Но раз ты говоришь, к Федоре привык, то лучше выбрать релиз не с ВМ, а с XFCE, там попроще ориентироваться) 

2

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

1

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

1

Конкурент BolgenOS?))

1

Кто-то еще помнит...)
Если б ты читал внимательнее, то заметил бы, как минимум, что дистр сделан на арче, и не использует ДЕ. Хотя зачем я это рассказываю, ты ж потроллить пришел. 

1
Читать все 8 комментариев
Минэкономразвития РФ приняло предложения РСПП по совершенствованию рынка интеллектуальной собственности

На актуализации плана дорожной карты ТДК (трансформация делового климата) «Интеллектуальная собственность» в соответствии с пожеланиями бизнес-сообщества настоял первый заместитель председателя правительства Андрей Белоусов.

Мвидео, облажались. Дважды

#жалобамвидео или как продать витринный образец

Мвидео отказал в замене товара ненадлежащего качества. Битый телевизор

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

Лайфхак в подборе: как ATS-системы помогают экономить время и бюджет рекрутеров

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

На сайтах с эквайрингом от ПСБ появился Yandex Pay

Покупатели с аккаунтом «Яндекса» смогут оплачивать покупки, не вводя данные карты.

Это Элви Рэй Смит: он мечтал создать анимационный фильм на компьютере, соосновал Pixar, но ушёл из компании из-за Джобса Статьи редакции

Смит создал альфа-канал, который используется в Photoshop и других редакторах, работал в Xerox и LucasFilm и убеждал всех, что за компьютерной графикой будущее, однако всерьез его никто не воспринимал – кроме Стива Джобса.

«Мегафон» заблокировал 36 тыс. ₽ на 2 недели по ФЗ № 115

Являюсь абонентом Мегафона второй десяток лет. Несколько лет назад завёл себе карту Мегафон-банка. Очень нравилось, и рекомендовал всем, так как:

Чем отличается подход к бизнесу заказчиков с США и Европы от наших?

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

Kornia - Python библиотека для обработки изображений в задачах CV

В этой статье я хотел бы познакомить читателей с библиотекой для ЯП python — Kornia, имеющей богатый функционал в области computer vision. Библиотека написана с использованием pytorch, в ее основе лежат готовые решения, такие как torchvision, PIL, skimage, tf.image, OpenCV. В Kornia реализована возможность выполнения вычислений не только с…

null