간단한: 이에 대한 자세한 안내는 방법에 대해 설명합에서 프로그램을 설치하는 소스 코드 리눅스에서는 제거 방법 소프트웨어를 설치에서 소스 코드입니다.
리눅스 배포판의 가장 큰 힘 중 하나는 패키지 관리자와 관련 소프트웨어 저장소입니다. 그들과 함께,당신은 모든 필요한 도구와 자원하는 다운로드 및 설치는 새로운 컴퓨터에서 소프트웨어에서 완전히 자동적으로 제공해드립니다.그러나 모든 노력에도 불구하고 패키지 유지 관리자는 각각의 모든 사용 사례를 처리 할 수 없습니다. 도 아니다 그들은 거기에 사용할 수있는 모든 소프트웨어를 패키지 수 있습니다. 그래서 당신이 스스로 새로운 소프트웨어를 컴파일하고 설치해야 할 상황이 여전히 있습니다. 으로 나를 위해,가장 일반적인 이유에 의해,지금까지,나를 컴파일하는 일부 소프트웨어가 필요할 때 실행은 매우 특정 버전 또는 소스 코드를 수정하여 사용의 일부 멋진 컴파일 옵션이 있습니다.
당신의 필요가 후자의 범주에 속한다면,기회는 당신이 이미 무엇을해야할지 알고 있습니다. 그러나,대부분의 리눅스 사용자,를 컴파일하고 설치하기에서 소프트웨어의 소스 코드를 처음처럼 보일 수 있습니다 입문식:다소 무서운;지만 약속을 입력의 새로운 가능성의 세계와 장소의 명품에 권한 있는 커뮤니티입니다.리눅스에서 소스 코드에서 소프트웨어를 설치
그리고 그것은 정확히 우리가 여기서 할 것입니다. 이 기사의 목적을 위해 시스템에 NodeJS8.1.1 을 설치해야한다고 가정 해 보겠습니다. 그 버전 정확히. 버전에서는 사용할 수 없는 데비안 저장소:
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
지금,설치 및 라이브러 우분투에서나 데비안은 매우 간단하는 경우에 당신은 그것과 함께 패키지 관리자입니다. 그러나 소스 코드를 통해 그것을하자.
1 단계:얻어의 소스 코드 GitHub
좋아하는 많은 오픈 소스 프로젝트,소스 및 라이브러리에서 찾을 수 있습니다 GitHub:https://github.com/nodejs/node
이 바로가있다.
익숙하지 않은 경우 GitHub,git 또는 다른 버전 관리 시스템을 언급 할 가치가 저장소 포함하는 현재의 소스 소프트웨어에 대한뿐만 아니라,역사의 모든 내용이 수정되었 년을 통해 해당 소프트웨어입니다. 결국 해당 프로젝트를 위해 작성된 첫 번째 줄까지. 개발자에게는 그 역사를 유지하는 것이 많은 이점이 있습니다. 오늘날 우리에게 주요 중 하나입니다 우리는 얻을 수있을 것입니다에서 소스를 위해 프로젝트에서 그들이 특정 시점에서. 좀 더 정확하게 말하자면,내가 원하는 8.1.1 버전이 출시되었을 때처럼 소스를 얻을 수있을 것입니다. 그 이후로 많은 수정이 있었을지라도.
On GitHub 사용할 수 있습니다”분야”버튼 사이를 이동하는 다른 버전의 소프트웨어입니다. “Branch”와”tags”는 Git 에서 다소 관련이있는 개념입니다. 기본적으로,개발자를 만들”지점”및”태그”하의 프로젝트에서 역사,같은 작업 시작할 때에 새로운 기능 또는할 때 게시됩니다. 내가 가지 않을 것으로 여기서 자세히 알아야 할 모든 것은 내가 찾는 버전에 대한 태그”v8.1.1”
을 선택 한 후에”v8.1.1″태그,페이지가 새로 고침되고,태그 인 가장 명백한 변화는 이제 URL 의 일부로 나타납니다. 또한 파일 변경 날짜도 다르다는 것을 알 수 있습니다. 지금보고있는 소스 트리는 v8.1.1 태그가 생성 된 시점에 존재했던 트리입니다. 어떤 의미에서는 git 과 같은 버전 제어 도구를 시간 여행 기계로 생각할 수있어 프로젝트 기록으로 앞뒤로 갈 수 있습니다.
이 시점에서,우리는 다운로드 할 수 있습의 소스 및 라이브러 8.1.1. 프로젝트의 ZIP 아카이브를 다운로드 할 것을 제안하는 큰 파란색 버튼을 놓칠 수 없습니다. 나에 관해서는,나는 설명을 위해 명령 줄에서 우편 번호를 다운로드하고 추출 할 것이다. 그러나 당신이 선호하는 경우 GUI 를 사용하여 도구하는 것을 망설이지 않는 대신:
wget https://github.com/nodejs/node/archive/v8.1.1.zipunzip v8.1.1.zipcd node-8.1.1/
다운로드 ZIP 잘 작동합니다. 하지만 당신이 원하는 경우 그것은”프로처럼”내가 사용하는 것이 좋 직접git
도구를 다운로드 소스입니다. 그것은 복잡하지 않습에서 모든 것이 좋은 첫 번째 연락처 도구와 함께 당신은 종종 발생:
# 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/
방법으로,문제가 있는 경우,다만을 고려의 첫 번째 부분은 이 문서는 일반적으로 소개합니다. 나중에 일반적인 문제를 해결하는 데 도움이되도록 데비안 및 RedHat 기반 배포판에 대한 자세한 설명이 있습니다.
어 때마다,당신은 다운로드를 사용하여 소스git
으로 또는 우편 아카이브에,당신은 지금이 정확히 동일한 소스 파일에 현재 디렉토리:
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
2 단계:이해를 빌드 시스템 프로그램
우리는 일반적으로”에 대해 이야기 소스를 컴파일”, 그러나 컴파일이 단지 하나의 단계를 생성하는 데 필요한 작업에서 소프트웨어의 소스입니다. 빌드 시스템은 설정의 도구와 사례를 자동화하는 데 사용되고 명확한 그는 다른 작업을 구축하기 위해서는 전적으로 소프트웨어 실행하여 몇 가지 명령이 있습니다.
개념이 단순하다면 현실은 다소 복잡합니다. 다른 프로젝트 나 프로그래밍 언어가 다른 요구 사항을 가질 수 있기 때문입니다. 또는 프로그래머의 취향 때문에. 또는 지원되는 플랫폼. 또는 역사적인 이유로. 아니면…. 다른 빌드 시스템을 선택하거나 만드는 이유의 거의 끝없는 목록이 있습니다. 거기에 사용 된 많은 다른 솔루션이 있다고 말하는 모든 것.
및 라이브러리를 사용하 GNU 스타일 빌드 시스템,그것은 인기있는 곳에서 오픈 소스 커뮤니티와 다시 한 번 좋은 방법은 당신의 여행을 시작합니다.
작성 및 조정 빌드 시스템은 매우 복잡한 작업,그러나”최종 사용자가”,GNU 스타일 시스템을 구축 작업을 용이하게 하여 사용하는 두 가지 도구가:configure
make
.
configure
파일은 프로젝트-특정 스크립트는 대상을 확인하는 시스템 구성 및 사용할 수 있는 기능을 보장하기 위해 프로젝트를 구축할 수 있습은 결국 다루는 특이성의 현재 플랫폼입니다.
일반적인configure
Makefile
를 작성하는 것입니다. 즉,프로젝트를 효과적으로 구축하는 데 필요한 지침이 포함 된 파일입니다.반면에
make
도구는 모든 Unix 유사 시스템에서 사용할 수있는 POSIX 도구입니다. 프로젝트 별Makefile
를 읽고 프로그램을 빌드하고 설치하는 데 필요한 작업을 수행합니다.
그러나 Linux 세계에서 항상 그렇듯이 특정 요구에 맞게 빌드를 사용자 정의하는 데 여전히 관대합니다.
./configure --help
configure -help
명령을 보여줍니다 모든 사용 가능한 구성 옵션이 있습니다. 다시 한번,이것은 매우 프로젝트 별입니다. 그리고 솔직히 말해서,그것은 때로는 필요하으로 발굴하기 전에 프로젝트 완전히 이해 각각의 의미와 모든 구성하는 옵션입니다.
하지만 알아야 할 표준 GNU Autotools 옵션이 하나 이상 있습니다.--prefix
옵션. 이것은 파일 시스템 계층 구조와 소프트웨어가 설치 될 장소와 관련이 있습니다.
3 단계: FHS
리눅스 파일시스템의 계층 구조에 대한 일반적인 배분을 준수하는 파일시스템 구조의 표준(FHS)
는 표준의 목적을 설명하고 다양한 디렉토리의 시스템:/usr
/tmp
/var
와.
GNU Autotools 및 대부분의 다른 빌드 시스템을 사용하는 경우 새 소프트웨어의 기본 설치 위치는/usr/local
입니다. Fsh 에 따르면”/usr/local 계층 구조는 소프트웨어를 로컬로 설치할 때 시스템 관리자가 사용하기위한 것입니까? 그것은 시스템 소프트웨어가 업데이트 될 때 덮어 쓰기에서 안전 할 필요가있다. 호스트 그룹간에 공유 할 수있는 프로그램 및 데이터에 사용할 수 있지만/usr 에서는 찾을 수 없습니다.”
/usr/local
/usr/local/bin
/usr/local/lib
/usr/local/share
아키텍처에 대한 독립적인 파일과.
유일한 문제 때 사용하는/usr/local
/usr/local/bin
/usr/local/lib
/usr/bin
는 거의 같은 엉망입니다. 그러나 수동으로 설치 한 소프트웨어를 제거하려는 날 문제가 될 것입니다.
를 해결하는 문제,나는 일반적으로 선호하는 사용자 정의 설치에 소프트웨어/opt
sub-트리 대신 합니다. 다시 한번,FHS 를 인용하기 위해:
_”/opt 는 애드온 애플리케이션 소프트웨어 패키지 설치를 위해 예약되어 있습니다.
패키지를 설치할 in/opt 을 찾아야 합니다 그 정적 파일에서 별도의/opt/<>나/opt/<><><>공급자의 LANANA 등록된 이름입니다.”_
그래서 우리는 특별히 사용자 정의 NodeJS 설치를 위해/opt
의 하위 디렉토리를 만들 것입니다. 면 언젠가를 제거하려는 소프트웨어,나는 단순히 제거하는 디렉토리:
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.
아무것도 하지만”확인”을 한 후make
-j
옵션,그것은 항상 검색하기 쉬운 오류 메시지가 주어진 대량의 출력에 의해 생산됩니다.
문제가 발생하면make
-j
옵션이 없습니다. 그리고 오류가 나타납니 근처의 끝 출력:
sh$ make
마지막으로,한 편집해서 결국,당신은 당신이 설치할 수 있는 소프트웨어를 그 위치를 실행하여 명령:
sh$ sudo make install
와 테스트:
sh$ /opt/node/bin/node --versionv8.1.1
B. 어떤 일이 잘못 설치하는 동안 소스 코드에서?
위에서 설명한 것은 대부분 잘 문서화 된 프로젝트의”빌드 명령”페이지에서 볼 수있는 것입니다. 하지만 주어진 이 문서의 목표는 당신이 컴파일 처음 소프트웨어의 소스에서,그것은할 수 있는 시간을내어 가치가있을 조사 몇 가지 일반적인 문제입니다. 그래서 수 있게 되었습니다.전체적인 절차를 다시 있지만,이 시간에서 신선하고 설 9.0 및 CentOS7.0 시스템 확인할 수 있도록 오류가 발생하고 어떻게 해결된다.
에서 데비안 9.0″스트레칭”
:~$ git clone --depth 1 \ --branch v8.1.1 \ https://github.com/nodejs/node-bash: git: command not found
이 문제는 아주 쉽게 진단 및 해결합니다. 다만 설치하는git
패키지:
:~$ 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
아무 문제가 여기에.
:~/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.
분명히 프로젝트를 컴파일하려면 컴파일러가 필요합니다. NodeJS 는 C++언어를 사용하여 작성되고,우리는 C++컴파일러가 필요합니다. 저는 여기에 설치됩니다`g++`GNU C++컴파일러를 위한 목적:
:~/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
나 다른 누락된 도구입니다. 같은 증상. 동일한 솔루션:
:~/node$ sudo apt-get install make:~/node$ make -j9 && echo okok
:~/node$ sudo make install:~/node$ /opt/node/bin/node --versionv8.1.1
성공!
주의 사항: 나는 설치된 다양한 도구를 하나 하나를 표시하는 방법을 진단한 컴파일 문제와 일반적인 문제를 해결하는 솔루션이 그 문제입니다. 하지만 경우에 당신 검색에 대한 자세한 내용은 항목 또는 다른 자신의 발견 할 것입니다 대부분의 배포판은”메타 패키지”행동하는 우산으로 설치하는 일부 또는 모든 일반적인 도구를 컴파일하는 데 사용되는 소프트웨어입니다. 데비안 기반 시스템에서는 아마도 그 목적을 위해 build-essentials 패키지를 접하게 될 것입니다. 그리고 Red-Hat 기반 배포판에서는”개발 도구”그룹이 될 것입니다.
CentOS 에서 7.0
~]$ git clone --depth 1 \ --branch v8.1.1 \ https://github.com/nodejs/node-bash: git: command not found
명령을 찾을 수 없습니까? 그냥 설치를 사용하는yum
패키지 관리자:
~]$ 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.
당신은 그것을 짐작:기록 및 라이브러를 사용하여 C++언어로,그러나 나의 시스템에 없는 해당 컴파일러입니다. 구조에 얌. 으로 나는 일반 CentOS 사용자가 실제로 했다면 인터넷에서 검색의 정확한 이름을 포함하는 포장은 g++컴파일러입니다. 그 페이지로 나를 인도: 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
성공. 다시.
C. 을 변경하에서 설치된 소프트웨어의 소스 코드
할 수 있는 소프트웨어를 설치 소스에서 필요가 있기 때문에 매우 특정 버전에서 사용할 수없는 당신의 배급 저장소,또는 당신이 원하기 때문에 프로그램을 수정 버그 수정을 위한 또는 추가 기능입니다. 결국 오픈 소스는 모두 수정에 관한 것입니다. 그래서,저는 이것을 기회를 주신의 능력을 손에서 이제는 당신이를 컴파일할 수 있는 자신의 소프트웨어입니다.
여기,우리는 nodejs 의 출처에 약간의 변화를 만들 것입니다. 하고 우리가 볼 수 있습니다면 우리의 변화에 통합 될 것으로 컴파일된 버전의 소프트웨어:
파일을 열node/src/node.cc
에서 좋아하는 텍스트 편집기(vim,나노,gedit,…). 그리고 해당 코드 조각을 찾으십시오.
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); }
파일의 3830 행 주위에 있습니다. 그런 다음printf
가 포함 된 줄을 대신 일치하도록 수정하십시오:그런 다음 터미널로 돌아갑니다. 기 전에 더하고 당신에게 어떤 통찰력을 더 힘의 뒤에 자식을 확인할 수 있습한 경우 수정하는 파일:
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();
야 합니다”-“(마이너스 등)전라인으로 그것이 당신이 전에 그것을 변경. 그리고 변경 후 줄 앞에”+”(더하기 기호).
이제 시간이 다시 컴파일하고 다시 설치하려면 소프트웨어:
make -j9 && sudo make install && echo okok
이 시간 유일한 이유로 그것이 실패할 수 있다는 당신의 오타을 변경하는 동안 코드입니다. 이 경우 텍스트 편집기에서node/src/node.cc
파일을 다시 열고 실수를 수정하십시오.
면 관리를 컴파일하고 설치하는 새정 및 라이브러리 버전을 확인 할 수 있는 경우 수정이었으로 통합된 소프트웨어:
:~/node$ /opt/node/bin/node --versionv8.1.1 (compiled by myself)
축하합니다! 당신은 오픈 소스 프로그램에 첫 번째 변경을했습니다!
D. 자 쉘을 찾을 사용자 정의를 구축 소프트웨어
는 것을 알 수 있습 난 항상을 시작했 내 새로 컴파일 된 라이브러리에 해당하는 개발용 소프트웨어에 의해 지정하는 절대 경로는 바이너리 파일입니다.나는 그것이 작동한다고 생각한다. 그러나 이것은 적어도 말하기 위해 성가시다. 실제로 그것을 고치는 두 가지 일반적인 방법이 있습니다.
실제로 두 개의 일반적인 방법의 고정신의 문제를 지정하는 절대 경로 바이너리 파일에
그러나 그들을 이해해야 합니다 첫 번째는 쉘을 찾아 실행하여 파일을 찾는 그들을 위해서만 디렉토리로 지정한 PATH 환경변수.
:~/node$ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
여기에는 데비안 시스템을 지정하지 않은 경우 명시적으로 어떤 디렉토리의 일부분으로 명령어 이름을,셸을 먼저 실행 프로그램/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games
PATH
PATH
에 추가하십시오.
추가 링크에서는/usr/local/bin
단지에 복사하는 노드 바이너리에서 실행 파일/opt/node/bin
/usr/local/bin
/opt/node/
(그것은 일반적인 실천을 위한 소프트웨어를 찾을 리소스 기준으로 파일을 자신의 위치).
그 전통적인 방법을 사용하여 심볼릭 링크:
:~/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)
이는 간단하고 효과적인 솔루션,특히 경우에는 소프트웨어 패키지를 만들의 그냥 몇 가지 잘 알려진 실행 프로그램—이 있기 때문에 링크를 만듭에 대한 각각의 모든 사용자-invokable 명령입니다. 예를 들어,당신은 잘 알고 및 라이브러리,당신이 알고 있는npm
/usr/local/bin
too. 그러나 나는 운동으로 당신에게 그것을 시켰습니다.
경로를 수정하는
첫째,당신이 시도하고 앞선 솔루션을 제거 노드를 상징적 인 링크를 만든 이전에서 시작하는 명확한 상태:
:~/node$ sudo rm /usr/local/bin/node:~/node$ which -a node || echo not foundnot found
이제 여기에는 마법의 명령을 변경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
단순히 말해,저는 교체되는 콘텐츠의PATH
/opt/node/bin
/opt/node/bin
which
명령:
:~/node$ which -a node || echo not found/opt/node/bin/node:~/node$ node --versionv8.1.1 (compiled by myself)
반면”링크”솔루션은 영원한 한 빨리를 만든 심볼릭 링크로/usr/local/bin
PATH
PATH
permanents 에서 변경하는 방법에 대한 몇 가지 연구를 할 당신을 떠날 것이다. 힌트로,그것은 당신의”프로필”과 관련이 있습니다. 당신이 해결책을 찾을 경우,아래의 코멘트 섹션을 사용하여 다른 독자와 그 공유를 주저하지 않습니다!
이자형. 는 방법을 제거하는 새로 설치된 소프트웨어의 소스 코드
이후 사용자 지정 컴파일된 소프트웨어 및 라이브러 앉아에서 완전히/opt/node-v8.1.1
디렉토리를 제거하는 소프트웨어가 필요합보다 더 노력 rm 명령을 사용하여 제거하는 디렉토리:
sudo rm -rf /opt/node-v8.1.1
주의: sudo
rm -rf
은 위험한 칵테일을 즐기세요! “Enter”키를 누르기 전에 항상 명령을 두 번 확인하십시오. 를 확인 메시지없이 삭제 취소를 제거할 경우를 잘못된 디렉토리…
경우,수정 당신의PATH
,당신이 되돌리려면 이러한 변경은 모든 복잡하지 않습니다.
고 만든 경우에서 링크를/usr/local/bin
을 모두 제거합니다:
:~/node$ sudo find /usr/local/bin \ -type l \ -ilname "/opt/node/*" \ -print -delete/usr/local/bin/node
기다릴까요? 의존성 지옥은 어디에 있었습니까?
으로 최종 댓글을 읽으면 컴파일에 당신의 자신의 사용자 지정 소프트웨어에 대해 들었을 수도 종속성을 지옥입니다. 이는 애칭는 상황 할 수있게하기 전에 성공적으로 컴파일하려면 소프트웨어야 합니다 첫째로 컴파일한 필수 요소 라이브러리,그 차례로 필요한 다른 도서관 수 있는 그 차례로 호환되지 않는 것 다른 소프트웨어와 함께 당신은 이미 설치되어 있습니다.
부분의 작업의 패키지 제작자의 배포판은 실제로 해결하는 종속성과 지옥을 위해 다양한 소프트웨어 시스템을 사용하는 호환성 라이브러리에 설치되어 있습니다.
이 기사에서는 사실상 종속성이 없으므로 nodejs 를 설치하기 위해 의도적으로 선택했습니다. 사실 종속성이 있기 때문에”사실상”라고 말했습니다. 그러나의 소스 코드 그 종속에 존재하는 소스 저장소의 프로젝트(node/deps
하위 디렉터리),그래서 당신은 필요 없어 다운로드하고 수동으로 설치하기 전에 손입니다.