Здравствуйте. Решил вот кроме Debian освоить ещё один дистрибутив и пусть это будет Slackware как самый классический.
Такие вопросы есть:
1. Это правда, что слака настолько сурова что в ней нет подобной другим дистрам системы управления пакетами? А та, которая всё же есть не отслеживает зависимости пакетов?
2. Если по первому вопросу я ошибаюсь, то как тогда работать? Честно пытался поиском найти подходящую тему для этого вопроса, но не нашёл. Как установить программу из локально имеющегося на диске пакета? Как установить программу из репозитория? Как производить поиск в репозитории по имени пакета, по описанию пакета, по именем файлов, входящих в пакет?
3. Правда, что сборка собственных пакетов из исходников для пользователей Slackware является более простой задачей чем для пользователей других дистрибутивов благодаря так называемым слакбилдам? Как этим пользоваться? Допустим мне нужна программа EiskaltDC++ и я скачал её исходники вот отсюда. Какие мои дальнейшие действия?
How to install software in Slackware
Спасибо сказали:
Qtrax Сообщения: 18 ОС: Slackware ванильные».
3. Основные общеупотребительные библиотеки вынесены в отдельный пакет (a/aaa_elflibs).
4. Исходники, из которых собрана система, поставляются в каталоге /source на CD/DVD диске и репозитории. Набор команд, необходимый для получения пакета, записан в сценарий оболочки имя-пакета.SlackBuild. Соответственно, для пересборки пакета с теми же настройками достаточно выполнить названный сценарий. Для изменения параметров сборки достаточно изменить их в скрипте и пересобрать пакет, выполнив скрипт. Обычно, при выходе новой версии ПО (минорной — практически всегда, мажорной — довольно часто), отличия в порядке сборки состоят не более чем в изменении номера версии (version bump), сборка новой версии сводится к:
# cp -r /cdrom/source/серия/имя-пакета ./
# cd имя-пакета
# wget http://сайт/исходники.tar.bz2
# VERSION=new.version ./имя-пакета.SlackBuild —cleanup
# upgradepkg —install-new /tmp/имя-пакета-версия-*t?z
5. Сторонние репозитории для Slackware обычно придерживаются более или менее похожей структуры.
6. Пакетный менеджер хранит сведения о пакетах в /var/log/ в *packages — текстовые файлы, содержащие описание пакета и список его файлов, в *scripts — содержимое установочного скрипта. Соответственно, ответы на вопросы установлен ли пакет, какому пакету принадлежит файл получаются при помощи тривиальных ls/find/grep. Попакетный список всех файлов выпуска в /packages/MANIFEST.bz2 и иных MANIFEST.bz2 в /extra, /testing, /source.
7. Если кто-то уже написал SlackBuild, собрал пакет, почему б не воспользоваться тем или иным?
http://repository.slacky.eu/slackware-13.3. kaltdcpp/2.2.5/
http://repository.slacky.eu/slackware64-13. kaltdcpp/2.2.5/
8. Помимо slacky.eu, весьма неплох сборник только слакбилдов slackbuilds.org и удобный к нему клиент sbopkg (sbopkg.org).
9. Для поиска слакбилдов/пакетов неплох slackfind.net (по-моему, сейчас лежит).
Install Slackware 2020 . Установка Slackware 2020 ,обзор и установка программ в Slackware
Наши партнеры
Книги по Linux (с отзывами читателей)
Библиотека сайта rus-linux.net
5.9 Управление пакетами Slackware
Пакет программ это упакованный набор связанных программ, которые готовы для установки. Когда вы скачиваете архив исходных текстов программ, вам надо конфигурировать, компилировать и установить всё вручную. С пакетом программ это уже было проделано за вас. Всё, что вам надо сделать, это установить пакет.
Другое очень удобное преимущество пакетов в том, что их можно очень легко удалить или обновить, если вы пожелаете. Slackware поставляется со всеми необходимыми пакетами для управления пакетами. Вы можете устанавливать, удалять, обновлять, создавать и проверять пакеты очень легко.
5.9.1 Обзор формата пакетов
Перед тем, как приступить к изучению утилит, вам надо ознакомиться с форматом пакетов Slackware. Пакет, это всего навсего tar архив, сжатый при помощи gzip. Пакет устроен таким образом, что он может быть развёрнут в корневом каталоге файловой системы.
Здесь приведена вымышленная программа и пример её пакета:
./ |
usr/ |
usr/bin/ |
usr/bin/makehejaz |
usr/doc/ |
usr/doc/makehejaz-1.0/ |
usr/doc/makehejaz-1.0/COPYING |
usr/doc/makehejaz-1.0/README |
usr/man/ |
usr/man/man1 |
usr/man/man1/makehejaz.1.gz |
install/ |
install/doinst.sh |
Обратите внимание на под-каталог install/ . Это специальный каталог, который может содержать скрипт, который будет выполнен после копирования файлов. Скрипт называется doinst.sh . Если система обработки пакета найдёт такой скрипт, он будет выполнен после установки пакета.
Другой сценарий может быть использован в пакете, но мы обсудим это более детально в подразделе 5.9.3.
5.9.2 Утилиты пакетов
Есть четыре основных утилиты для управления пакетами. Они могут устанавливать, удалять и обновлять пакеты.
pkgtool
pkgtool(8) это управляемая меню программа, позволяющая установку и удаление пакетов. Основное меню выглядит вот так:
Установка может быть произведена из текущего каталога, другого каталога, или с флоппи дисков. Просто выберите метод, который вы хотите использовать и pkgtool просмотрит выбранное вами расположение, на факт наличия действительных пакетов для установки.
Вы так же можете просмотреть список пакетов, который будет выглядеть вот так:
Если вы хотите удалить пакеты, выберите remove опцию, и вы увидите список всех установленных пакетов, с возможностью выбора нескольких из них для удаления. Пометьте те, которые вы хотите удалить, и нажмите OK. pkgtool удалит их.
Некоторые пользователи предпочитают эту команду утилитам командной строки. Тем не менее, следует отметить, что утилиты командной строки предоставляют гораздо больше опций. Так же, возможность обновлять пакеты реализована только, как утилита командной строки.
installpkg
installpkg(8) обеспечивает установку новых для вашей системы пакетов. Синтаксис таков:
# [ROOT=] installpkg [option] . |
installpkg имеет три опции. Только одна из них может использована при вызове программы.
Опция | Действие |
-m | Производит makepkg операцию с текущим каталогом. |
-warn | Показывает, что случится, если вы установите пакет. |
Это довольно полезно, так как вы видите в точности, | |
что случится при установке пакета. | |
-r | Установит рекурсивно все пакеты из текущего каталога. |
может так же быть маской имён. |
Table 5.6: Опции installpkg
Если вы указали переменную окружения ROOT, до выполнения installpkg, то путь, указанный в переменной будет использован вместо корневого каталога. Это полезно для настройки новых дисков для вашего корневого каталога. Они обычно будут смонтированы к /mnt или что-то другое, отличное от / .
База данных установленных пакетов есть не что иное, как набор файлов, расположенных в /var/log/packages . Для каждого из пакетов там создаётся текстовый файл. Если в пакете есть после-установочный скрипт, он записывается в /var/log/scripts/ .
Вы можете указать несколько пакетов, или даже использовать шаблоны для имён пакетов. Обратите внимание, что installpkg не скажет вам, если вы переписываете уже установленный пакет. Она просто установит новый пакет поверх старого. Если вы хотите быть уверенны, чтобы файлы от старого пакета были удалены из вашей системы, воспользуйтесь upgradepkg.
removepkg
removepkg(8) обеспечивает удаление пакетов, уже установленных в вашей системе. Синтаксис таков:
# [ROOT=] removepkg [option] . |
Для removepkg есть четыре опции. Только одна из них может быть использована при вызове программы.
Опция | Действие |
-copy | Пакет будет скопирован в резервный каталог. Это создаст дерево |
каталогов оригинального пакета, без удаления его. | |
-keep | Сохраняет временные файлы, которые создаются при удалении. |
Полезно только для тестирования правильности работы. | |
-preserve | Пакет удаляется из системы, но в то же время, его копия |
сохраняется в резервный каталог. | |
-warn | Показывает, что произойдёт, если вы удалите пакет. |
Table 5.7: Опции removepkg
Если вы указали переменную окружения ROOT, до выполнения removepkg, то путь, указанный в переменной будет использован вместо корневого каталога. Это полезно для настройки новых дисков для вашего корневого каталога. Они обычно будут смонтированы к /mnt или что-то другое, отличное от / .
removepkg просматривает так же и остальные пакеты, и удаляет только файлы, являющиеся уникальными для удаляемого пакета. Программа так же просмотрит пост-установочный скрипт пакета, и удалит все символические ссылки, которые были созданы им.
Во время процесса удаления отображается статус. После удаления, база данных пакета перемещается в /var/log/removed_packages , а пост-установочный скрипт, в /var/log/removed_scripts .
Как и в случае с installpkg, вы можете указывать несколько пакетов, или использовать шаблоны для имён пакетов.
upgradepkg
upgradepkg(8) обновит пакет, уже присутствующий в вашей системе.Синтаксис программы таков:
# [ROOT=] upgradepkg . |
# [ROOT=] upgradepkg |
% |
upgradepkg вначале устанавливает новый пакет, а затем удаляет старый пакет, таким образом, файлы от старого пакета не будут мёртвым грузом висеть в ваших каталогах. Если имя обновляемого пакета изменилось, воспользуйтесь вторым вариантом обращения к программе, указав имя старого пакета (который установлен в системе) и после знака процента имя нового пакета (который вы устанавливаете) .
Если вы указали переменную окружения ROOT, до выполнения removepkg, то путь, указанный в переменной будет использован вместо корневого каталога. Это полезно для настройки новых дисков для вашего корневого каталога. Они обычно будут смонтированы к /mnt или что-то другое, отличное от / .
upgradepkg не безупречна. Вам всегда следует создавать копии ваших конфигурационных файлов. Если они будут переписаны, у вас всё ещё будет копия оригиналов.
Как и с installpkg и removepkg, вы можете указать несколько пакетов, или использовать шаблоны для имён пакетов.
rpm2tgz/rpm2targz
Red Hat Package Manager это популярный сегодня тип системы пакетов. Многие производители программ предоставляют свои программы в RPM формате. Так как это не наш родной формат, мы не рекомендуем нашим пользователям использовать их. Тем не менее, некоторые вещи доступны только в RPM (даже исходники).
Как подружиться со Slackware Linux
Преамбула: было много свободного времени, ноутбук с арчем и UEFI, наполовину свободный жесткий диск, друг-сисадмин и его совет мне поставить Slackware.
9343 просмотров
Фабула: данная статья включает в себя информацию из slackdocs, книги Дэвида Кэнтрелла о слакваре(очень советую!), форумов и других статей. Здесь я описываю процесс установки и настройки Slackware до приемлемого уровня. Цель написания: собрать все полезные ссылки в одном месте. Советую вам не торопиться и также изучить книгу и форумы, но если не терпится — поехали!
Настроим в XFCE русскую раскладку.
4. Пакетный менеджер
После всех наших махинаций можно войти в сессию Xorg от имени пользователя или даже скачать менеждер дисплея, чтобы входить не из консоли. Но стоп! Как будем его качать?
Мой друг сказал замечательную фразу: «В слаке пакетный менеджер — это ТЫ». То бишь, находим нужный пакет в формате *.tar.gz и распаковываем командой
$ tar xvzf archive.tar.gz
После чего находим внутри файлик ридми и выполняем какое-то действие, предписанное там, к примеру make install.
Но мы хотим проще!
Окей, в слакваре есть некоторые подобия пакетных менеджеров. Только ни один из них пока что не научился притягивать нужные зависимости, как это делают другие пакетные менеждеры типа pacman, emerge. Зато они умеют распаковывать и собирать пакеты.
Один из них, slackpkg, я буду настраивать ниже:
Раскомментируем ОДНО зеркало в /etc/slackpkg/mirrors и обновим его.
Источник: vc.ru