it-swarm-eu.dev

Kam mám umístit software, který si zkompiluji?

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?

130
theotherreceive

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č.

92
directhex

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.

50
Sandy

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

21
xenoterracide

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é.

10
Scott Anderson

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.

9

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 ...

6
Kevin Cantu

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.

5
Aaron Toponce

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.

5
Eimantas

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ů.

5
Daniel James

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 :)

4
elmarco

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.

3
wzzrd

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é.

3
jacksonh

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.

2
Hemant

Vždy existuje možnost „dát to tam, kam patří“, ale nejdříve napiš jednoduchou rpm.

2
Nils

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

1
Silviu Bogan

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.

0
user55149

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.

0
vonbrand