Pokud nainstaluji binární soubor s nestandardní předponou, např. /opt/bin/foo , který potřebuje nějaké statické soubory z /opt/share/foo , jak je najde? Použití zpětných odkazů vzhledem ke spustitelnému souboru (../share/foo )? Pevně zakódováno v době kompilace?
Co je idiomatické způsob, jak aplikace zpracovat variabilní předponu instalace? Měly by mít všechny adresáře předponu? (a co /var ?)
Přijatá odpověď:
Je běžné, že se takové odkazy napevno zakódují v době kompilace a možná je k dispozici možnost příkazového řádku nebo proměnná prostředí, která přepíše výchozí nastavení v době kompilace. Často si program pamatuje pouze umístění jednoho konfiguračního souboru (obvykle pod /etc ), kde lze přepsat jakékoli výchozí nastavení v době kompilace. Tento přístup dává největší smysl pro software s otevřeným zdrojovým kódem, který je kompilován stejnými lidmi, kteří vytvářejí operační systém, jako součást distribuce Linuxu nebo portů BSD.
U aplikací distribuovaných v binární formě je obvyklým přístupem najít binární aplikaci od jejího nultého argumentu. Podle konvence nultý argument pro execve (tj. argv[0] ) je cesta k binárnímu systému (je na volajícím, často shellu, aby dodržel konvenci). Pokud argv[0] neobsahuje žádné / , aplikace by měla provést $PATH vyhledat to.