skript From Wikipedia, the free encyclopedia
configure je obvyklým jménem konfiguračního skriptu, který se spouští jako jeden z příkazů používaných při instalaci softwarového balíčku ze zdrojových textů. Běžný uživatel počítače by měl k jeho použití přistoupit až v okamžiku, kdy požadovaný software není k dispozici v podobě nativního balíčku určeného pro jeho systém nebo distribuci, protože překlad ze zdrojových textů může být zdlouhavý, může vyžadovat detailní znalosti nainstalovaného softwaru, případně doinstalování dalších balíčků. V některých případech může být nezbytná i ruční úprava zdrojových textů. Protože používání balíčků určených pro konkrétní systém přináší další výhody (dobrý přehled o stavu softwaru nainstalovaného v počítači, možnost otestování neporušenosti softwaru, upgradu na vyšší verzi, případně odinstalace již nepotřebného softwaru), často se zdrojový balíček používá ne pro přímé nainstalování softwaru, ale pro vytvoření nativního balíčku, který se následně nainstaluje .
Účelem konfiguračního skriptu je přizpůsobit zdrojové texty a buildovací systém použité platformě a knihovnám, případně dalším programům dostupným na cílovém počítači, aby bylo možné provést překlad (přesněji sestavení) na co největším množství počítačových platforem. Skript porovnává knihovny na uživatelově počítači s knihovnami požadovanými softwarem před jeho překladem ze zdrojového kódu a vytváří případně upravuje soubory, které budou použity při vlastním překladu. Přestože obvyklé jméno konfiguračního skriptu je configure
, v některých balíčcích může být jeho jméno jiné, například s velkým počátečním písmenem nebo s nějakou příponou. Obvykle se jedná o skript napsaný v Bournově shellu, ale může být napsán v jakémkoli skriptovacím jazyce.
Buildování softwaru ze zdrojových kódů byl obvyklý postup na většině starších unixových systémů. Po rozbalení distribučního archivu je třeba obvykle provést tři kroky:
Skript configure provádí první z těchto kroků.
Typický postup pro instalaci softwaru ze zdrojových textů stažených z Internetu je následující:
$ tar zxvf balíček-verze.tar.gz
$ cd balíček-verze
$ ./configure
$ make
$ /bin/su
$ make install
Některé balíčky lze nainstalovat i bez práv správce, tj. bez použití příkazu su
. Na některých systémech lze poslední dva příkazy nahradit příkazem sudo make install
. Oproti starším návodům je třeba na mnoha systémech psát příkaz ./configure
s tečkou a lomítkem na začátku, aby interpret příkazů spustil skript configure
z aktuálního adresáře. Na starších systémech interpret příkazů hledal programy a skripty i v aktuálním adresáři, což je nyní považováno za bezpečnostní riziko.[1]
V balíčku bývá často soubor s popisem, jak balíček přeložit a nainstalovat. Obvykle se jmenuje INSTALL
, případně mohou být informace obsaženy v souboru Readme.
Příkaz ./configure
zkusíme nejprve spustit bez parametrů; pokud se spuštěný skript dotazuje na informace o systému, které neznáme, odpovídáme stisknutím klávesy ↵ Enter - skript obvykle doplní implicitní hodnoty nebo hodnoty, které určí otestováním systému.
Příkaz ./configure
může doplněn parametry; jejich seznam se vypíše zadáním
$ ./configure --help
Mezi důležité parametry patří --prefix=PREFIX
, udávající, v jakém stromě adresářů budou umístěny soubory potřebné pro provozování programů z balíčku a --exec-prefix=EPREFIX
, udávající, v jakém stromě adresářů budou umístěny binární programy. Konkrétní jména adresářů lze zadat pomocí parametrů—bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man]
Od verze 1.3 automake navíc umožňuje zadáním
$ DESTDIR=kořen make install
při instalaci předřadit před PREFIX
a EPREFIX
jméno adresáře, do kterého má být celá struktura souborů instalována (což je vhodné při vytváření RPM balíčků nebo instalaci na disk jiného počítače zpřístupněný pomocí například NFS jako adresář kořen
).
Pokud balíček umožňuje vytvářet varianty s různou funkčností nebo předpokládající přítomnost určitého balíku na cílovém systém, lze tyto varianty vybírat pomocí—enable-VLASTNOST—enable-VLASTNOST=hodnota—disable-VLASTNOST—with-BALÍK—without-BALÍK
Další parametry je možné skriptu configure
dodat pomocí parametrů tvaru jméno=hodnota
- například
CC | příkaz volající překladač jazyka C |
CFLAGS | příznaky (řádkové parametry) pro překladač jazyka C |
LDFLAGS | příznaky (řádkové parametry) pro linker (např. -Ladresář, pokud se má program linkovat s knihovnami umístěnými v nestandardním adresáři) |
CPPFLAGS | příznaky (řádkové parametry) pro preprocesor jazyka C (např. -Iadresář, pokud program používá hlavičkové soubory umístěné v nestandardním adresáři) |
CPP | příkaz fungující jako C preprocesor |
Pro zadání architektury lze použít parametry --build=ARCHITEKTURA
, při křížovém překladu --host=ARCHITEKTURA
nebo
--target=ARCHITEKTURA
.
Na konci svého běhu vypíše configure
zprávu do config.log
. Příkaz ./configure --help
vypíše seznam parametrů, které je možné použít v příkazovém řádku pro povolení nebo zakázání volitelných vlastnosti, například:
$ ./configure --libs="-lmpfr -lgmp"
$ ./configure --prefix=/home/myname/apps
První řádek vyžaduje použití knihoven mpfr
a gmp
. Druhý řádek požaduje, aby výsledný balíček byl nainstalován do adresáře /home/myname/apps
. Soubor INSTALL
by měl obsahovat návod, co dělat, když build balíčku selže.
Pro zjednodušení multiplatformního vývoje softwaru vytvořili vývojáři softwaru GNU's Autotools[2], což je sada skriptů, které otestují systém, na kterém jsou spuštěny, pro nastavení prostředí, architekturu platformy a existenci a umístění souborů požadovaných pro build a běh softwaru. Získané informace se ukládají do souboru configure.ac
(dříve do configure.in
), odkud je skript configure
čte v průběhu buildu.
Kontrolu závislostí lze na novějších systémech provést pomocí pkg-config, který využívá makra PKG_CHECK_MODULES v m4. Před nástupem pkg-config byla často vytvářena zvláštní makra v m4 pro hledání souborů potřebných pro vyhledání knihoven, na kterých software závisí.
Prvním programem, který používal skript configure byl Usenet klient rn, který napsal Larry Wall v roce 1984. Skript byl napsaný ručně a při svém běhu vypisoval žertovné komentáře. Stále přežívá jako součást buildovacího systému programu trn.
Ekosystém programů pro automatizaci vytváření configure skriptů se od té doby značně rozšířil; k nejpoužívanějším patří systém GNU Autoconf.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.