[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

Ово је стара верзија документа!


This page is still work in progress - sinisa
Страница је у изради - sinisa

СлакБилд скрипте

СлакБилд је шел (енг. shell / sr. шкољка) скрипта (обично је компатибилна са Борн шелом) која аутоматизује процес конфигурације, компајлирања/изградње и креирања Слаквер пакета (*.tgz, *.txz, *.tbz фајлова) из изворне архиве.

Преглед

Процес креирања Слаквер пакета из извoра (енг.source) може се резимирати на следећи начин, а детаљи се могу разликовати од случаја до случаја The basic process of creating a Slackware package from source can be summarized as follows, while details may vary from one build system to another.

  1. Распаковати архиву изворног фајла (обично .tar.gz or .tar.bz2 фајл) у „радну фациклу“(фолдер, директоријум).
  2. Креирајте slack-desc фајл, са описом програма у одговарајућем формату.
  3. Конфигуришите/подесите изворни фајл и додајте закрпе ако је то потребно
  4. Компајлирате/изградите изворни фајл и генеришите бинарне фајлове.
  5. Инсталирајте програму у привременом директоријуму/фасцикли. Овај корак може бити мало компликован, у зависности како make install (или томе слична функција) изградња ради. У стандардом ГНУ Make-фајлу, DESTDIR варијабла/промењива прослеђена make install команди би требала бити довољна. У не стандардним Make-fајловима и системима изградње који не подржавају ту опцију, може захтевати крпљење Makefile (или сличног фајла) или мењање конфигурације изградње у систему изградње.
  6. Копирајте програмску документацију и друге потребна фајлове (укључујући пост-инсталационе скрипте) у одговарајући поддиректоријум у привременом инсталационом директоријуму. Ове локације би требале да се придржавају структури директоријума које користи Слеаквер за складиштење апликација инсталираних пакет менаџером, то јест унутар /usr/ фолдера.
  7. Користите makepkg алатку из привременог директоријума (инсталациона локација) да би креирали Слаквер пакет који се може инсталирати користећи installpkg алатку.

Иако се горњи кораци могу ручно урадити, процес је досадан, понекад и сложен те захтева типкање много команди. Аутоматизовање процеса користећи шел скрипте допушта кориснику да дели процес са целом заједницом. Такође има смисла користити и модификовати постојећу СлакБилд скрипту за надоградњу истог програма на последњу верзију.

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
 sr:slackware:slackbuild_scripts ()