[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Це стара версія документу!


Translating…

Скрипти SlackBuild

Скрипти SlackBuild це файли командного інтерпретатора (за звичай вони сумісні з Bourne shell) які автоматизують процес конфігурації, компіляції та створення пакету для Slackware в архівному форматі (*.tgz, *.txz, *.tbz).

Огляд

Процес створення пакету для Slackware з сирцевого коду можна поділити на слідуючи частини, деякі деталі можуть відрізнятись відносно системи.

  1. Розпакування архіву з сирцевим кодом (за звичай це файли з розширенням .tar.gz or .tar.bz2) в робочу директорію.
  2. Створення файлу slack-desc, з описом програмного забезпечення в коректній формі.
  3. Конфігурація сирцевого коду та за необхідністю застосування патчів до коду.
  4. Компіляція/будівництво з сирцевого коду та генерація бінарних файлів.
  5. Встановлення програми в тимчасову директорію. Цей крок може бути складніший, це залежить від системи збірки та як працює make install (чи схожий за функцією інструмент). У стандарті GNU Makefiles, достатньо передати перемінну DESTDIR у команду make install. В нестандартних Makefiles та в системах збірки які не підтримують цю опцію, наприклад застосовують патчі до Makefile (чи до схожого за функцією файл) чи редагують конфігурацію збір-очної системи.
  6. Копіювання документації та інших важливих файлів (включаючи скрипти після встановлення) в піддиректорію тимчасового каталогу встановлення. Розміщення документації за замовченням знаходиться згідно зі стандартом пакетного менеджера Slackware а саме в /usr/ директорії.
  7. Використовується утиліта makepkg для створення в тимчасової директорії (локація вставлення) пакету для Slackware який можна бути встановити використовуючи утиліту installpkg.

Поки усі переобчисленні кроки робляться в ручну включаючи написання усіх команд. Автоматизувати цей процес допомагають скрипти, яки поширюють користувачі між спільнотою. Так само ці SlackBuild скрипти можна відредагувати та використовувати задля оновлення вже встановленого програмного забезпечення.

Створення скриптів SlakcBuild

Гарний урок по створенню скриптів SlakcBuild можна знайти тут, декілька шаблонів які потрібні для створення скриптів.

Також, програмне забезпечення може бути написане на різних мовах програмування, використовувати різні системи збірки чи може використати інтерпретовану мову програмування в якої нема можливості встановлення цієї програми. В цій ситуації необхідно зробити багато кроків при написанні SlackBuild скрипта, цей процес може дуже відрізнятися від звичайної схеми. Просте копіювання команд з інших скриптів може спрацювати, а може і ні.

Рекомендовано усім хто пише скрипт SlackBuild, перед написанням розібратися з системою збірки використаної в конкретному проекті. В процесі написання SlackBuild скриптів Ви будите збільшувати свій ступінь володіння написання Shell скриптів, що є дуже корисним досвідом. В ідеалі, простий проект написаний на мові C, з використанням стандартної системи GNU Make, добрий початок для тренування та практики написання SlackBuild скриптів.

Для новачка, буде дуже корисно зробити усі кроки створення пакунку в ручному режимі з сирцевого коду, перед тим як братись за написання SlackBuild скприта. Це зменшіть вірогідність появлення помилки та неочікуваної поведінки скрипта.

Завантаження SlackBuild скрипта до публічного репозіторія як наприклад http://www.slackbuilds.org може вимагати дотримання регламентованих стандартів написання. Наприклад, може бути обов’язково вказування цвілевої архітектури під час запуску скрипта, замість того щоб вписувати архітектуру в сам скрипт. Ці стандарти допомагають зробити SlackBuild скрипти як наймога переносимими між комп'ютерами.

Автоматичні генератори SlackBuild скриптів

Деякі інструменти які можуть допомогти в створенні SlackBuild скриптів. Ось деякі приклади.

Зовнішні посилання

Sources

  • Originally written by V.Harishankar for the SlackDocs Wiki Project

 uk:slackware:slackbuild_scripts ()
Переклад цієї сторінки?: