Nejsem si jistý, jestli je to nejlepší místo, kde se na to zeptat – nasměrujte mě prosím správným směrem, pokud existuje lepší místo.
Řekněme hypoteticky, že mám dva stroje – A je vývojový stroj a B je produkční stroj. A má software jako kompilátor, který lze použít k sestavení softwaru ze zdroje, zatímco B ne.
Na A mohu snadno vytvářet software ze zdroje podle obvyklého postupu:
./configure
make
Poté mohu nainstalovat zabudovaný software na A spuštěním sudo make install
. Co bych však opravdu rád udělal, je nainstalovat software, který jsem právě vytvořil na B. Jaký je nejlepší způsob, jak to udělat?
Zvažoval jsem několik možností:
- K instalaci softwaru na B použijte správce balíčků:tato možnost pro mě není vhodná, protože software dostupný ve správci balíčků je velmi zastaralý.
- Nainstalujte kompilátor a další nástroje pro sestavení na B:Raději nebudu instalovat nástroje pro sestavení na produkční stroj kvůli různým omezením.
- Ručně zkopírujte binární soubory z A do B:toto je náchylné k chybám a rád bych se ujistil, že binární soubory jsou instalovány konzistentním způsobem na produkčních strojích.
- Instalujte pouze
make
na B přeneste zdrojový adresář a spusťtesudo make install
na B:toto je nejlepší řešení, které jsem zatím našel, ale z nějakého důvodu (možná posunutí hodin),make
se pokusí znovu sestavit software, který by měl být již vytvořen, což selže, protože nástroje pro sestavení nejsou nainstalovány na B. Protože moje stroje mají také strašnou rychlost I/O, přenos zdrojového adresáře trvá velmi dlouho .
Bylo by opravdu hezké, kdyby existoval způsob, jak vytvořit nějaký druh balíčku obsahujícího vestavěné binární soubory, které lze přenést a spustit pro instalaci binárních souborů a konfiguračních souborů. Existuje nějaký takový nástroj?
Přijatá odpověď:
S využitím toho, co máte doposud, a pokud je makefile generován pomocí GNU autotools, nastavil bych cílové umístění nebo instalační cestu s
./configure --prefix=/somewhere/else/than/the/usual/usr/local
a poté spusťte
make && make install
a nakonec zkopírujte soubory ze složky prefix do usr/
složku v druhém počítači. To za předpokladu, že oba stroje mají stejnou architekturu, pokud ne, použijte odpovídající cross toolchain.