Potřebuji zkompilovat nějaký software na svém stroji Fedora. Kde je to nejlepší místo, aby to nebylo v rozporu s baleným softwarem?
Pravidlo, přinejmenším u systémů s příchutí Debianu:
/usr/local
pro věci, které jsou „celosystémové“ —i.e. /usr/local
má sklon být ve výchozím nastavení distro $PATH
a následuje standardní hierarchii adresářů UNIX s /usr/local/bin
, /usr/local/lib
, atd.
/opt
pro věci, kterým nedůvěřujete, abyste vytvořili celý systém, s předponami pro aplikaci - tj. /opt/firefox-3.6.8
, /opt/mono-2.6.7
, a tak dále. Položky zde vyžadují pečlivější správu, ale je také méně pravděpodobné, že váš systém poruší - a je snadnější je odstranit, protože složku jednoduše odstraníte a je pryč.
Pokud opravdu nechcete, aby to vůbec zasahovalo, nedávejte to nikde do svého $PATH
.
Pokud to chcete v $PATH
, alespoň se ujistěte, že se nenainstaluje do /usr/local
. Zjistil jsem, že spousta softwaru tam vypadá, i když je nainstalován distro do /usr
.
Můj oblíbený způsob instalace softwaru sestaveného na míru je v mém $HOME
adresář. Tímto způsobem nemusíte používat Sudo
pro nic a je to velmi pěkně odděleno od zbytku vašeho systému. Například:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
A pokud chcete, můžete přidat /home/username/stage/bin
tvému $PATH
.
FHS říká, že to dejte do/usr/local kde by se distribuce neměly dotýkat. /usr/local/bin
pro binární soubory /usr/local/src
pro zdroj a /usr/local/lib
pro knihovny. Více informací najdete v specifikace FHS
Většinu času rád umístím své vlastní kompilované věci do /opt
. Je to jakési pseudostandardní místo. Můžete také zvážit /usr/local
, ale dávám přednost tomu, aby moje věci zůstaly 100% izolované.
Dejte je do /usr/local/src
.
Co dělám, je extrahovat zdroj z tohoto adresáře. Vytvoří cestu jako
/usr/local/src/postgresql-8.3.7
Pak k tomu vytvořím symbolický odkaz:
/usr/local/src # ln -s postgresql-8.3.7 postgresql
Udělejte svoji budovu v /usr/local/src/postgresql
.
Tímto způsobem můžete pomoci, když potřebujete přepínat mezi verzemi a dokumenty, kterou verzi používáte.
To mi připomíná, že musím častěji používat checkinstall! Tímto způsobem dělám obvyklé
./configure
make
následován
Sudo checkinstall
vytvořit . deb soubor ...
Za FHS , /usr/local/
se používá pro aplikace kompilované ze zdroje, zatímco /opt/
se používá pro aplikace třetích stran, které nejsou podporovány výrobcem operačního systému.
Pokud existuje možnost - navrhl bych kompilaci vašeho softwaru a vytvoření balíčku FC (věřím, že k instalaci softwarových balíčků používá yum). Pak můžete nainstalovat tento balíček vlastního kompilovaného softwaru a odebrat jej, aniž byste zkazili celý systém.
Pokud chcete snadno nainstalovat a odstranit několik aplikací, které jste sami vytvořili, můžete použít Stow jako jednoduchý správce balíčků.
Doporučuji dvě věci:
Systém široký: použijte stow a nainstalujte pod/usr/local/stow/package-version. Pak můžete snadno přepínat mezi verzemi.
Ve svém domě, nebo pokud nemám/usr/local write write, osobně instaluji programy pod ~/.local, což je označeno standard XDG .
Můžete také použít stow lokálně, i když jsem to nikdy neudělal :)
Ve skutečnosti není tak těžké vytvořit deb nebo rpm ze zdrojového tarballu. Tímto způsobem můžete využít zařízení správce balíčků vašeho distro k udržení čistoty systému. To je to, co dělám, většinu času: jen vytvořte trochu otáček za minutu.
Mám trochu jiné nastavení než většina lidí, protože dělám hodně vývoje. Mám adresář/home/jackson/bin /, do kterého věci instaluji, a upravil jsem svůj .bashrc přidáním tohoto:
export PATH=/home/jackson/bin/bin::$PATH
export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH
Neudělal bych to pro všechno, ale během Nice to bylo pěkné.
pokud kompilujete aplikaci, můžete do cesty PATH env přidat její cestu ke spustitelným souborům. to nebude mít dopad na ostatní uživatele.
Vždy existuje možnost „dát to tam, kam patří“, ale nejdříve napiš jednoduchou rpm.
Pokud chcete, aby vaše aplikace byla dostupná pro všechny uživatele v systému a máte potřebná oprávnění, použijte/opt. Pokud chcete, aby aplikace byla k dispozici pouze pro vás (a root), použijte/home/username
Napište RPM, není to obtížné, obsahuje pokyny, kam umístit věci a provede odinstalaci snap.
Pokud tak učiníte, nainstalujte soubory pod /usr
a ne pod /usr/local
, stejně jako všechny ostatní soubory, které procházejí obalovým systémem.
Nejjednodušší způsob, jak toho dosáhnout, je chytit zdrojový balíček (.src.rpm
pro RPMites), rozbalte jej, nabourejte nový zdroj/konfiguraci/cokoli do něj, vhodně změňte verzi a vytvořte. Po instalaci si správce balíků uvědomí nový balíček, umožní jej zvážit závislosti a odinstalovat/aktualizovat.
Toto je fuška poprvé, ale pokud vyjde nová verze (nebo nějaká kritická záplata), je pak jednodušší aktualizace. Další výhodou je, že si můžete vytvořit svůj vlastní repozitář s místním softwarem, který budete sdílet např. stroji v laboratoři.