Brief: Tato podrobná příručka popisuje, jak nainstalovat program ze zdrojového kódu v Linuxu a jak odstranit nainstalovaný software ze zdrojového kódu.
jednou z největších sil vaší distribuce Linuxu je správce balíčků a související úložiště softwaru. S nimi máte všechny potřebné nástroje a zdroje ke stažení a instalaci nového softwaru do počítače zcela automatizovaným způsobem.
ale navzdory všem snahám nemohou správci balíčků zvládnout každý případ použití. Stejně tak nemohou zabalit veškerý dostupný software. Stále tedy existují situace, kdy budete muset sami sestavit a nainstalovat nový software. Pokud jde o mě, nejčastějším důvodem je, že musím kompilovat nějaký software, když potřebuji spustit velmi specifickou verzi nebo upravit zdrojový kód pomocí některých fantastických možností kompilace.
Pokud vaše potřeby patří do druhé kategorie, je pravděpodobné, že už víte, co dělat. Ale pro drtivou většinu uživatelů Linuxu, kompilaci a instalaci softwaru od zdrojového kódu pro první čas může vypadat jako zasvěcovací obřad: poněkud děsivé, ale s příslibem vstupu na nový svět možností a místo prestiže v privilegované společenství.
- a. instalace softwaru ze zdrojového kódu v Linuxu
- Krok 1: zdrojový kód z GitHub
- Krok 2: Pochopení Vybudovat Systém programu
- Krok 3: FHS
- B. Co když se něco pokazí při instalaci ze zdrojového kódu?
- Z Debianu 9.0 „Stretch“
- z CentOSu 7.0
- C. provádění změn v nainstalovaném softwaru od zdrojového kódu
- D. Nechte shell vyhledejte naše vlastní sestavení software
- Přidat odkaz z /usr/local/bin
- změna DRÁHY
- e. Jak odstranit, že nově nainstalovaný software ze zdrojového kódu
- Počkat? Kde bylo peklo závislosti?
a. instalace softwaru ze zdrojového kódu v Linuxu
a to je přesně to, co zde uděláme. Pro účely tohoto článku řekněme, že potřebuji nainstalovat NodeJS 8.1.1 do svého systému. Přesně ta verze. Verze, která není k dispozici z Debian repozitáře:
sh$ apt-cache madison nodejs | grep amd64 nodejs | 6.11.1~dfsg-1 | http://deb.debian.org/debian experimental/main amd64 Packages nodejs | 4.8.2~dfsg-1 | http://ftp.fr.debian.org/debian stretch/main amd64 Packages nodejs | 4.8.2~dfsg-1~bpo8+1 | http://ftp.fr.debian.org/debian jessie-backports/main amd64 Packages nodejs | 0.10.29~dfsg-2 | http://ftp.fr.debian.org/debian jessie/main amd64 Packages nodejs | 0.10.29~dfsg-1~bpo70+1 | http://ftp.fr.debian.org/debian wheezy-backports/main amd64 Packages
Nyní, instalaci NodeJs na Ubuntu nebo Debianu je velmi jednoduchá, pokud si to správce balíčků. Ale udělejme to prostřednictvím zdrojového kódu.
Krok 1: zdrojový kód z GitHub
stejně Jako mnoho open-source projektů, zdroje NodeJS, lze nalézt na GitHub: https://github.com/nodejs/node
Takže, pojďme přímo tam.
Pokud si nejste obeznámeni s GitHub, git nebo jiný verzovací systém stojí za zmínku úložiště obsahuje aktuální zdroj pro software, stejně jako historii všech změn provedených v průběhu let se tohoto softwaru. Nakonec až k úplně prvnímu řádku napsanému pro tento projekt. Pro vývojáře má zachování této historie mnoho výhod. Pro nás dnes, hlavní je, že budeme schopni získat zdroje z projektu tak, jak byly v daném okamžiku. Přesněji řečeno, budu moci získat zdroje tak, jak byly, když byla vydána verze 8.1.1, kterou chci. I když od té doby došlo k mnoha úpravám.
Na GitHub, můžete použít „pobočka“ tlačítko pro navigaci mezi různými verzemi softwaru. „Větev“ a „značky“ jsou v Gitu poněkud příbuzné pojmy. V podstatě, vývojáři vytvořit „pobočku“ a „tagy“ sledovat důležité události v historii projektu, stejně jako když začnou pracovat na nové funkce, nebo když se publikovat vydání. Nebudu zacházet do podrobností, vše, co potřebujete vědět, je, že jsem hledal verzi označené „v8.1.1“
Poté, co vybrali na „v8.1.1 “ tag, stránka je obnovena, nejviditelnější změnou je značka, která se nyní zobrazí jako součást adresy URL. Kromě toho si všimnete, že datum změny souboru se také liší. Zdrojový strom, který nyní vidíte, je ten, který existoval v době vytvoření značky V8.1. 1. V jistém smyslu si můžete představit nástroj pro správu verzí, jako je git, jako stroj na cestování v čase, který vám umožní jít tam a zpět do historie projektu.
V tomto bodě, můžeme stáhnout zdroje NodeJS 8.1.1. Nemůžete nechat ujít velké modré tlačítko, které navrhuje stáhnout ZIP archiv projektu. Pokud jde o mě, stáhnu a extrahuji ZIP z příkazového řádku kvůli vysvětlení. Ale pokud dáváte přednost použití nástroje GUI, neváhejte to udělat místo toho:
wget https://github.com/nodejs/node/archive/v8.1.1.zipunzip v8.1.1.zipcd node-8.1.1/
stahování archivu ZIP funguje skvěle. Ale pokud to chcete udělat „jako profesionál“, doporučuji použít přímo nástroj git
ke stažení zdrojů. To vůbec není složité— a to bude pěkný první kontakt s nástrojem, budete často setkávají:
# first ensure git is installed on your systemsh$ sudo apt-get install git# Make a shallow clone the NodeJS repository at v8.1.1sh$ git clone --depth 1 \ --branch v8.1.1 \ https://github.com/nodejs/nodesh$ cd node/
mimochodem, pokud máte problém, jen za první část tohoto článku jako obecný úvod. Později mám podrobnější vysvětlení pro distribuce založené na Debianu a RedHat, abych vám pomohl vyřešit běžné problémy.
Každopádně, kdykoliv jste stáhli zdroj pomocí git
, nebo jako ZIP archiv, nyní byste měli mít přesně stejné zdrojové soubory v aktuálním adresáři:
sh$ lsandroid-configure BUILDING.md common.gypi doc Makefile srcAUTHORS CHANGELOG.md configure GOVERNANCE.md node.gyp testbenchmark CODE_OF_CONDUCT.md CONTRIBUTING.md lib node.gypi toolsBSDmakefile COLLABORATOR_GUIDE.md deps LICENSE README.md vcbuild.bat
Krok 2: Pochopení Vybudovat Systém programu
Jsme, jako obvykle, mluvit o „shromažďování zdrojů“, ale kompilace je pouze jedna z fází, nutná k výrobě pracovní software od jeho zdroje. Build systém je sada nástrojů a postupů používaných k automatizaci a formulovat tyto různé úkoly s cílem vytvořit zcela software jen vydáním několika příkazů.
Pokud je koncept jednoduchý, realita je poněkud komplikovanější. Protože různé projekty nebo programovací jazyk mohou mít různé požadavky. Nebo kvůli vkusu programátora. Nebo podporované platformy. Nebo z historického důvodu. Nebo … nebo.. existuje téměř nekonečný seznam důvodů, proč si vybrat nebo vytvořit jiný systém sestavení. To vše říká, že existuje mnoho různých řešení používaných tam.
NodeJS používá systém sestavení ve stylu GNU, je to populární volba v komunitě s otevřeným zdrojovým kódem a opět dobrý způsob, jak začít svou cestu.
Psaní a ladění vybudovat systém je docela složitý úkol, ale i pro „koncové uživatele“, GNU-style build systémů snadnou úlohu pomocí dvou nástrojů: configure
make
.
configure
soubor je projekt-konkrétní skript, který bude kontrolovat cílovou konfiguraci systému a je k dispozici funkce v zájmu zajištění projektu může být postavena, a nakonec se zabývá specifiky aktuální platformě.
důležitou součástí typické úlohy configure
je sestavení Makefile
. To je soubor obsahující pokyny potřebné k efektivnímu sestavení projektu.
nástroj make
je naproti tomu POSIX nástroj dostupný na jakémkoli Unixovém systému. Přečte Makefile
specifický pro projekt a provede požadované operace pro sestavení a instalaci programu.
ale jako vždy ve světě Linuxu máte stále určitou shovívavost při přizpůsobování sestavení vašim specifickým potřebám.
./configure --help
příkazconfigure -help
vám ukáže všechny Dostupné možnosti konfigurace. Opět je to velmi specifické pro projekt. A abych byl upřímný, je někdy nutné se do projektu ponořit, než plně pochopíte význam každé možnosti konfigurace.
ale existuje alespoň jedna standardní volba GNU Autotools, kterou musíte znát: --prefix
volba. To má co do činění s hierarchií systému souborů a místem, kde bude váš software nainstalován.
Krok 3: FHS
Linux hierarchie systému souborů na typické distribuce většinou v souladu s Filesystem Hierarchy Standard (FHS)
tento standard vysvětluje účel různých adresářů vašeho systému: /usr
/tmp
/var
, a tak dále.
Při použití GNU Autotools— a většina ostatních budovat systémy— výchozí umístění instalace pro váš nový software bude /usr/local
. Což je dobrá volba, protože podle FSH “ hierarchie / usr / local je určena pro použití správcem systému při lokální instalaci softwaru? Při aktualizaci systémového softwaru musí být v bezpečí před přepsáním. Může být použit pro programy a data, která lze sdílet mezi skupinou hostitelů, ale nenacházejí se v /usr.“
/usr/local
hierarchie nějak kopíruje kořenový adresář, a najdete tam /usr/local/bin
pro spustitelné programy, /usr/local/lib
pro knihovny, /usr/local/share
na architektuře nezávislé soubory a tak dále.
jediným problémem při použití stromu /usr/local
pro vlastní instalaci softwaru jsou soubory pro veškerý váš software, které tam budou smíchány. Zejména po instalaci několika softwaru bude těžké sledovat, ke kterému souboru přesně /usr/local/bin
a /usr/local/lib
patří ke kterému softwaru. To však nezpůsobí žádný problém systému. Koneckonců, /usr/bin
je téměř stejný nepořádek. Ale to se stane problémem v den, kdy budete chtít odstranit ručně nainstalovaný software.
Chcete-li tento problém vyřešit, obvykle raději instaluji vlastní software do sub-stromu /opt
. Ještě jednou, citovat FHS:
_“ / opt je vyhrazeno pro instalaci doplňkových aplikačních softwarových balíčků.
balíček musí být nainstalován v /opt musí najít své statické soubory v samostatném /opt/<balíček> nebo /opt/<poskytovatele> adresářový strom, kde <balíček> je název, který popisuje softwarový balík a <poskytovatele> je poskytovatelem je LANANA registrované jméno.“_
takže vytvoříme podadresář /opt
speciálně pro naši vlastní instalaci NodeJS. A jestli jednou budu chtít odstranit tento software, bude jednoduše odstranit adresář:
sh$ sudo mkdir /opt/node-v8.1.1sh$ sudo ln -sT node-v8.1.1 /opt/node# What is the purpose of the symbolic link above?# Read the article till the end--then try to answer that# question in the comment section!sh$ ./configure --prefix=/opt/node-v8.1.1sh$ make -j9 && echo ok# -j9 means run up to 9 parallel tasks to build the software.# As a rule of thumb, use -j(N+1) where N is the number of cores# of your system. That will maximize the CPU usage (one task per# CPU thread/core + a provision of one extra task when a process# is blocked by an I/O operation.
Nic, ale na „ok“ po make
příkaz byl dokončen, by znamenalo, že došlo k chybě během procesu sestavení. Jak jsme běžel souběžně stavět, protože -j
možnost, to není vždy snadné získat chybová zpráva, vzhledem k velkému objemu produkce o sestavení systému.
v případě problému stačí restartovat make
, ale tentokrát bez možnosti -j
. A chyba by se měla objevit u konce výstup:
sh$ make
a Konečně, jakmile je kompilace šel až do konce, můžete nainstalovat software na jeho umístění pomocí příkazu:
sh$ sudo make install
A vyzkoušet:
sh$ /opt/node/bin/node --versionv8.1.1
B. Co když se něco pokazí při instalaci ze zdrojového kódu?
to, co jsem vysvětlil výše, je většinou to, co můžete vidět na stránce“ build instruction “ dobře zdokumentovaného projektu. Ale vzhledem k tomu, že cílem tohoto článku je umožnit vám sestavit svůj první software ze zdrojů, může se vyplatit věnovat čas prozkoumání některých běžných problémů. Tak jsem se udělat celý postup znovu, ale tentokrát z čerstvého a minimální Debian 9.0 a CentOS 7.0 systémy, takže můžete vidět, chyby jsem narazil a jak jsem vyřešil.
Z Debianu 9.0 „Stretch“
:~$ git clone --depth 1 \ --branch v8.1.1 \ https://github.com/nodejs/node-bash: git: command not found
Tento problém je poměrně snadno k diagnostice a vyřešit. Stačí nainstalovat git
balení:
:~$ sudo apt-get install git
:~$ git clone --depth 1 \ --branch v8.1.1 \ https://github.com/nodejs/node && echo okok
:~/node$ sudo mkdir /opt/node-v8.1.1:~/node$ sudo ln -sT node-v8.1.1 /opt/node
Žádný problém.
:~/node$ ./configure --prefix=/opt/node-v8.1.1/WARNING: failed to autodetect C++ compiler version (CXX=g++)WARNING: failed to autodetect C compiler version (CC=gcc)Node.js configure error: No acceptable C compiler found! Please make sure you have a C compiler installed on your system and/or consider adjusting the CC environment variable if you installed it in a non-standard prefix.
je zřejmé, že pro kompilaci projektu potřebujete kompilátor. NodeJS je psán pomocí jazyka C++, potřebujeme kompilátor C++. Zde jsem se nainstalovat `g++, GNU C++ kompilátor pro tento účel:
:~/node$ sudo apt-get install g++:~/node$ ./configure --prefix=/opt/node-v8.1.1/ && echo okok
:~/node$ make -j9 && echo ok-bash: make: command not found
další chybějící nástroje. Stejné příznaky. Stejné řešení:
:~/node$ sudo apt-get install make:~/node$ make -j9 && echo okok
:~/node$ sudo make install:~/node$ /opt/node/bin/node --versionv8.1.1
úspěch!
upozornění: Nainstaloval jsem různé nástroje jeden po druhém, abych ukázal, jak diagnostikovat problémy s kompilací a ukázat vám typické řešení pro řešení těchto problémů. Ale pokud budete hledat další informace o tématu, nebo si přečtěte návody, zjistíte, že většina distribucí „,, meta-balíků“, který působí jako zastřešující nainstalovat některé nebo všechny typické nástroje používané pro kompilaci software. V systémech založených na Debianu se pravděpodobně setkáte s balíčkem build-essentials pro tento účel. A na distribucích založených na Red-Hat to bude skupina“ Vývojové nástroje“.
z CentOSu 7.0
~]$ git clone --depth 1 \ --branch v8.1.1 \ https://github.com/nodejs/node-bash: git: command not found
příkaz nebyl nalezen? Stačí jej nainstalovat pomocí yum
správce balíků:
~]$ sudo yum install git
~]$ git clone --depth 1 \ --branch v8.1.1 \ https://github.com/nodejs/node && echo okok
~]$ sudo mkdir /opt/node-v8.1.1 ~]$ sudo ln -sT node-v8.1.1 /opt/node
~]$ cd node node]$ ./configure --prefix=/opt/node-v8.1.1/WARNING: failed to autodetect C++ compiler version (CXX=g++)WARNING: failed to autodetect C compiler version (CC=gcc)Node.js configure error: No acceptable C compiler found! Please make sure you have a C compiler installed on your system and/or consider adjusting the CC environment variable if you installed it in a non-standard prefix.
můžete hádat: NodeJS je napsán pomocí C++ jazyka, ale můj systém postrádá odpovídající kompilátor. Mňam na záchranu. Protože nejsem běžný uživatel CentOS, musel jsem na internetu hledat přesný Název balíčku obsahujícího kompilátor g++. Vede mě k této stránce: https://superuser.com/questions/590808/yum-install-gcc-g-doesnt-work-anymore-in-centos-6-4
node]$ sudo yum install gcc-c++ node]$ ./configure --prefix=/opt/node-v8.1.1/ && echo okok
node]$ make -j9 && echo okok
node]$ sudo make install && echo okok
node]$ /opt/node/bin/node --versionv8.1.1
Úspěch. Znovu.
C. provádění změn v nainstalovaném softwaru od zdrojového kódu
můžete nainstalovat software od zdroje, protože budete potřebovat velmi konkrétní verze není k dispozici ve vaší distribuci úložiště, nebo proto, že chcete upravit program, aby opravit chybu, nebo přidat funkce. Koneckonců, open-source je o provádění úprav. Takže využiji této příležitosti, abych vám dal chuť síly, kterou máte po ruce, když jste schopni sestavit svůj vlastní software.
zde provedeme drobnou změnu zdrojů NodeJS. A uvidíme, jestli se naše změny budou začleněny do kompilované verze software:
Otevřít soubor node/src/node.cc
ve vašem oblíbeném textovém editoru (vim, nano, gedit, … ). A pokuste se najít tento fragment kódu:
if (debug_options.ParseOption(argv, arg)) { // Done, consumed by DebugOptions::ParseOption(). } else if (strcmp(arg, "--version") == 0 || strcmp(arg, "-v") == 0) { printf("%s\n", NODE_VERSION); exit(0); } else if (strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) { PrintHelp(); exit(0); }
je to kolem řádku 3830 souboru. Poté upravte řádek obsahující printf
tak, aby odpovídal tomuto řádku:
printf("%s (compiled by myself)\n", NODE_VERSION);
pak se vraťte zpět na terminál. Než budeme pokračovat dále— a, aby vám nějaké další vhled moc za git— můžete zkontrolovat, zda jste upravili soubor:
diff --git a/src/node.cc b/src/node.ccindex bbce1022..a5618b57 100644--- a/src/node.cc+++ b/src/node.cc@@ -3828,7 +3828,7 @@ static void ParseArgs(int* argc, if (debug_options.ParseOption(argv, arg)) { // Done, consumed by DebugOptions::ParseOption(). } else if (strcmp(arg, "--version") == 0 || strcmp(arg, "-v") == 0) {- printf("%s\n", NODE_VERSION);+ printf("%s (compiled by myself)\n", NODE_VERSION); exit(0); } else if (strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) { PrintHelp();
měli Byste vidět „-“ (znaménko minus) před řádek, jak to bylo předtím, než jsi ho změnil. A “ + “ (znaménko plus) před řádkem po vašich změnách.
nyní je čas, aby znovu zkompilujte a znovu nainstalovat software:
make -j9 && sudo make install && echo okok
Tento krát, jediný důvod, proč to může selhat, je, že jste udělali překlep při změně kódu. Pokud tomu tak je, znovu otevřete soubor node/src/node.cc
v textovém editoru a opravte chybu.
Jakmile jste se podařilo zkompilovat a nainstalovat, že nové modifikované NodeJS verzi, budete moci zkontrolovat, zda vaše úpravy byly skutečně začleněny do software:
:~/node$ /opt/node/bin/node --versionv8.1.1 (compiled by myself)
Gratulujeme! Udělali jste svou první změnu na open-source program!
D. Nechte shell vyhledejte naše vlastní sestavení software
možná Jste si všimli, že jsem vždy zahájila svou nově sestavené NodeJS software zadáním absolutní cestu k binárnímu souboru.
/opt/node/bin/node
funguje to. Ale to je přinejmenším nepříjemné. Ve skutečnosti existují dva běžné způsoby, jak to napravit.
Tam jsou vlastně dva běžné způsoby, kterým se stanoví nepříjemný problém určení absolutní cesta k binární soubory,
ale aby jim porozumět, musíte nejprve vědět, že váš shell vyhledává spustitelné soubory při pohledu na ně jen v adresářích specifikovaných v proměnné prostředí PATH.
:~/node$ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Tady, na systému Debian, pokud není explicitně zadat libovolný adresář jako součást příkazu, shell bude nejprve hledat spustitelné programy v /usr/local/bin
, pak pokud není nalezen do /usr/bin
, pak, pokud není nalezen do /bin
pak pokud není nalezen do /usr/local/games
pak pokud není nalezen do /usr/games
, pak pokud není nalezen … shell ohlásí chybu „příkaz nenalezen“.
vzhledem k tomu máme dva způsoby, jak zpřístupnit příkaz shellu: přidáním do jednoho z již nakonfigurovaných adresářů PATH
. Nebo přidáním adresáře obsahujícího náš spustitelný soubor do PATH
.
Přidat odkaz z /usr/local/bin
kopírování uzel binární spustitelný z /opt/node/bin
/usr/local/bin
by to být špatný nápad, protože tím, že dělá tak, spustitelný program by již být schopen najít další potřebné komponenty patřící do /opt/node/
(to je běžná praxe pro software najít své soubory prostředků vzhledem k vlastní poloze).
tradiční způsob, jak dělat, že je pomocí symbolického odkazu:
:~/node$ sudo ln -sT /opt/node/bin/node /usr/local/bin/node:~/node$ which -a node || echo not found/usr/local/bin/node:~/node$ node --versionv8.1.1 (compiled by myself)
Toto je jednoduchý a efektivní řešení, zejména v případě, že softwarový balíček je vyroben z několika dobře známé spustitelné programy— protože budete muset vytvořit symbolický odkaz pro každý a každý uživatel-invokable příkaz. Například, pokud jste obeznámeni s NodeJS, víte, npm
companion jsem měla symbolický odkaz z /usr/local/bin
. Ale nechal jsem to na vás jako cvičení.
změna DRÁHY
za Prvé, pokud jste se pokusili v předchozím řešení, odstranit uzel symbolický odkaz vytvořen dříve začít od jasného stavu:
:~/node$ sudo rm /usr/local/bin/node:~/node$ which -a node || echo not foundnot found
A teď, tady je magie, příkaz změnit PATH
:
:~/node$ export PATH="/opt/node/bin:${PATH}":~/node$ echo $PATH/opt/node/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Jednoduše řečeno, nahradil jsem obsah PATH
proměnné prostředí tím, že jeho předchozí obsah, ale uvozuje /opt/node/bin
. Jak si to nyní dokážete představit, shell se nejprve podívá do adresáře/opt/node/bin
pro spustitelné programy. Můžeme potvrdit, že pomocí which
příkaz:
:~/node$ which -a node || echo not found/opt/node/bin/node:~/node$ node --versionv8.1.1 (compiled by myself)
Vzhledem k tomu, že „odkaz“ řešení je trvalé, jakmile jste vytvořili symbolický odkaz do /usr/local/bin
PATH
změna je účinná pouze v aktuálním shellu. Nechám vás udělat nějaký výzkum o tom, jak provést změny v PATH
stálá. Jako nápověda to souvisí s vaším „profilem“. Pokud najdete řešení, neváhejte se o to podělit s ostatními čtenáři pomocí sekce komentářů níže!
e. Jak odstranit, že nově nainstalovaný software ze zdrojového kódu
Protože naše vlastní sestaven NodeJS software sedí úplně v /opt/node-v8.1.1
adresáře, odstranění, které software vyžaduje více úsilí, než pomocí rm příkaz odstranit adresář:
sudo rm -rf /opt/node-v8.1.1
POZOR: sudo
rm -rf
jsou nebezpečný koktejl! Před stisknutím klávesy „enter“ vždy dvakrát zkontrolujte příkaz. Nebudete mít žádné potvrzovací zpráva a ne undelete-li odstranit špatné adresář…
Pak, pokud jste upravili své PATH
, budete muset vrátit zpět tyto změny, které vůbec není složité.
pokud jste vytvořili odkazy z /usr/local/bin
budete muset odstranit je všechny:
:~/node$ sudo find /usr/local/bin \ -type l \ -ilname "/opt/node/*" \ -print -delete/usr/local/bin/node
Počkat? Kde bylo peklo závislosti?
jako poslední komentář, pokud jste četli o kompilaci vlastního softwaru, možná jste slyšeli o pekle závislostí. To je přezdívka pro to, že nepříjemné situaci, kdy předtím, než je možné úspěšně sestavit software, musíte nejprve sestavit pre-potřebné knihovny, což zase vyžaduje další knihovny, které by mohly následně být nekompatibilní s některé jiné software, které jste již nainstalovali.
Součástí práce balíčku správci vaší distribuce, je to vlastně řešit, že dependency hell a zajištění různých software vašeho systému pomocí kompatibilní knihovny a jsou instalovány ve správném pořadí.
pro tento článek jsem se záměrně rozhodl nainstalovat NodeJS, protože prakticky nemá závislosti. Řekl jsem „virtuálně“, protože ve skutečnosti má závislosti. Ale zdrojový kód těchto závislostí jsou přítomny v source repository projektu (v node/deps
podadresáře), tak nemusíš stáhnout a nainstalovat ručně před ruku.