После обновления системы на Arch Linux столкнулся с проблемой запуска PostgreSQL. Сервер не стартовал из-за несовместимости формата базы данных. В этой статье напишу, что делал и как решилось. Админам баз данных (DBA), вряд ли будет полезно, но тем кто неожиданно впоролся может и помочь решить проблему миграции данных с PostgreSQL 16 на PostgreSQL 17.
Проблема
После обновления системы и PostgreSQL, сервер не запускался:
```bash
$ sudo systemctl status postgresql
× postgresql.service - PostgreSQL database server
Active: failed (Result: exit-code)
...
мая 29 18:16:08 turbo postgres[753]: An old version of the database format was found.
Первая мысль была откатить пока базу данных на старую версию и потом искать решение, так как в кэше пакмана(пакетный менеджер ArchLinux) остаются пакеты из прошлых обновлений. Именно на такие случаи не удаляю их из кэша. Установил предыдущую версию postgesql и получил ошибку при его старте - оказалось новая версия libxml2 не работает со старым pg16. Тогда подумалось откатить и его, но от этого пакета зависит пакет для работы с архивами и если я его откачу, и система перестанет распаковывать архивы, то ситуация рискует стать похуже до такой степени, что не будет работать даже пакман.
Тогда заглянул в AUR и там оказался пакет postgresql16, которым можно попытаться собрать pg16 из исходников под текущую систему, но... короче не собралось. Насел на Сlaude 3.5 Haiku(у меня оставалось еще 50 бесплатных запросов в курсоре и если использовать haiku то получается в 3 раза больше) - пытались с ним и так и сяк починить сборку используя разные ключи компиляции и компиляторы, но не помогло.
Ну пишу ему "спасай тогда, чё". Выдает 3 способа как решить исходную проблему неработы БД: Все сводятся к миграции данных с pg16 на pg17. Для этого нужны бинарники от pg16 - иначе никак: 1. Запустить в докере через образ archlinux-base. Есть специальный пакет именно для миграции. Попробовал, но в том образе докера этот пакет поддерживал только миграцию с pg15 на pg16. 2. Взять образ докера postgres17, скачать туда бинарники pg16 и выполнить миграцию. Не нашел архив с нужными бинарниками (хотя можно было взять из кэша, но не догадался в тот момент) 3. Использовать архивы пакетов прошлых версий, включая зависимые библиотеки, подключить их через LD_LIBRARY_PATH и запустить миграцию данных в текущей системе - это сработало! Напишу подробнее как именно.
Вернулся к последней версии PosgreSQL чтобы она была в системе основной, при этом нужно временно использовать старые бинарники и библиотеки. Распаковал старые пакеты из кэша pacman:
После миграции, приложение использующее базу данных дает предупреждение о несовпадении версий правил сортировки:
ПРЕДУПРЕЖДЕНИЕ: несовпадение версии для правила сортировки в базе данных "kreagenium"
DETAIL: База данных была создана с версией правила сортировки 2.39, но операционная система предоставляет версию 2.41.
Решил проблему обновлением коллаций:
ALTER DATABASE kreagenium REFRESH COLLATION VERSION;
Важные моменты
1. Резервное копирование — всегда делайте полный дамп базы данных перед миграцией
2. Права доступа — следите за правильными правами на каталоги и файлы
3. Версии библиотек — убедитесь, что все необходимые библиотеки доступны
4. Коллации — после миграции может потребоваться обновление правил сортировки
Заключение
Миграция PostgreSQL на Arch Linux требует внимательного подхода к версиям библиотек. Использование временных каталогов для старых версий библиотек и бинарников позволяет безопасно выполнить миграцию без необходимости отката системных пакетов.
:: Replace lib32-sdl2 with multilib/lib32-sdl2-compat? [Y/n] y
:: Replace p7zip with extra/7zip? [Y/n] y
:: Replace sdl2 with extra/sdl2-compat? [Y/n] y
:: Replace webrtc-audio-processing with extra/webrtc-audio-processing-0.3? [Y/n] y
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing icu (76.1-1) breaks dependency 'libicui18n.so=75-64' required by electron28
:: installing icu (76.1-1) breaks dependency 'libicuuc.so=75-64' required by electron28
:: installing flac (1.5.0-1) breaks dependency 'libFLAC.so=12-64' required by electron28
Тут можно вызвать пояснительную команду: чего ему надо?
Эта ошибка pacman говорит о конфликте зависимостей. Обновление системы пытается установить новые версии пакетов icu (76.1-1) и flac (1.5.0-1), но у вас установлен пакет electron28, который жестко зависит от старых версий библиотек из этих пакетов (libicui18n.so=75-64, libicuuc.so=75-64, libFLAC.so=12-64).
Что происходит:
pacman -Suy хочет обновить icu и flac.
Новые icu и flac предоставляют библиотеки libicu*.so=76-64 и libFLAC.so=13-64 (или похожие новые версии).
Пакет electron28 требует именно старые версии (...=75-64, ...=12-64).
pacman не может одновременно удовлетворить требование electron28 (старые библиотеки) и установить новые версии icu и flac (которые предоставляют новые библиотеки). Поэтому он останавливает транзакцию.
Почему electron28 вызывает проблему:
Пакет electron28 скорее всего:
Из AUR (Arch User Repository): Пакеты из AUR собираются локально и могут отставать от обновлений в официальных репозиториях. Мантейнер пакета electron28 в AUR еще не обновил его для сборки с новыми icu и flac.
Из неофициального репозитория: Аналогично AUR, репозиторий может отставать.
Очень старый пакет: Возможно, он когда-то был в репозиториях, но был удален, а у вас остался.
Решение:
Самый частый и рекомендуемый способ - временно удалить пакет, вызывающий конфликт, обновиться, а затем попробовать установить его снова (он, вероятно, потребует пересборки из AUR).
Определите, что зависит от electron28: Чтобы понять, нужен ли вам electron28 напрямую, или он нужен для какой-то другой программы:
pacman -Qi electron28 | grep "Required By"
# Или более подробно:
pactree -r electron28
Если ничего важного от него не зависит, или вы можете обойтись без этой программы временно, переходите к шагу 2.
Удалите electron28:
sudo pacman -Rdd electron28
Внимание: Флаг -dd используется для игнорирования зависимостей при удалении. Используйте его с осторожностью. В данном случае он нужен, чтобы pacman не ругался, что удаление electron28 сломает сам electron28 (что логично).
Альтернатива (безопаснее): Если electron28 нужен какой-то программе (например, some-app), лучше удалить и программу, и electron28 вместе: sudo pacman -R some-app electron28.
Запустите обновление системы снова:
sudo pacman -Suy
Теперь конфликта быть не должно, и система обновится.
Сработало. Обновилось. Проблемы ушли. Но, правда, пришлось откатить ядро 6.14.2-arch1-1 на прошлую версию 6.12.1-arch1-1 которая была установлена потому что в новом пакете ядра больше нет модуля reiserfs, а у меня все еще эта файловая система.
$ uname -r
6.12.1-arch1-1
В 2011м когда ArchLinux был установлен на этот ноут версия ядра была 2.6.33 За 14 лет много ядер сменилось, а система работает как вечная несмотря на все проблемы с обновлениями, которые иногда бывают.
Всем спасибо за внимание. Если кому-то будет полезно то здесь более полный лог того, что я делал для последнего обновления.
Прежде чем мы перейдем к самой сути, давай немного поговорим о том, почему вам стоит обратить внимание на Arch Linux.
Этот дистрибутив стал популярным благодаря своей гибкости и тому, что предоставляет пользователям полное управление своей системой.
Вы сами решаете, что устанавливать, что настраивать и как выглядит рабочий стол.
Но, как и в любой хорошей истории, есть свои «подводные камни»: чистый Arch не всегда самый удобный вариант для новичков.
Но не переживайте. Многие разработчики создали «производные» дистрибутивы, которые берут всё самое лучшее от Arch, но делают это проще.
1. Manjaro Linux
Manjaro Linux
Первый в нашем списке — Manjaro Linux.
Это один из самых известных дистрибутивов на базе Arch. Он дружелюбен к новичкам и предлагает много предустановленного ПО.
Плюсы:
Легкая установка.
Замечательная поддержка сообщества.
Множество графических окружений на выбор (Xfce, KDE, Gnome).
Минусы:
Иногда обновления могут нарушить стабильность.
Если вы ищите что-то простое и функциональное, Manjaro — отличное начало. Кроме того, у них часто проходят мероприятия и конкурсы, где можно познакомиться с другими пользователями.
2. EndeavourOS
EndeavourOS
Следующий на очереди — EndeavourOS. Этот дистрибутив появился в результате закрытия Antergos и стал отличной заменой для всех тех, кто искал что-то простое и лаконичное.
Плюсы:
Минималистичный установщик с возможностью настройки.
Легкость и гибкость.
Поддержка установки через командную строку или графический интерфейс.
Минусы:
Меньше предустановленного ПО по сравнению с Manjaro.
EndeavourOS — отличный выбор, если вы хотите увидеть, как работает Arch, но не желаете вникать в сложные моменты.
3. Garuda Linux
Garuda Linux
Garuda Linux — это «свежий ветер» среди дистрибутивов на основе Arch.
Он предлагает стильный интерфейс и множество удобств для геймеров и разработчиков.
Плюсы:
Интуитивно понятный установщик.
Красивая тема и оформление.
Встроенные инструменты для оптимизации геймерского опыта.
Минусы:
Может потребовать немного больше ресурсов.
Если вы любите играть или разрабатывать, Garuda — именно то, что нужно.
4. Archman Linux
Archman Linux
Теперь давай поговорим об Archman Linux. Этот дистрибутив сочетает в себе лучшие качества Arch и фокусируется на создании с хорошей пользовательской поддержкой.
Плюсы:
Простой графический интерфейс.
Поддержка множества окружений рабочего стола.
Активное сообщество.
Минусы:
Меньше узнаваемости, чем у других дистрибутивов.
Если вы ищете что-то менее популярное, но все же удобное, Archman может стать вашим лучшим другом.
5. RebornOS
RebornOS
RebornOS создан для тех, кто ищет гибкость и возможность кастомизации.
С его помощью ты можешь попробовать разные окружения рабочего стола и поиграть с настройками.
Плюсы:
Графический установщик.
Выбор из множества предустановленных пакетов.
Легкая настройка.
Минусы:
Может потребовать времени для настройки.
Если вы любите настраивать и экспериментировать, RebornOS определенно вам понравится.
6. ArcoLinux
ArcoLinux
ArcoLinux — очень интересный дистрибутив, который обучает пользователей. Он имеет уклон на изучение, что делает его особенно подходящим для новичков.
Плюсы:
Обширная документация и учебные материалы.
Разнообразие графических окружений.
Легкость в использовании.
Минусы:
Занимает больше времени на изучение.
Если вы готовы учиться, ArcoLinux — это то, что поможет вам стать настоящим экспертом.
Выводы
Вот и все. Мы прошлись по лучшим дистрибутивам Linux на основе Arch, которые идеально подойдут для новичков.
Каждый из них имеет свои плюсы и минусы, и твоя цель — выбрать тот, который подойдет именно тебе.
Не забывайте, что мир Linux огромен и многообразен, и ты всегда можешь попробовать несколько дистрибутивов, прежде чем выбрать тот, который станет твоим постоянным другом.
Я являюсь новичком в сфере информационных технологий, а тем более в написании структурированных текстов, поэтому это не гайд. Вся информация представленная здесь является сборником изученного материала, подкреплённого моими мыслями.
Текст нацелен в первую очередь на таких же начинающих в этой области, как и я, поэтому если где-то допустил фактологические ошибки, то добро пожаловать в комментарии, буду только рад конструктивной критике.
Привет! Здесь я хочу рассказать о том, почему GNU/Linux — это лучшая операционная система на данный момент и почему тебе срочно нужно пересесть с Windows на неё.
Мы дадим определение операционной системе, пробежимся по основным семействам ОС и кратко затронем их историю, рассмотрим концепцию свободного ПО и выберем идеальный дистрибутив.
Что такое ОС?
Начнём с самого начала. Что же такое операционная система? Мы не будем углубляться в детали, так как это обширная тема, затронем только основные моменты.
ОС — это одна из самых важных и сложных программ в системе. Она выполняет несколько ключевых задач:
Управление запуском и завершением программ.
Управление всеми периферийными устройствами, предоставляя остальным программам упрощённый доступ к этим устройствам.
Например, пользовательская программа может открыть файл на чтение, указав только имя файла, прочитать из него информацию, записать данные в ОЗУ и затем закрыть файл. Все эти возможности и их скрытые технические реализации предоставляет ОС.
Схема изображает взаимодействие ОС со всеми необходимыми компонентами
Грубо говоря, это прослойка между прикладным ПО и аппаратным обеспечением компьютера.
С 1955 года начали появляться первые ОС, но самые популярные, и до сих пор используемые, системы появились в начале 90-х и разделились на два основных семейства: Windows и Unix.
История Windows
В 1975 году два друга-студента Гарварда, Пол Аллен и Билл Гейтс, разработали интерпретатор языка BASIC для компьютера Altair 8800. Спустя месяц было подписано лицензионное соглашение с компанией MITS, производителем этого ПК, на использование их интерпретатора BASIC в составе ПО для Altair. Так появилась компания Microsoft.
Пол Аллен и Билл Гейтс
В 1980 году Microsoft заключила договор с IBM на поставку операционной системы для нового компьютера IBM PC. Для этого в 1981 году Microsoft наняла Тима Патерсона для завершения адаптации 86-DOS к прототипу IBM PC. Позже компания выкупила права на 86-DOS и переименовала её в MS-DOS. В то же время IBM использовала лицензированную версию MS-DOS под названием PC DOS.
MS-DOS
Забавный факт: в 1984 году Microsoft разрабатывала ПО для Apple Macintosh
Главной инновацией Macintosh на тот момент был графический интерфейс, который значительно упростил работу с компьютером для обычных пользователей. Билл Гейтс, вдохновившись этой идеей, решил создать графическую надстройку для MS-DOS. В конце 1985 года вышла первая версия Microsoft Windows, которая ещё не была полноценной операционной системой, а лишь графической оболочкой для MS-DOS.
Дальнейшее развитие Windows можно разделить на два направления: Windows на базе MS-DOS и Windows на базе NT (New Technology).
Windows на базе MS-DOS
В это направление входят такие операционные системы, как Windows 95, 98 и Me. Эти ОС не являлись полноценными многопользовательскими и многозадачными системами, как Windows NT. Например, подсистема пользовательского интерфейса и графики оставалась 16-битной, что приводило к низкой стабильности и производительности. Проблемы в 16-битном приложении могли привести к зависанию всей системы.
Рабочий стол Windows 95
Windows на базе NT
Второе направление включает системы с припиской NT (New Technology), такие, как Windows 10 (Windows NT 10.0) или Windows 11 (Windows NT 10.0.22000), а также серверные версии, например, Windows Server 2022 (Windows NT 10.3). Первая версия из этого подсемейства, Windows NT 3.1, была выпущена в 1993 году. Эти ОС полностью 32- или 64-битные и не зависят от MS-DOS даже для загрузки. Они работают на процессорах архитектур x86, x86-64 и ARM.
Рабочий стол Windows 7
История Unix
Другая интересная линия событий происходила в конце 1960-х годов, где консорциум в составе General Electric, MIT и Bell Labs (подразделение AT&T) разрабатывал ОС под названием MULTICS. Позже Bell Labs, в составе которого работал Кен Томпсон, покинула проект, а сам Томпсон разработал свою ОС для компьютера PDP-7 и вместе с Брайаном Керниганом назвал её Unics, по аналогии с MULTICS. Окончательное название — Unix.
Позже совместно с Деннисом Ритчи они перенесли систему на более совершенный мини-компьютер PDP-11. Тогда возникла идея переписать ОС на язык программирования более высокого уровня. Попытка использовать язык "B" не увенчалась успехом, и Ритчи предложил расширить его, создав новый язык — Си.
Кен Томпсон и Денис Ритчи
В 1973 году Unix был переписан на языке Си. Это стало прорывом, так как многие считали, что высокоуровневые языки и ОС несовместимы. Однако этот шаг определил будущее развитие отрасли: язык Си и Unix остаются актуальными по сей день.
В 1977 году Unix был перенесён на новую архитектуру, благодаря Деннису Ритчи. Так появился первый переносимый компилятор Си.
Unix
Компания AT&T из-за антимонопольных ограничений не могла участвовать в компьютерном бизнесе и распространяла Unix на некоммерческой основе, лицензируя код учебным заведениям. Одним из таких заведений был университет Беркли, где была создана одна из самых популярных веток Unix — BSD, разработанная Биллом Джоем в 1977 году.
В начале 1980-х AT&T начала коммерциализацию Unix, создав Unix System 3. В 1984 году с компании были сняты антимонопольные ограничения, что привело к прекращению свободного распространения исходных кодов Unix. Это вызвало юридические споры между AT&T и BSDi, которые продолжались до 1993 года, когда AT&T продала подразделение, занимающееся Unix, фирме Novell. Последняя урегулировала разногласия с Беркли.
Пока разработчики Unix были заняты междоусобными спорами, рынок оказался заполнен множеством дешёвых компьютеров на основе процессоров Intel и ОС Windows.
История GNU/Linux
Когда в 1983 году началась коммерциализация Unix-систем, Ричард Столлман начал разработку своей Unix-подобной ОС с нуля. Он основал фонд Свободного ПО и опубликовал свой идеологический манифест. Проект получил название GNU — рекурсивный акроним фразы "GNU’s Not Unix".
Изначально это была среда разработки с компилятором gcc и набором утилит: gdb (дебаггер), glib (библиотека для Си), coreutils (основные утилиты по типу ls, rm, cat и т.п.), командная оболочка bash и ряд других программ, которые стали базовыми в подобных системах.
Ричард Столлман
Разработку ядра GNU Hurd для ОС оставили в самую последнюю очередь. Само ядро хотели сделать не монолитным, а разделить на кучу мелких программ серверов, которые бы асинхронно общались между собой. Из-за подобной идеи отлавливать ошибки было намного сложнее, поэтому разработка затянулась.
Сторонники Столлмана уже успели написать много открытого ПО, но без открытого ядра, цель полностью Свободной ОС оставалась всё ещё далека.
В 1991 году финский студент Линус Торвальдс начал разработку своего монолитного ядра Unix-подобной ОС под названием Linux для платформы i386. Вдохновившись SunOS, он создал своё ядро и публиковал его исходный код, что привлекло множество добровольцев.
Это ядро стало недостающим элементом для проекта GNU, что позволило создать полностью свободную ОС — GNU/Linux.
Линус Торвальдс
Как отмечает сам Линус, важную роль в популяризации Linux сыграли судебные споры между AT&T и университетом Беркли, что мешало распространению BSD на платформе i386.
GNU/Linux — это самая популярная Unix-подобная ОС, подразделяющаяся на множество дистрибутивов, включая коммерческие. Примеры популярных коммерческих Unix-подобных ОС — macOS на основе BSD и Android на базе ядра Linux.
Свободное ПО против Проприетарного
Линус Торвальдс решил использовать для ядра Linux лицензию GNU GPL, предложенную Ричардом Столлманом. Давайте разберёмся, что это за лицензия и что такое Свободное ПО.
Движение за Свободное ПО началось в 1983 году благодаря Ричарду Столлману, который основал Фонд свободного программного обеспечения (Free Software Foundation, FSF), чтобы продвигать свои идеи в массы.
Что же такое Свободное ПО? В английском языке термин звучит как Free Software. Здесь слово Free означает не только бесплатное, но и свободное в плане свободы использования. Бесплатное ПО может не быть свободным, если оно закрытое и проприетарное, то есть является частной собственностью компании.
Вот четыре главных принципа Свободного ПО:
Свобода запуска программы для любых целей.
Свобода изучать и изменять исходный код, чтобы программа соответствовала вашим нуждам.
Если вы не являетесь программистом, вы можете работать в команде с разработчиком или использовать коллективный контроль: к проекту могут присоединяться другие люди, которые создадут документацию для упрощённого понимания.
Свобода распространять копии программы, будь то бесплатно или за деньги.
Это значит, что Свободное ПО можно использовать в коммерческих целях, например, предоставляя услуги технической поддержки.
Свобода распространять модифицированные версии программы.
Эти принципы реализуются через лицензию GNU GPL и распространяются на всё ПО, созданное с её использованием.
Существует также более распространённый термин — Open Source (открытый исходный код). Он охватывает второй принцип Свободного ПО, но не ограничивается им. Термин закрепили Эрик Реймонд и Брюс Перенс как альтернативу термину Free Software, так как слово "free" может вводить в заблуждение, подразумевая только бесплатность.
Однако, по мнению Столлмана, Open Source не всегда означает свободу. Примером может служить UnRAR — программа для распаковки RAR-архивов, исходный код которой открыт, но лицензия запрещает использовать его для создания RAR-совместимых архиваторов. Компании, такие как Microsoft, часто используют термин Open Source, избегая понятия Free Software.
Почему стоит переходить на Свободное ПО?
Главная причина — закрытый исходный код проприетарных программ. В таких ОС, как Windows или macOS, пользователи не видят исходного кода и не могут знать, что происходит при работе программы. Приходится верить разработчикам на слово, что ваши данные защищены. Однако закрытые программы могут собирать ваши данные и использовать их в интересах бизнеса. Одним из способов подобного несанкционированного доступа является бэкдор — намеренно встроенный разработчиками способ удалённого управления или доступа к данным. Примером является обязательное обновление в Windows, которое устанавливается независимо от желания пользователя.
По этим причинам закрытое ПО можно считать потенциально вредоносным.
Хотя Свободное ПО имеет свои преимущества, идея Столлмана может показаться слишком утопичной в современном мире. Я поддерживаю мнение Брюса Перенса, одного из лидеров проекта Debian, который считает, что свободное и несвободное ПО должны сосуществовать, и первое должно стать не только альтернативой, но и лучшим выбором.
Есть две дополнительные причины от меня для такого подхода:
Свобода выбора любого ПО, будь то свободное или проприетарное.
Например, многие дистрибутивы GNU/Linux распространяют проприетарное ПО через официальные репозитории, оставляя выбор за пользователем.
Конкуренция между различными видами ПО способствует развитию технологий и увеличению числа альтернативных программ.
Дистрибутивы и какой выбрать
Операционная система GNU/Linux является свободным ПО и, на мой взгляд, остаётся лучшим выбором среди доступных ОС. Теперь, имея базу в виде GNU/Linux, нужно выбрать дистрибутив.
Дистрибутив — это собранный набор компонентов, включающий в себя:
Ядро Linux вместе с предустановленными программами, утилитами и библиотеками от проекта GNU.
Пакетный менеджер — инструмент для управления установкой, обновлением и удалением ПО.
Опционально графическая оболочка.
Дополнительные конфигурации и настройки в зависимости от дистрибутива.
Среди множества дистрибутивов можно выделить три основных для новичков:
Debian
Один из самых первых и важных дистрибутивов. Сюда входит как сам Debian, так и популярные дистрибутивы основанные на нём. Это например Ubuntu, Linux Mint, Kali Linux.
Менеджер пакетов обычно используется apt (Advanced Packaging Tool), который является надстройкой над более низкоуровневым dpkg.
Debian является дистрибутивом со смешанной системой обновлений, то есть может использовать как стабильные, так и плавающие релизы ПО. Стабильные являются более популярным и предпочтительным вариантом в этих дистрибутивах. Из-за этого в таких системах присутствует очень много стабильного, но в то же время устаревшего ПО и тут уже пользователь сам выбирает, что ему важнее - стабильность или актуальность.
Red Hat
Одна из первых компаний, которая смогла коммерциализировать свободное ПО и продавать свой дистрибутив Red Hat Enterprise Linux по подписке.
Самый интересный для нас дистрибутив на основе Red Hat Linux является Fedora. Разрабатывается Проектом Fedora при коммерческой поддержке самой Red Hat и IBM, а также являющийся тестовым полем для фич, которые в будущем предполагаются к использованию в дистрибутиве Red Hat Enterprise Linux.
Формат пакетов RPM (Red Hat Package Manager) и DNF (Dandified YUM) в качестве инструмента для управления этими пакетами.
Используется также свой метод обновления через каждые 6 - 8 месяцев, поэтому ПО там не настолько устаревшее как в том же Debian, но всё ещё и не самое новое.
Arch Linux
Разработка Arch Linux возглавляется полностью некоммерческим сообществом, в отличие от тех же Ubuntu или Fedora.
Использует менеджер пакетов pacman, а также метод обновления - плавающих релизов, то есть получает самые последние версии ПО, из-за чего может быть не очень стабильной.
Отличительной чертой Арча является то, что он устанавливается в виде минимальной базовой системы, настраивается пользователем под собственные нужды путём построения уникальной среды с установкой только необходимых компонентов.
Что выбрать?
Я рекомендую Arch Linux по следующим причинам:
Прагматичность: полная свобода выбора между свободным и проприетарным ПО.
Гибкость настройки: установка и настройка системы полностью зависят от пользователя.
Документация: ArchWiki содержит исчерпывающие инструкции и рекомендации.
Для установки можно использовать скрипт на Python - archinstall, если вы не хотите углубляться в детали на первых порах. Но людям, которые хотят изучать систему GNU/Linux рекомендуется делать это с нуля.
Если выделять различия между другими дистрибутивами, можно отметить следующее:
Арч меньше всего захламлён предустановленными программами и говорит тебе - собери свою систему сам.
Здесь устанавливаются самые последние версии ПО, за счёт метода обновления плавающих релизов, поэтому, если вы хотите, например, использовать свой компьютер как игровую машину, то такой вариант поможет вам получить подобный опыт без проблем.
AUR - пользовательские репозотории Арч. Это поддерживаемое сообществом хранилище программ для пользователей Arch, не входящих в основной репозиторий. Даёт большой выбор сторонних программ от пользователей, но в то же время и накладывает на вас ответственность, так как они не проходят такую тщательную проверку, как то же ПО из официального источника, поэтому использовать их только на свой страх и риск. Существует система голосов за понравившиеся пакеты и многие хорошие программы из AUR переносятся в итоге в официальный репозиторий.
Ну и как уже упоминалось выше - он полностью поддерживается сообществом и не зависит от решений корпораций.
Графическое окружение
Важный аспект при выборе дистрибутива — графическое окружение. Существуют два основных графических сервера: Xorg и Wayland. Wayland более современный и безопасный, но пока не полностью заменил Xorg.
На видеокартах Nvidia - Wayland может работать некорректно.
Я использую композитор для Wayland'а — Hyprland, и всё работает отлично на видеокарте AMD + 2 монитора.
После установки Arch вы получите только терминал. Для работы с графическим интерфейсом можно установить среду рабочего стола или оконный менеджер.
Среда рабочего стола (DE) — это набор программ с общим графическим интерфейсом (например, KDE Plasma, GNOME).
Оконный менеджер (WM) — программа для управления отображением окон. Может быть частью DE или работать отдельно.
Если идти по самому простому пути, например, через тот же archinstall, вам будет предложено выбрать среды рабочего стола, но я не рекомендую их ставить и вот по каким причинам:
Загруженность системы по средствам ненужных программ на фоне (привет Windows)
Плохая работа этих программ между собой и самого интерфейса в целом (хотя казалось бы должна быть максимальная совместимость)
Очень сложно изменять подобные среды под себя, например, изменить оконный менеджер, так как всё сделано с расчётом использования именно в таком виде и дополнительные изменения могут приводить к ошибкам. В Windows также используется своё окружение рабочего стола, но изменить вы сможете только то, что вам разрешит Microsoft, то есть практически ничего.
Ну и самое интересное, как по мне, — это то, что наверное во всех средах рабочего стола используются именно стековые оконные менеджеры, оправдывая это упрощённым переходом с того же Windows, но этим самым не сильно уходя от его концепции.
Здесь мы плавно перешли к различиям оконных менеджеров:
Стековые (плавающие) следуют традиционной метафоре рабочего стола, которая используется в коммерческих операционных системах вроде Windows и macOS. Окна отображаются подобно листкам бумаги на столе, накладываясь и перекрывая друг друга.
Фреймовые (тайловые) располагают окна на экране в виде плиток (фреймов) так, что они не перекрывают друг друга. Как правило, фреймовые оконные менеджеры подразумевают активное использование клавиатуры для управления окнами и имеют слабую поддержку мыши (либо не имеют её вовсе). Фреймовые оконные менеджеры могут предлагать набор стандартных расположений фреймов или позволять задавать их вручную.
Рабочий стол со стековыми окнами
Рабочий стол с фреймовыми окнами
Также существуют динамические версии, где объединены как стековые, так и фреймовые.
Почему я в первую очередь советую выбрать не среду рабочего стола, а именно отдельный оконный менеджер, так это по всем уже вышеперечисленным причинам и к дополнению к этому возможность поставить именно фреймовую версию такого менеджера.
Вот две главные причины, почему тайловые окна выигрывают плавающие:
Скорость работы за ПК ускоряется в разы, так как всё взаимодействие с системой можно осуществлять при помощи горячих клавиш на клавиатуре и переключением между виртуальными рабочими столами.
Все открытые окна будут занимать максимально возможное свободное пространство на мониторе, а при открытии новых, будут также эффективно распределяться между собой.
Вся сила Unix-подобных систем, в отличие от того же Windows, в подобном методе работы с системой. Так как много вещей вы будете делать с помощью эмулятора терминала, что я вам и советую, вместо использования только программ с графическим интерфейсом, подобный стиль управления системой даст большое преимущество.
Заключение
Программа, работающая в графическом окружении и которая выполняет функции терминала - называется эмулятором терминала.
Для новичков это может показаться чем то сложным, но когда вы немного освоитесь и привыкните, то поймёте насколько проще работать с системой через такой терминал.
Сам использую Alacritty, поэтому вам его тоже советую. Очень простая настройка в одном toml файле.
С помщью эмулятора терминала вы можете как обновлять систему одной командой с аргументами:
pacman -Syu
Так и устанавливать нужные приложения в одну строчку:
GNU/Linux предлагает свободу выбора и контроля над системой, делая его отличным вариантом для пользователей, которым важна независимость от крупных корпораций и безопасность личных данных.
Надеюсь я заинтересовал вас и вы хотя бы попробуете данную ОС и оцените все её преимущества. Дальше остаётся только пробовать и изучать новое.
Спасибо за внимание, получайте новые знания и передавайте их другим!
Источники
Программирование. Введение в профессию (А. В. Столяров) — Учебник «Программирование: введение в профессию» ориентирован на самостоятельное изучение и предполагает использование систем семейства Unix (в т.ч. Linux) в роли сквозной среды для обучения.
История Windows
Microsoft (Википедия) — История компании Microsoft, её основатели и ключевые этапы развития.
MS-DOS (Википедия) — Информация о MS-DOS, её разработке и использовании в IBM PC.
Windows (Википедия) — Подробная история развития операционной системы Windows.
Windows 9x (Википедия) — Подсемейство Windows на базе MS-DOS, включая Windows 95, 98 и Me.
Windows NT (Википедия) — История развития линейки Windows NT и её отличия от других версий.
В общих чертах, я установил драйвера NVIDIA 470 версии потому, что другие не устанавливаются из-за моей видеокарты NVIDIA GeForce GT 730, а когда я устанавливал 390 версию, то было ещё более багнуто, я не знаю что с этим делать, помогите!
Кто-то мне писал, что у меня ывод шрифтов указан не верно.
Установка драйверов была такой, чтоб было более понятно:
cd yay
yay -S nvidia-470xx-dkms nvidia-470xx-utils lib32-nvidia-470xx-utils
Кому подойдет данный способ? Flathub встроен в несколько дистрибутивов Linux, что позволяет пользователям устанавливать и запускать приложения через Flatpak. Некоторые из этих дистрибутивов включают
Fedora, openSUSE, RHEL (Red Hat Enterprise Linux), Debian, Ubuntu, Linux Mint, KDE Neon и другие
Установить Flathub можно множествами способами, а в дистрибутиве Manjaro можно включить поддержку Flathub прямо в встроенном магазине приложении, универсальный вариант подходящий многим если не каждому!
2. Ubuntu, Debian, Linux Mint (.deb)
Кому подойдет данный способ? Пользователям с дистрибутивами основанные на Debian, Ubuntu. Для этого способа ва нужно:
Скачать .deb пакет по данной ссылке, нажать правой кнопкой мыши на него, выбрать установить в магазине приложений, или открыть с помощью магазина приложения
(?) Мой дистрибутив не основан на Ubuntu, а Flathub не работает, что мне делать? Для вас есть утилита debtap, она позволяет устанавливать .deb пакеты во многих дистрибутивах, не поддерживающих их
После чего, мы открываем данный .jar файл, прошу заметить я его переименовал, с помощью jdk вашей версии. В моем случае это OpenJDK java 21
Заключение
Почему Legacy Launcher, а не Tlauncher? Тут дела удобства, вообще в Linux есть множество хороший лаунчеров которые можно установить прямо с центра приложений, или открывать с помощью .jar, или .appimage что очень даже удобно
Доброго всем дня. Сей пост посвящу тому, как установить Arch Linux. Мало ли, вдруг кто-то хочет, но не знает как.
Итак, небольшая предыстория. Коллега с работы отдала мне свой почти винтажный ноутбук. Во-первых, он уже достаточно сильно захлёбывался при просмотре потокового видео на ютубе и разных видеосервисах. А во-вторых, система охлаждения начала давать сбой — кулер стал неприятно шуметь и сам ноутбук стал заметно сильнее нагреваться. Тратиться на ремонт девушка сочла нецелесообразным и приобрела себе новую рабочую машину. А опальную подарила мне. В первую очередь я привёл систему охлаждения в порядок — смазка силиконовым маслом подшипника и замена термопрокладок дали ей вторую жизнь. Затем я прикинул, чем лучше оптимизировать железо заместо управляющего им Win7. Сначала подумал про Gentoo, но потом решил оставить его для другого, более слабого железа, а на полученный ноутбук Toshiba установить Arch.
Кстати, если вы не знали, без интернет соединения его просто не выйдет установить. Такая особенность. И лучше всего иметь проводной интернет. И да, я буду ставить из консоли. Почему? Потому что несколько лет назад у Арча был мудрёный графический установщик. Теперь его просто нет.
Очень важное действие перед началом установки:
Нужно протестировать оперативную память
Штош, начинаем:
Подключаем Wi-Fi
Пингуем... Отлично. Работает.
Теперь разметка диска. Утилита ругается. Говорит - мол, чувак, диск размечен в MBR, я не могу размечать в GPT. Старую разметку с виндой придётся снести. Поскольку ноут изготовлен во времена Медведева, то разумеется никакого UEFI на борту нет, мы будем делать обычный Legacy BIOS, но с GPT, этакую химеру, гибрид ежа с ужом. Но внезапно это будет работать, и работать хорошо. Тем и прекрасен Linux, что позволяет на старом железе реализовать современные технологии. Windows 11 тебя просто нахер пошлёт.
Начинаем.
Создание раздела загрузки BIOS
Поспешил. Не в том месте указал формат пространства.
Пожалуйста, теперь GPT подружен с BIOS и больше не ругается.
Делаем файловую систему. Btrfs, кстати, может занимать весь диск и заменять MBR и GPT. Но камон, это даже по моим меркам бред. Что лучше, если при краше файловой системы у тебя отвалится раздел или весь диск? То-то же.
Пошла установка
Ну вот как бы и всё. Не так и сложно, ага?
Я в своем арче
Кстати выбор программ мог быть произвольным. Я установил наиболее подходящий. Можно было выбрать нестандартное ядро линукса. Можно вообще поставить ядро не Linux, а Hurd, Arch его поддерживает. Осталось сгенерировать fstab, сделать часовой пояс, локали для кириллицы, загрузчик и можно грузиться в основную систему.
На борту Toshiba два ядра и три гига. И полуинтегрированная видяха. Пытаться установить сюда Win10 - все равно что укорачивать ногу под короткий костыль. Даже то, что я сделаk по сути издевательство над этим стариком.
Думаю позже поставлю все-таки среду рабочего стола, а не оконный менеджер. В роли окружения рабочего стола позднее была выбрана LXQt. Но тут дело вкуса.
Так сказать, доведённое до полуготовности. Лаконично, простенько, но со вкусом.
Не хватает RDM на борту, буду думать как поставить. И ещё интересно, можно как-то сделать так чтоб кэш приложений грузился в свап. Сразу, а не когда оперативу нагрузит. Если есть мысли - поделитесь, пожалуйста, в комментах. Приложение Microsoft Teams отжирало больше гектара, будучи запущенным. Лучше я с телефона его юзать буду.
И да, всё-таки Генту легче и оптимизированней Арча. Но это уже в другой серии с другим железом.
Для чего это было нужно? Система не решает за тебя вообще ничего и ничего нет из коробки. Вплоть до того, что ты можешь управлять даже приоритетом зеркал, откуда будут скачиваться пакеты. Это ли не кастом, это ли не тонкая настройка, это ли не рациональное использование ресурсов системы? Это ли не оптимизация системы под железо? Но честно говоря, вы таким не будете заниматься для работы. Это делается для себя, и в условиях когда системные ресурсы ограничены. В моём случае, я дал вторую жизнь ноутбуку.
И да, если ты знаешь Ubuntu, ты знаешь Ubuntu. А если ты знаешь Arch/Gentoo, ты знаешь линукс. До этого надо дорасти