мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
glossary:gnu_linux:distributions:slackware [2025/05/05 18:14] radi0devglossary:gnu_linux:distributions:slackware [2026/02/11 15:01] (текущий) radi0dev
Строка 1: Строка 1:
 +~~NOCACHE~~
 +
 ====== slackware ====== ====== slackware ======
  
-==== История ====+++++Slackware - это (ака Slackware Way)| 
 +  * дистрибутив, который может быть **целиком** установлен без доступа к сети с CD/DVD дисков. 
 +  * дистрибутив, который выпускается только тогда, когда **стабилен**, и не имеет фиксированного графика выхода. Каждый выпуск Slackware Linux тщательно тестируется командой Slackware и сообществом. Slackware высоко ценит стабильность, предпочитая её "новизне" или "свежести" программного обеспечения. 
 +  * дистрибутив, в котором "простота" **предпочтительнее** "удобства". Например, отсутствуют графические помощники (обычные во многих других коммерческих дистрибутивах) для задач администрирования системы. 
 +  * дистрибутив, в котором настройка и администрирование системы выполняются **простыми** консольными (ncurses) сценариями или непосредственным редактированием хорошо документированных конфигурационных файлов в текстовом редакторе. 
 +  * дистрибутив, который предпочитает опакечивать "ванильное", то есть немодифицированное, программное обеспечение. В результате отсутствия или малого количества собственных изменений ("заплаток") программное обеспечение в Slackware работает настолько близко к тому, **как было задумано** его создателями, насколько это возможно. 
 +  * дистрибутив, который **не добавляет слоёв абстракции** или усложнения поверх существующих решений. Например, управление пакетами Slackware осуществляется простыми сценариями, работающими с файлами пакетов - сжатыми архивами (*.tgz, *.txz, *.tbz), управление пакетами не имеет средств обработки зависимостей. 
 +  * дистрибутив, который верен **здравому смыслу** изречения "не чини то, что не сломалось"
 +  * дистрибутив, в котором основные решения принимает BDFL (**B**enevolent **D**ictator **F**or **L**ife - //великодушный пожизненный диктатор//, нынешний главный мэйнтейнер **Патрик Фолькердинг** и где процесс разработки более закрытый, чем в дистрибутивах, развиваемых исключительно сообществами. Как результат, дистрибутив **сосредоточен на собственных сильных сторонах** и достоинствах, а не на удовлетворении произвольных предпочтений сообщества или кого-либо ещё. По этой причине стремление к популярности и удовлетворению потребностей массового рынка оказывает меньшее влияние на команду разработчиков Slackware. 
 +++++
  
-Во времена первых дистрибутивов, сущевствовал тн //SLS//, удобный тем, что собирать из исходников там требовалось((в те времена ядро Linux не имело поддержки загружаемых моделуй и драйверы приходилось жестко включать в ядро и компелировать в него. При изменении оборудования приходилось перекомпилировать ядро.)) только ядро, все ПО поставлялось уже в бинарном виде, а сжатых tar-болах. Инициализация происходила через скрипты командной оболочки, а в качестве загрузкичка использовался LILO. Пакетного менеджера небыло((вернее были программы для утановки и удаления ПО, но без разрешения зависимостей)). SLS был популярен, но его плохо поддерживали.+===== История =====
  
-==== Особенности ====+Во времена первых дистрибутивов, сущевствовал тн //SLS//, удобный тем, что собирать из исходников там требовалось((в те времена ядро Linux не имело поддержки загружаемых моделуй и драйверы приходилось жестко включать в ядро и компелировать в него. При изменении оборудования приходилось перекомпилировать ядро.)) только ядро, все ПО поставлялось уже в бинарном виде, а сжатых tar-болах. Инициализация происходила через скрипты командной оболочки, а в качестве загрузкичка использовался LILO. Пакетного менеджера небыло((вернее были программы для утановки и удаления ПО, но без разрешения зависимостей)). SLS был популярен, но его плохо поддерживали. Студент, использовывший SLS для учебы, задолбавшись при каждом запуске системы чинить ее косяки, создал свою сборку и стал распространять ее анонимно через FTP server. Эта сборка и стала Slackware.
  
-В качестве пакетов тут используются tarballs. Управление пакетами проивзодится так:+===== Пакеты ===== 
 + 
 +В качестве пакетов тут используются tarballs. Управление пакетами производится так:
 <code bash> <code bash>
-Выполнить инструкции для установки+Менеджер пакетов (интерактивные операции с установленными пакетами) 
 +pkgtool 
 +# Запустить текстовый интерфейс для просмотра, настройки и удаления уже установленных пакетов 
 + 
 +# Установить пакет из tarball
 installpkg <path_to_tar> installpkg <path_to_tar>
 # --root    задает директорию для установки # --root    задает директорию для установки
 # --dry-run вывести предпологаемые действия и не выполнять их # --dry-run вывести предпологаемые действия и не выполнять их
 +# --backup  создать резервные копии перезаписываемых файлов
  
 # Выполнить инструкции для удаления # Выполнить инструкции для удаления
 removepkg <path_to_tar> removepkg <path_to_tar>
 +# --preserve-конфиги  не удалять конфигурационные файлы из /etc
 +# --dry-run           вывести предпологаемые действия и не выполнять их
  
-Установить новый пакета то, что осталось от старого, удалить; +Распаковать содержимое пакета без установки (полезно для просмотра) 
-Новый не значит "моложе", так что можно использовать для откатов версий.+explodepkg <path_to_tar> 
 +# --dest <dir>  указать каталог для распаковки 
 +# --list        только показать список файлов внутри архива 
 + 
 +# Создать tarball-пакет из каталога с исходниками/файлами 
 +makepkg <output_tar> <source_dir> 
 +# --compress <gzip|bzip2|xz>  задать формат сжатия 
 +# --manifest <file>          включить/обновить манифест пакета 
 + 
 +# Установить новый пакет и удалить остатки старого (обновление/откат)
 upgradepkg <path_to_tar> upgradepkg <path_to_tar>
 +# --root    задает директорию для установки
 +# --backup  сохранить перезаписываемые файлы перед заменой
 +# --dry-run вывести предпологаемые действия и не выполнять их
 +
 </code> </code>
  
Строка 25: Строка 58:
  
 Так как пакетного мереджера тут нет, ставить ПО и разрешать зависимости нужно руками. Так как пакетного мереджера тут нет, ставить ПО и разрешать зависимости нужно руками.
 +
 +==== SlackBuild ====
 +
 +SlackBuild - это сценарий оболочки (обычно совместимый с bash), который автоматизирует процесс конфигурирования, компиляции и создания пакета Slackware (файлы *.tgz, *.txz, *.tbz) из исходных кодов.
 +
 +++++Обобщенное описание процесса|
 +  - Распаковка архива с исходными кодами в "рабочий каталог".
 +  - Создание файла //slack-desc// правильного формата с описанием ПО.
 +  - Конфигурирование исходного кода и, если надо, применение patch'ей.
 +  - Сборка исходных кодов и генерация бинарных файлов.
 +  - Установка программы во временный каталог, тоесть редактирование //Makefile// и запуск ``make install`` (или другой системой сборки).
 +  - Копирование документации программы и прочих необходимых файлов (включая послеустановочные сценарии) в соответствующие подкаталоги временного каталога установки. Их расположение должно соответствовать принятой в //Slackware// структуре каталогов, устанавливаемых пакетным менеджером, а именно: находиться в префиксе (иерархии) ''/usr''.
 +  - Использование ''makepkg'' во временном каталоге для создания пакета //Slackware//, который затем может быть установлен c помощm. ''installpkg''.
 +++++
 +
 +<note tip>Перед написанием слакбилда стоит провести установку ПО вручную. Это преупредит появление непредсказуемого поведения и всяких багов</note>
 +
 +[[playground:guides:writing_a_slackbuild|Гайд по написанию слакбилдов]]
 +
 +Свои слакбилды можно и нужно размещать публично (например, [[http://www.slackbuilds.org|тут]]), что бы быть полезным членом сообщевства.
 +
 +Иногда можно встретить предсобранные пакеты, их достаточно установить (installpkg). Обычно они с суффиксом ''.tgz'' или ''.txz''.
 +
 +===== Управление пакетами =====
 +
 +==== slackpkg ====
  
 Для упращения(( Для упращения((
Строка 37: Строка 96:
   * ''slackpkg install foo''   * ''slackpkg install foo''
 ))  )) 
-жизни есть [[soft:slackpkg]]. +жизни есть ''slackpkg''. Зеркало выбирается в ''/etc/slackpkg/mirrors'', выбрать можно __только одно__. 
 + 
 +usage: 
 +<code bash> 
 +# Обновить базу пакетов (информацию о пакетах на сервере) 
 +slackpkg update 
 + 
 +# Поиск пакета 
 +slackpkg search foo 
 + 
 +# Скачивание и установка пакета 
 +slackpkg install foo 
 +</code> 
 + 
 +PS [[https://dslackw.gitlab.io/slpkg/install/|инструкция по установке этого чуда]] 
 + 
 +==== rpm2tgz ==== 
 + 
 +Варианты устанвоки ПО, распространяеого в RPM пакетах: 
 +  * Собрать собственный пакет Slackware 
 +  * Скомпилировать и установить прямо из исходного кода 
 +  * Сконвертировать установку из RPM через ''rpm2tgz'' 
 + 
 +usage: 
 +<code bash> 
 +# Сконвертировать RPM в tgz 
 +rpm2tgz foo-x.x.xx.rpm 
 + 
 +# Установить полученный tgz 
 +slackpkg install foo 
 +</code> 
 + 
 +===== Материалы ===== 
 + 
 +  * [[http://www.slackware.com|сайт проекта]] 
 +  * [[https://docs.slackware.com/|slackdocs]] 
 +  * [[https://www.slackbook.org/|slackbook]] 
 +  * [[https://slackbuilds.org/|slackbuilds]] 
 +  * [[https://git.slackware.nl/|Alien BOB's repo]] 
 +  * [[https://wiki.alienbase.nl/|alienbase]] 
 +