Це стара версія документу!
Зміст
Скрипти 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 скрипти можна відредагувати та використовувати задля оновлення вже встановленого програмного забезпечення.
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.
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.
- mkslack
A SlackBuild generator script by David Woodfall
External Links
- SlackBuilds Repository - http://www.slackbuilds.org/
- SlackBuild templates - http://slackbuilds.org/templates/
Sources
- Originally written by V.Harishankar for the SlackDocs Wiki Project