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

Creating SlackBuild scripts

A good hands-on tutorial on creating a SlackBuild script can be found here, and there are also a few templates available to get a feeling for what is needed from a script.

However, software may be written in different programming languages, use different build systems, or may even simply be written in an interpreted programming language with no obvious way to “install” it. In such cases, many steps involved in writing a SlackBuild script will differ from the standard way. Blindly copying and pasting commands from other SlackBuild scripts may or may not work.

It is recommended that anybody who wishes to write a SlackBuild script, study and understand the build system of a software project before attempting to write a SlackBuild script for it. A degree of proficiency in writing shell scripts is also a definite benefit, as it is the practice to use Bourne shell compatible scripts for SlackBuilds. Ideally, simple C projects which use the standard GNU Make system is a good way to start practicing writing SlackBuild scripts.

For new script writers, it is a good idea to perform the above steps manually to create the package from source, before actually writing a SlackBuild script. This reduces the chances of bugs and unexpected behaviour in the script.

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 ()
Переклад цієї сторінки?: