Slackware Linux — старейший в мире сохранившийся дистрибутив Linux. Дистрибутив является медленно развивающимся проектом, между релизами которого часто проходит несколько лет. Например, промежуток между Slackware 14.2 и последней версией 15.0 составил около пяти с половиной лет.
Slackware имеет заслуженную репутацию за стабильность и простой технический дизайн. Дизайн, который часто игнорирует современные подходы к управлению системой. Slackware по-прежнему использует текстовый установщик системы, имеет подходы 90-х годов к управлению пакетами и предпочитает редактировать текстовые файлы, а не графические инструменты, когда приходит время настраивать большинство параметров конфигурации.
Официальный носитель дистрибутива не предлагает живого окружения рабочего стола, хотя существует ветка сообщества, которая предоставляет живое окружение для тех, кто хочет протестировать дистрибутив на своем оборудовании. В официальном анонсе релиза проекта признается этот медленный стиль изменений, отмечается, что Slackware только сейчас принимает аутентификацию PAM (то, что большинство других дистрибутивов Linux используют с 1990-х годов) и продолжает использовать классическую программу SysV init вместо systemd:
«Мы приняли PAM (наконец-то), поскольку проекты, в которых мы нуждались, отказались от поддержки чисто теневых паролей. Мы перешли с ConsoleKit2 на elogind, что значительно упростило поддержку программного обеспечения, ориентированного на эту систему инициализации, и привело нас в соответствие со стандартами XDG. Мы добавили поддержку PipeWire в качестве альтернативы PulseAudio, а также поддержку сессий Wayland в дополнение к X11».
Другими словами, хотя в Slackware используется много современного программного обеспечения, такого как KDE Plasma 5.15, версия 5.15 ядра Linux и PipeWire, основной стиль и подход остаются такими же, как и 25 лет назад.
Slackware 15.0 доступен для 32-битных и 64-битных сборок архитектуры x86. Существует также ветка проекта для ARM, хотя установочный носитель для нее не был доступен в день релиза. 64-разрядная сборка (x86_64) имеет размер 3,6 ГБ.
При загрузке с носителя Slackware появляется текстовый экран, на котором можно выбрать параметры ядра. Затем следует второй текстовый экран, где нам предоставляется возможность выбрать карту клавиатуры. Затем установочный носитель переводит нас в консоль, где мы можем войти в систему под именем root без пароля. Над приглашением к входу в систему находится полезное сообщение, сообщающее нам, что нам нужно отформатировать диск и создать хотя бы один раздел, а затем выполнить команду setup, чтобы начать работу.
Установка Slackware
Перед запуском команды setup мы можем запустить fdisk или cfdisk, чтобы начать разметку жесткого диска. Эти консольные менеджеры разделов предоставляют простые, но функциональные инструменты для форматирования диска. После этого можно приступать к установке.
Программа установки Slackware использует ряд текстовых меню и подсказок, которые помогут нам выбрать раскладку клавиатуры, раздел подкачки и исходный носитель. Обычно в качестве исходного носителя используется локальный DVD/USB-привод. Нам предоставляется возможность выбрать раздел, который будет использоваться в качестве корневой файловой системы, а также выбрать способ форматирования этого раздела. Поддерживается большинство файловых систем Linux, включая ext2/3/4, Btrfs, Reiserfs, F2FS и XFS.
Программа установки спросит нас, какие категории программного обеспечения мы хотим установить. Категории очень разнообразны: базовая система, базовые сетевые функции, графическое окружение и игры. Доступны рабочие столы KDE Plasma и Xfce, и я решил оставить первый. По умолчанию выбраны все категории. Я оставил большинство вещей, которые, как мне казалось, мне понадобятся, исключив только рабочий стол Xfce, игры, инструменты разработки и Emacs. Затем нам предоставляется возможность дополнительно выбрать, какие именно пакеты установить, или просто установить все из выбранных категорий. Автоматический выбор всего, что может занять около 15 ГБ дискового пространства. Я выбрал вариант «terse», который в основном устанавливает все в выбранных категориях с минимальным выходом. Затем я ждал, пока названия пакетов прокручивались на экране, а файлы копировались на мой жесткий диск.
Программа установки закончила копирование файлов, а затем предложила сделать USB-накопитель для загрузки. Далее программа установки предлагает настроить загрузчик LILO, технологию, которая в значительной степени была заменена в экосистеме Linux на GRUB. Затем нам предлагается задать имя хоста и выбрать использование статического IP, DHCP, NetworkManager или SLAAC для настройки сети.
Следующий экран программы установки предлагает нам включить определенные службы, такие как Samba, syslog, сетевое время, службы электронной почты, печать CUPS и OpenSSH. Большинство служб, кроме cron (для планирования задач) и OpenSSH (для удаленного доступа), отключены. Затем мы выбираем наш часовой пояс из списка. Затем нас спрашивают, какой vi-подобный редактор мы хотим использовать: elvis, nvi или vim. Затем мы можем выбрать, какой оконный менеджер запускать, когда мы не используем KDE Plasma, и установить пароль root. Затем нам скажут, что мы можем перезагрузить систему, чтобы начать использовать Slackware. Это долгий процесс установки, и по умолчанию на жесткий диск помещается много программ.
Первые впечатления
Загрузочное меню Slackware делает паузу на две минуты, чтобы дать нам время установить параметры загрузки, а затем выводит сообщения о состоянии, пока система загружается. Перед нами появляется текстовая консоль и приглашение к входу в систему. Когда мы входим в систему под пользователем root, нам показывают номер версии ядра (5.15.19) и оставляют делать все, что мы хотим. Система работает только с текстом и использует около 100 МБ оперативной памяти. С установленной по умолчанию коллекцией программ система использует необычно много дискового пространства: 11 ГБ, плюс пространство подкачки. Таким образом, Slackware при использовании настроек по умолчанию занимает необычно много места на диске — отчасти потому, что установлено так много зависимостей — и довольно мало в оперативной памяти.
Здесь нет ни приветственного сообщения, ни мастера первого запуска. Slackware ожидает, что мы знаем, что делаем, или что у нас есть альтернативный способ доступа к документации. Мы можем использовать локально установленные страницы руководства и утилиты командной строки GNU.
Будучи ветераном Slackware, я знал, что первое, что я захочу сделать, это создать новую учетную запись пользователя. Я сделал это, выполнив команду adduser. Сначала все шло хорошо: я указал свое имя, оболочку по умолчанию и группы. Но затем терминал перешел в бесконечный цикл, запрашивая у меня новый пароль и тут же заявляя, что я ничего не вводил. Это происходило снова и снова, вскоре заняв 100% процессора и вынудив меня завершить сеанс с другого терминала, так как мой основной терминал заблокировался.
Я обнаружил, что новая учетная запись была создана, просто пароль не был применен. Я снова вошел в систему под именем root и установил пароль с помощью команды passwd. Следующим шагом было создание графической среды. Есть несколько способов сделать это. Один из лучших подходов — настроить Slackware на загрузку в графическом режиме вместо терминала. Мы можем сделать это, отредактировав файл /etc/inittab и изменив уровень выполнения по умолчанию с 3 на 4. При следующей загрузке появится красочный экран входа в систему.

Экран входа в систему предлагает ряд опций сеанса. По умолчанию Plasma работает на X11, но предлагаются Xsession, Plasma Failsafe, Plasma Wayland и Plasma Full Wayland. Я не знал, в чем разница между Wayland и Full Wayland, но похоже, что Wayland включает сервер отображения XWayland для совместимости с приложениями X11, а Full Wayland использует исключительно среду Wayland.
Аппаратное обеспечение
Я экспериментировал как с живым образом Slackware, так и с установочным ISO. Живой диск смог запуститься в VirtualBox (при использовании режима BIOS) и предоставил сеанс KDE Plasma, который работал без каких-либо серьезных проблем. Живая сессия не смогла работать в режиме EFI. Живой ISO не смог запуститься на моем ноутбуке и дошел только до подсказки загрузки GRUB.
Официальный носитель Slackware работал как в VirtualBox, так и на моем ноутбуке. Оказалось, что официальный носитель не имеет проблем с навигацией в классическом режиме BIOS или режиме UEFI.

Как я уже упоминал, когда Slackware сидел в командной строке, он использовал около 100 МБ оперативной памяти. При входе в рабочий стол KDE Plasma потребление памяти возросло примерно до 350 МБ. Это делает сеанс Slackware Plasma одним из самых легких по памяти из всех, что я запускал. Система быстро запустилась на ноутбуке и обнаружила все мое оборудование. При запуске рабочего стола Plasma дистрибутив немного медленнее откликался в виртуальной машине, но не настолько, чтобы это стало проблемой при работе с дистрибутивом.
Включенное программное обеспечение
Slackware поставляется с большим количеством программного обеспечения. Даже после удаления таких элементов, как игры, средства разработки и рабочего стола Xfce, меню приложений оставалось необычно переполненным. Практически все приложения KDE включены, начиная от веб-браузера Falkon и заканчивая приложением Marble globe, инструментами рисования, программами просмотра изображений, клиентом KTorrent, программой для записи дисков K3b, несколькими аудиоплеерами и пакетом для повышения производительности Calligra. Список можно продолжить, в него входят настройки принтера, несколько текстовых редакторов (в меню приложений их не менее трех), несколько веб-браузеров (я насчитал не менее четырех), а также несколько десятков игр, несмотря на то, что я явно исключил их из списка.
Дистрибутив поставляется с таким количеством приложений, что трудно найти что-либо в меню, поскольку каждая категория в двухпанельном меню содержит страницы программ запуска. Многие из этих программ я не использовал раньше или не использовал в течение долгого времени.
Slackware поставляется с медиакодеками для воспроизведения видео- и аудиофайлов. Когда я пытался открыть аудиофайлы, они воспроизводились в дистрибутивной копии XMMS 1.2.11 (которая была выпущена около 15 лет назад). При попытке воспроизведения видеофайлов дистрибутив открывал файл в QtAV. Аудио можно было услышать в фоновом режиме, но QtAV не мог отобразить визуальные компоненты видео, которые я тестировал.

На заднем плане мы видим программу SysV init (версия 3.01), работающую вместе с версией 5.15 ядра Linux.
Большинство из прилагаемого программного обеспечения, по крайней мере, те, которые я успел использовать, так как их было много, работали хорошо. Некоторые варианты были странными — например, Calligra предлагается вместо LibreOffice, а приложения QtAV и Dragon Player используются вместо VLC). Однако я подозреваю, что это, по крайней мере частично, связано с тем, что основное внимание уделяется программам KDE. Slackware официально имеет только две среды рабочего стола (KDE Plasma и Xfce), поэтому кажется, что везде, где KDE может обеспечить функциональность, он заменяет другие, более популярные варианты.

Когда дело доходит до управления системой, мы можем использовать команду su или войти в систему непосредственно как пользователь root. Утилита sudo включена в базовую систему, однако по умолчанию она не настроена на аутентификацию пользователей. Мы можем настроить конфигурацию sudo по мере необходимости.
Управление программным обеспечением
Управление пакетами в Slackware — сложная тема, и сайт проекта, похоже, старается ее не затрагивать. Посещение раздела «Пакеты» на сайте просто предоставляет веб-доступ к хранилищу пакетов, но не содержит инструкций по доступу к ним с помощью пакетного менеджера. Книга Slackware предлагает несколько основных советов по добавлению, удалению и обновлению локальных пакетов (тех, которые мы уже скачали), но не рассказывает о получении доступа к новым пакетам или репозиториям.
Давние пользователи Slackware, вероятно, знакомы с проектом Slack Builds, который предоставляет рецепты для сборки стороннего программного обеспечения. Это в некоторой степени напоминает систему портов, используемую в операционных системах семейства BSD, хотя здесь больше ручной работы, связанной с получением и сборкой пакетов. Я с сожалением отметил, что на момент написания статьи сайт Slack Builds не был обновлен для поддержки Slackware 15.0.
На сайте документации Slackware есть страница, посвященная управлению пакетами, где вкратце рассказывается об инструментах для работы с репозиториями, таких как slackpkg, который включен в дистрибутив, и сторонних менеджерах пакетов, таких как slapt-get, которые предназначены для работы в большей степени, чем менеджеры пакетов в основных дистрибутивах, таких как Fedora и Ubuntu. Из них slackpkg, вероятно, является наиболее знакомым для людей, пришедших из других проектов Linux.
При использовании утилиты slackpkg по умолчанию все еще есть препятствия, которые необходимо преодолеть. Например, slackpkg доступна только в пути пользователя root, обычные пользователи даже не увидят ее исполняемый файл по умолчанию. Попытка запустить slackpkg от имени пользователя root приводит к ошибке, говорящей о том, что сначала нужно выбрать зеркало пакета. Мы можем сделать это, отредактировав файл /etc/slackpkg/mirrors. Я выбрал для начала сервер Slackware по умолчанию.
При попытке получить информацию о пакетах из основного репозитория Slackware, slackpkg потерпел неудачу, сообщив, что сертификат безопасности сервера не распознан. Мне посоветовали использовать флаг «—no-check-certificate», чтобы обойти это. Я попробовал это обходное решение, но оно не сработало, снова сообщив об ошибке, что сертификат Let’s Encrypt не распознан.

Я попробовал два других зеркала, одно в Канаде и одно в Европе. Оба они прошли проверку сертификата, но затем не прошли проверку контрольной суммы для информации о хранилище, загруженной slackpkg. В обоих случаях ошибка, выданная slackpkg, сообщала, что контрольная сумма не вернулась, что означает, что данные хранилища либо устарели, либо были подделаны. Короче говоря, slackpkg даже не смог получить данные репозитория и не смог обновить или установить новые пакеты.
По умолчанию Slackware не поставляется с поддержкой портативных форматов пакетов, таких как Flatpak или Snap. Резюмируя мой опыт: портативные пакеты недоступны, стандартный инструмент бинарных пакетов не может успешно получить данные из репозитория, а Slack Builds еще не обновлен до новой версии 15.0, что блокирует большинство попыток обновления или установки нового программного обеспечения.
Выводы
Одна из любопытных — можно сказать, утешительных — вещей в использовании Slackware заключается в том, что базовый подход не меняется. Если вы установили Slackware 20 лет назад, то сегодня процесс практически не отличается от того, что было тогда. Управление службами то же самое, управление пакетами теперь имеет несколько больше возможностей, но классические инструменты все те же. Большая часть документации, похоже, оставалась неизменной по крайней мере десятилетие.
Slackware содержит обновленные пакеты вперемешку с пакетами из прошлого. Он работает на современном ядре с современными версиями двух популярных сред рабочего стола; он предоставляет доступ к современным веб-браузерам. Однако эти современные пакеты перемешаны с древними версиями программ, такими как XMMS, и менее популярными приложениями, такими как Calligra. Между тем, дизайн, основа, подход Slackware к выполнению задач оставался практически неизменным на протяжении всего времени, пока я работал с дистрибутивами Linux.
Это может быть либо приятным утешением, если вы пришли в сообщество Linux через Slackware. Это также может быть постоянным источником разочарования или постоянно растущего недоумения, если вы привыкли к тому, как работают другие дистрибутивы.
В Slackware были вещи, которые действительно выделялись во время моего испытания, и не только сама операционная система, ее классический подход к управлению программным обеспечением и текстовая программа установки. Главный сайт проекта по-прежнему использует HTTP вместо более распространенного безопасного протокола HTTPS. Основные серверы загрузки и объявление о выпуске предлагают ссылки на FTP, несмотря на то, что большинство современных веб-браузеров больше не поддерживают получение файлов по FTP. Живой носитель не смог запуститься в режиме UEFI, а в документации Slackware упоминается Freshmeat как популярный сторонний сайт для поиска нового программного обеспечения. Freshmeat изменил свое название в 2011 году и перестал обновляться в 2014 году. Если добавить к этому неработающую информацию о репозитории и неработающий сертификат Let’s Encrypt, создается впечатление, что инфраструктура Slackware была оставлена гнить на годы.
Я хочу сказать, что Slackware упрямо и твердо остается в прошлом. Даже новые изменения, доступные в этом выпуске, такие как PAM, были доступны в большинстве других дистрибутивов уже около 25 лет. Это дистрибутив, который, к лучшему или худшему, до сих пор считает ненужными такие вещи, как переносимые пакеты, автоматическое разрешение зависимостей программ, безопасные веб-сайты, загрузки по HTTPS и графические программы установки. И, если вы являетесь убежденным поклонником Slackware, я полагаю, что эта ориентация на компьютеры эпохи 1990-х годов имеет свою привлекательность. В дизайне Slackware есть простота, приветствие времени до таймеров systemd, Flatpaks и веб-инструментов администрирования. Slackware приглашает нас испачкать руки, делая все «по-старому», игнорируя как неприятные сложности, так и современные удобства последних 25 лет.
Пока я работал над этим обзором, я провел некоторое время на социальных платформах, таких как SlashDot и форум Slackware Reddit, где люди обсуждали новый релиз 15.0. Я постоянно замечал одну вещь: люди, празднующие выход новой версии, говорили о том, как они впервые начали работать с Linux, установив Slackware с дискет. Люди с нежностью вспоминали, как запускали Slackware в школе в 1997 году или видели в продаже коробочную копию Slackware в 1995 году. В конце концов, мне пришло в голову следующее: никто из участников этих дискуссий не упомянул, что впервые начал работать со Slackware после 2001 года. Это наводит меня на мысль, что за последние 20 лет в сообщество Slackware забрело не так много новых людей, и, учитывая очевидное намерение проекта избегать эволюции, я подозреваю, что не так много новичков собираются попробовать Slackware и остаться с ним.
Slackware привлекателен для использования на серверах, где необходимо, чтобы все было стабильно, статично, предсказуемо. Особенно при запуске классических сетевых служб. Но для современного настольного использования или даже для современного использования на сервере Slackware уже давно отстает настолько, что я нахожу, что выполнение обычных задач с помощью этого дистрибутива требует слишком много усилий. Приходится выполнять много ручной работы, а пользы от того, что приходится делать эту дополнительную работу, очень мало, если вообще есть.
Я знаю, что некоторые люди в сообществе Slackware будут утверждать, что не все изменения — это прогресс. И я согласен. Однако я также утверждаю, что без изменений не может быть прогресса. Slackware отказывается принимать почти все изменения и, хотя таким образом он обходит несколько проблем, он также упускает весь прогресс, достигнутый за последние два десятилетия.