[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 скприта. Це зменшіть вірогідність появлення помилки та неочікуваної поведінки скрипта.

Submitting SlackBuild scripts to a public repository such as http://www.slackbuilds.org may additionally require adherence to certain conventions and coding standards. For instance, it would be necessary for the script to determine the target architecture at runtime rather than hard-coding it into the script. These standards attempt to make SlackBuild scripts as portable as possible.

Automated SlackBuild generators

Some tools exist that can assist you with creating a SlackBuild script. Here are a few examples.

Sources

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

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