Небольшое лирическое отступление
Дистрибутив S.u.S.E Linux начал свой путь в Германии в начале 90-х годов 19-столетия. Изначально был основан на Slackware, однако со временем претерпел значительные изменения и стал самостоятельным дистрибутивом. Чуть позже, спустя 10-летие, был выкуплен американской компанией Novell. С тех пор дистрибутив развивается и поддерживается сообществом openSUSE, на базе которого также собираются коммерческие продукты. Свободно-распространяемая ветка opeSUSE содержит 2 версии дистрибутивов Linux: стабильный leap ("попрыгунчик") и ролинг-релиз tumbleweed ("перекати-поле"). О последнем и пойдет речь в данной статье.
Установка минимальной базы для десктопа
Наша цель: установить opensuse с необходимым набором программ для будущей конвертации сборки в легковесную десктоп-систему на базе Х-сервера с оконным менеджером openbox на борту. Для этого:
- Качаем iso-образ openSUSE Tumbleweed с официального сайта любым удобным для вас способом.
- Готовим загрузочный диск, опять же любым удобным для вас способом. Мне симпатизирует ventoy, статья про который есть на нашем сайте: https://pingvinus.ru/program/ventoy
- Загружаемся с live-образа openSUSE Tumbleweed и следуем шагам установки системы. В документации… много чего написано, но поскольку установщик полностью графический, — можно и пропустить.
- Будет выполнена диагностика вашего оборудования и сгенерировано ядро системы. По окончании процесса появится экран выбора языка системы.
- На следующем этапе необходимо настроить параметры сети. Если у вас подключение кабельное, то вероятней всего установщик сам все автоматически сконфигурирует. Для wifi-подключения потребуется настроить точку доступа (имя и пароль)
- Далее нам будет предложено подключить сетевые репозитории и выбрать «системную роль» будущей установки. Я рекомендую выбрать "Рабочий стол — графическая система с ограниченным набором пакетов, служит базой для собственного набора пакетов". В этом варианте будет установлена минимальная графическая среда: xorg + icewm. В дальнейшем ее мы будем использовать для удобства сборки собственного окружения.
- На следующем этапе нам необходимо выбрать диск и его разметку, куда будет установлена система. Можно воспользоваться встроенным инструментом для «ручной разметки», если не устраивает автоматически предлагаемый вариант (btrfs + swap)
- На этом этапе нам предложат выбрать географическую зону и часовой пояс с параметрами синхронизации времени и т.п. Ничего интересного.
- На следующем шаге производится создание пользователя (ей), настройка паролей и параметров входа в систему.
- Ну наконец-то мы и добрались до этапа проверки, изменения (при желании или такой необходимости) выбранных ранее настроек и подтверждения параметров установки будущей системы. Выполняем проверку/корректировку, подтверждаем нажатием на кнопку «Установить» и наслаждаемся процессом установки новой системы на диск.
Минут через 5-10, когда установщик закончит выполнять все свои задания, произойдет автоматическая перезагрузка компьютера. Нас уже будет встречать оконный менеджер LightDM с окном приглашения для авторизации и входа в свежеустановленную графическую среду IceWM с "фирменной" раскраской.
На этом все, базовая система установлена с браузером Firefox, центром настроек Yast2 и эмулятором терминала Xterm; реально же - ничего лишнего! Xterm нам потребуется для установки своего набора ПО, Firefox поможет с поиском недостающей информации, а Yast2 (он же центр) и кто-то сразу захочет им пользоваться вместо командной строки. Я же, по классике жанра, все расскажу и покажу далее с использованием оной.
Первым-наперво, обновим систему, особенно важно это сделать, если на этапе установки вы не подключили сетевые репозитории (все действия выполняем из под root, пока наш пользователь не добавлен в группу wheel и не внесены некоторые корректировки в файл sudoers). Можно конечно и так пользоваться командой sudo, помня что для авторизации каждый раз придется вводить пароль root, а не вашего пользователя (что мне совершенно не понравилось). В openSUSE такая возможность предоставлена по-умолчанию, добавлением 2-х строк в файл sudoers, которые мы позже закомментируем или вовсе удалим.
* Проверка списка репозиториев и исключение из него
* локального репозитория установочного диска (флешки):
# zypper lr
# zypper rr <имя или номер реп-ы из списка вывода команды выше для удаления>
* Синхронизация базы данных репозиториев и запуск обновления системы:
# zypper ref
# zypper dup
Вносим правки в файл /etc/sudoers и добавляем нашего пользователя в группу wheel, чтобы позволить ему в будущем выполнять действия от лица суперпользователя, используя команду sudo, авторизуясь со своим паролем:
* Откроем файл sudoers для редактирования:
# visudo
* Кому не нравится работать в vim, можно открыть файл в редакторе nano:
# nano /etc/sudoers
* Комментируем, как показано ниже - следующие строки файла:
#Defaults targetpw # ask for the password of the target user i.e. root
#ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw'!
* Убираем комментарий со следующей строки и сохраняем файл:
%wheel ALL=(ALL:ALL) ALL
* Добавляем пользователя в группу wheel:
# gpasswd -a <user_name> wheel
Перезагружаем компьютер и можно начинать использовать sudo в привычном режиме.
Далее, добавим репозитории X11:Xfce и X11:Utilities (они потребуется для дальнейших операций), установим один недостающий пакет git-core и можно смело приступать к формированию будущей графической оболочки на базе оконного менеджера openbox.
* Для добавления и использования репозитория X11:Xfce, нужно выполнить следующие команды:
sudo zypper ar --refresh --priority 80 http://download.opensuse.org/repositories/X11:/xfce/openSUSE_Tumbleweed/ X11:xfce
sudo zypper ref
sudo zypper dup --allow-vendor-change --from X11:xfce
* Для добавления и использования репозитория X11:Utilities, нужно выполнить следующие команды:
sudo zypper ar --refresh --priority 90 https://download.opensuse.org/repositories/X11:/Utilities/openSUSE_Tumbleweed/ X11:Utilities
sudo zypper ref
sudo zypper dup --allow-vendor-change --from X11:Utilities
* Установка git (минимального git):
sudo zypper in git-core
На следующем шаге клонируем git-репозиторий моей сборки openbox для opensuse в корень домашней папки пользователя (или куда душе угодно)
git clone https://gitlab.com/scorpp13/openbox.git
Далее, переходим в скачанную папку, устанавливаем все зависимости, указанные в файле necessary-packages (вот тут-то нам и пригодятся ранее добавленные репозитории, например пакет tint2 исключен из основного репозитория после обновления 08.01.2025), копируем файлы/папки только что склонированного репозитория в аналогичные своего домашнего каталога, перезагружаемся... да чего там сложного-то; короче кому надо разберется.
Tumbleweed-версия моей сборки openbox постоянно меняется и дополняется. От начального варианта owl4ce, на базе которого она и делалась, практически остались только некоторые идеи оформления, да минимальный набор скриптов, и то сильно переделанный мной. Я не очень понимаю смысл устанавливать инструменты в систему, а потом создавать свои скрипты, которые реализуют уже готовый функционал этих же самых инструментов.
Также мне не нравится завязка всех скриптов на один базовый, так как потом, чтобы что-то поменять/добавить/убрать, приходится все это дело перелопачивать в поисках различных ключей и связей. Мой вариант сборки основан на использовании готовых инструментов системы и только потом, в случае такой необходимости, собственных скриптов. Посмотреть, как все должно выглядеть после установки сборки, можно тут: openSUSEbox.
Теперь пара лайфхаков. Про системный язык и раскладки клавиатуры мы уже немного поговорили на этапе подготовки к установке. Поскольку мной был выбран полностью английский вариант на этапе установки (системный язык + раскладка), то позже пришлось ручками добавлять нужные настройки. Как же так, скажете вы? Есть же центр настроек Yast2 и в нем все можно поменять. Да, но выбрать системным русский язык не представляется возможным, потому как он просто-напросто отсутствует в списке выбора. Возможно - это санкции, не осмелюсь ничего утверждать, не углублялся в тему, не изучал вопрос. Вот такая интересная закавыка. Плюс Yast2 показывал мне, что установлена русская локаль (язык системы то оставался английским), но весь интерфейс продолжал говорить по-английски! Это, конечно, не беда, ведь все линуксы - одинаковы. В openbox используется свой файл для задания системных переменных: ~/.config/openbox/environment
Удобная вещь, однако. Для задания переменной достаточно вписать строчку типа:
* Таким способом я заставил говорить все приложения по-русски
export LANG="ru_RU.UTF-8"
Настройка переключателя раскладок. Для ноутбука лучшим вариантом нашел использование в качестве переключателя клавишу CapsLock, индикатор которой свидетельствует мне о выборе той или иной раскладки клавиатуры. Системный пакет localectl позволяет все это реализовать буквально одной командой. !Не забывайте проверить доступные в вашей системе вариации раскладок, моделей, опций клавиатуры (localectl help). Приведенный ниже пример имеет отношение только к моей системе:
* Опция --no-convert предотвращает внесение изменений в настройки консоли etc/vconsole.conf
* внося изменения только в файл настроек для X11 - /etc/X11/xorg.conf.d/00-keyboard.conf
sudo localectl --no-convert set-x11-keymap us,ru pc105+inet qwerty grp:caps_toggle,grp_led:caps
Второй лайфхак касается имени хоста и то, что ожидает пользователя, если таковой не задан. Лично я потерял достаточно много времени, пока увидел проблему, разобрался в ситуации и нашел решение.
Все дело в том, что изначально мной ставилась сборка owl4ce, в которой в качестве терминала используется urxvt с его настройками, а также преднастроенный picom, и проблему увидел далеко не сразу. Как только установил свою сборку с alacritty и собственными настройками picom, так сразу обратил внимание, что при запуске alacritty окно терминала вообще не появляется. Сначала вообще подумал, да и фиг с этим alacritty, когда есть kitty. Потом решил углубиться в суть и стал изучать логи.
Оказалось, что при запуске alacritty крашился из-за отсутствия протокола авторизации, аналогично происходило и с picom, когда запускал его не режиме демона, а обычным способом. Пошел по "ложному" пути, стал ковырять pam, polkit, порталы разные... потерял много времени. Систему несколько раз переустанавливал, сначала думая, что проблема вообще кроется где-то в моей сборке. Не смотря ни на что решил не сдаваться. Стал искать помощь в сети на аналогичные проблемы. На форуме opensuse их оказалось немало; видимо не я один столкнулся с подобными "приключениями"!
В итоге все оказалось до банального просто, но блин, почему они (разработчики opensuse) все так реализовали? Дело в том, что при не заданном имени локального хоста, пользователь логинится в х-сессию со сгенерированным системой именем и приложения, которые используют самостоятельную авторизацию не могут нормально работать, так как отсутствует протокол авторизации для них. Лечится все это безобразие установкой пакета xhost и добавлением следующей команды в автозапуск сессии:
* Добавим следующую строчку в ~/.bashrc:
xhost +si:localuser:$USER
Вот такая может возникнуть интересная ситуация! Позже мной было указано имя хоста в файле /etc/hostname и теперь все работает без этого "патча".
Немного про Yast2, Zypper и... пора уже и честь знать!
Yast2 - центр управления операционными системами openSUSE. Там есть все: репозитории, софт, языки, переменные, пользователи, сеть, безопасность, службы... Местами очень удобно: раз, и все инструменты уже под рукой. Можно запустить из командной строки и использовать его псевдографическую оболочку (мне даже удобней показалось именно так):
sudo yast2
Присутствуют некоторые нюансы: пример с локалями, не хватает настроек клавиатуры. Но не стану за это сильно критиковать, ибо есть инструменты системы и есть
Zypper - фирменный менеджер репозиториев, пакетов. Выполнен с немецким качеством и педантичностью. Прост в понимании, легок в использовании и, ко всему прочему, быстр и стабилен. Мне очень понравился и зашел. Вся нужная информация для пользователя (справка) выводится командой zypper или zypper help, вывод которой хорошо структурирован и совсем не перегружен лишним. Примеры часто используемых команд:
zypper # вывести список доступных глобальных опций и команд
zypper help search # вывести справку для команды search (se)
zypper lр # увидеть, какие требуются патчи-обновления
zypper patch # применить необходимые патчи
zypper se player # поиск всех совпадений в названиях пакетов по тегу 'player'
zypper rm tint2 # удалить пакет tint2
zypper in thunar # установить пакет thunar
zypper in yast* # установить все пакеты по шаблону yast*
zypper up # обновить все установленные пакеты до последних версий
Zypper отличается еще и тем, что простой очистки системы от ненужных пакетов/зависимостей в нем как бы и нет. Обычное удаление с ключем 'rm' - удалит лишь сам пакет без его дополнений. Поиск с ключем и опцией к нему 'pa --unneeded' - выведет список "ненужных пакетов", но не покажет зависимости каждого из них. Можно сразу удалять пакеты с использованием ключа с опцией 'rm -u' и не париться по поводу очистки или изменить настройки zypper.software, включив эту опцию в /etc/zypp/zypp.conf
solver.cleandepsOnRemove = true
* После включения данной настройки, если необходимо будет удалить только сам пакет
* без его зависимостей, то придется использовать команду удаления с опцией:
sudo zypper rm -U <имя_пакета>
Да, нас на каждом шагу предупреждают, что изменение настроек по-умолчанию способно нанести вред системе. Каждый выбирает сам, но ковыряться потом в поисках "хвостов", то еще занятие. Да, понимаю, что когда пакет удаляется не сразу, то часть его зависимостей, вполне может стать частью зависимостей другого пакета, установленного позже. В таком случае будет не лишним проверить зависимости всех пакетов командой:
sudo zypper ve
Такие вот особенности присущи этому пакетному менеджеру. Ничего лишнего не удалит, ничего не поломает. Только наследит немного. Часть "хвостов", кстати, при полном обновлении системы вероятно удалится, но это - не точно. Думается, что разработчики прежде всего руководствовались надежностью и стабильностью системы, применяя именно такие настройки для zypper.software.
Осталось что-нибудь написать про сам дистрибутив. Да - это далеко не самый популярный у нас линукс, но в нем есть все и даже больше для ежедневного комфортного пользования. Возможно и вам стоит к нему присмотреться по-ближе, возможно и вы сможете его для себя открыть.
Ах да, совсем забыл про конечную цель проекта, достигнута ли она в итоге? Помните, как и с чего все начиналось? CachyOS + Openbox => время собирать камни. Сравнивая с CachyOS могу заключить, что этот "хамелеон" вышел победителем. Он ни сколько не медленней, а может в чем-то даже и быстрей (по крайней мере ощущается именно так). По удобству пользования и оснащению системными утилитами - также ни в чем не уступит. Надежность и стабильность, почему-то предполагаю, что окажется на стороне "хамелеона". Думаю, что у меня получился весьма достойный вариант легковесного десктопа для моего старенького ноутбука, основанного на openSUSE Tumbleweed, такой себе знаете ли "сусе на минималках"))
Комментарии
11:40
11:44
12:56
15:02
Прикольно просто, а так всё верно ...
12:30
12:57
https://i.ibb.co/FxQV9qX/2025-01-05-21-47.png
12:58
Для начала, не знал, что стартовали со Slackware, ведь уже давно используют rpm пакеты.
Оценил изобретательность первой картинки, а потом, видимо, в Live есть утилита для снимков экрана. Снимки свои, как рекомендовано, по крайней мере тот, где MBR с GPT и разделом на 8Мб, такой не найти!
13:01
Не совсем мои...))
13:04
13:57
Строго говоря, это имеет мало отношения к тому, что Вы сейчас видите)))
13:34
Зато там говорят о процедуре само обновления. Интересно, что попытка делается до вопросов про настройку сети, а полученные файлы будут сохранены во временную папку загруженного Live образа и будут использованы при установке, а потом удалены. Установщик, во многом, не такой, как другие. Даже по-русски может, но потом система про него "не знает".
13:55
Читать легко, смотреть приятно! До всяких мелочей докапываться не буду, ибо результат достигнут, так или иначе!)))
20:00
15:01
А электричество то было тогда?
15:57
16:06
90-е годы 19 столетия — это 1890. В то же время одним из первых общедоступных способов применения электричества было освещение; условия для этого оказались созданы после изобретения лампы накаливания в 1870-х годах.
15:04
Так что я опять не попробую Сусю (не особо и горю желанием есичеснооднимсловом).
Ибо Арчиком единым...
P.S. Тут к CachyOS никак не приступлю (изучения ради)...
P.P.S. А плюсанул-то за труды от души однако!!
19:52
Вот напрасно ее игнорируете. Минимум - стоит попробовать. После арча с классическим оконным менеджером, заходит на ура! Тем более у Вас имеются собственные сборки openbox...
16:08
Сам пробовал OpenSUSE на одном ноутбуке.
Потом решил поставить его на новый, но не завелось ! ;(
После граба просто кирпич без изображения и реакции на любый действия. Смена образа/версии/флешки не помогла.
Ну и я поставил на ноут Alma. Нужен был rpm, неважно какой. На старом ноуте Суся по-прежнему установлена, возвращаюсь к ней периодически.
18:15
сейчас уже rpm-based дистров избегаю .
Хотя начинал с Мандрейка )
22:18
Во времена когда я только начинал знакомится с линуксами, а это времена виндовс хр мне на работе показывали опенсузю. Но работа была напряженная и я посмотрел только рабочий стол. Понравился. Хотя из-за своих заморочек с Российскими линуксами не посмотрю ваша дистрибутив. Интересная статья. Еще раз спасибо.
23:55
IceWM как рабочий стол по умолчанию — надо попробовать. Хотя пару раз пробовал устанавливать Сусю, и всё заканчивалось, когда требовалось установить ffmpeg и кодеки — здесь как-то всё где-то на стороне и в разных вариациях, так что нужно самому точно знать, что тебе нужно и устанавливать именно его. Я-то избалован дебианом, где всё идёт общей кучей со всеми зависимостями и работает сразу. Времени разбираться и курить форумы у меня не было, поэтому сносил.