====== Скрипти SlackBuild ====== Скрипти SlackBuild це файли командного інтерпретатора (за звичай вони сумісні з Bourne shell) які автоматизують процес конфігурації, компіляції та створення пакету для Slackware в архівному форматі (*.tgz, *.txz, *.tbz). ===== Огляд ===== Процес створення пакету для Slackware з сирцевого коду можна поділити на слідуючи частини, деякі деталі можуть відрізнятись відносно системи. - Розпакування архіву з сирцевим кодом (за звичай це файли з розширенням .tar.gz or .tar.bz2) в робочу директорію. - Створення файлу ''slack-desc'', з описом програмного забезпечення в коректній формі. - Конфігурація сирцевого коду та за необхідністю застосування патчів до коду. - Компіляція/будівництво з сирцевого коду та генерація бінарних файлів. - Встановлення програми в тимчасову директорію. Цей крок може бути складніший, це залежить від системи збірки та як працює ''make install'' (чи схожий за функцією інструмент). У стандарті GNU Makefiles, достатньо передати перемінну ''DESTDIR'' у команду ''make install''. В нестандартних Makefiles та в системах збірки які не підтримують цю опцію, наприклад застосовують патчі до ''Makefile'' (чи до схожого за функцією файл) чи редагують конфігурацію збір-очної системи. - Копіювання документації та інших важливих файлів (включаючи скрипти після встановлення) в піддиректорію тимчасового каталогу встановлення. Розміщення документації за замовченням знаходиться згідно зі стандартом пакетного менеджера Slackware а саме в ''/usr/'' директорії. - Використовується утиліта ''makepkg'' для створення в тимчасової директорії (локація вставлення) пакету для Slackware який можна бути встановити використовуючи утиліту ''installpkg''. Поки усі переобчисленні кроки робляться в ручну включаючи написання усіх команд. Автоматизувати цей процес допомагають скрипти, яки поширюють користувачі між спільнотою. Так само ці SlackBuild скрипти можна відредагувати та використовувати задля оновлення вже встановленого програмного забезпечення. ===== Створення скриптів SlakcBuild ===== Гарний урок по створенню скриптів SlakcBuild можна знайти [[http://www.slackwiki.com/Writing_A_SlackBuild_Script|тут]], декілька [[http://slackbuilds.org/templates/|шаблонів]] які потрібні для створення скриптів. Також, програмне забезпечення може бути написане на різних мовах програмування, використовувати різні системи збірки чи може використати інтерпретовану мову програмування в якої нема можливості встановлення цієї програми. В цій ситуації необхідно зробити багато кроків при написанні SlackBuild скрипта, цей процес може дуже відрізнятися від звичайної схеми. Просте копіювання команд з інших скриптів може спрацювати, а може і ні. Рекомендовано усім хто пише скрипт SlackBuild, перед написанням розібратися з системою збірки використаної в конкретному проекті. В процесі написання SlackBuild скриптів Ви будите збільшувати свій ступінь володіння написання Shell скриптів, що є дуже корисним досвідом. В ідеалі, простий проект написаний на мові C, з використанням стандартної системи GNU Make, добрий початок для тренування та практики написання SlackBuild скриптів. Для новачка, буде дуже корисно зробити усі кроки створення пакунку в ручному режимі з сирцевого коду, перед тим як братись за написання SlackBuild скприта. Це зменшіть вірогідність появлення помилки та неочікуваної поведінки скрипта. Завантаження SlackBuild скрипта до публічного репозіторія як наприклад http://www.slackbuilds.org може вимагати дотримання регламентованих стандартів написання. Наприклад, може бути обов’язково вказування цвілевої архітектури під час запуску скрипта, замість того щоб вписувати архітектуру в сам скрипт. Ці стандарти допомагають зробити SlackBuild скрипти як наймога переносимими між комп'ютерами. ===== Автоматичні генератори SlackBuild скриптів ===== Деякі інструменти які можуть допомогти в створенні SlackBuild скриптів. Ось деякі приклади. * [[http://alien.slackbook.org/AST/ | Alien's SlackBuild Toolkit (AST)]] \\ Базований на веб технологіях "майстер", автор [[wiki:user:alienbob|Eric Hameleers]] * [[http://www.dawoodfall.net/slackbuilds/noversion/mkslack/ | mkslack]] \\ SlackBuild генератор, автор David Woodfall ===== Зовнішні посилання ===== * SlackBuilds репозиторій - http://www.slackbuilds.org/ * SlackBuild шаблони - http://slackbuilds.org/templates/ ===== Джерела ===== * Автор оригіналу [[wiki:user:vharishankar|V.Harishankar]] для проекту SlackDocs Wiki {{tag>slackware slackbuild}}