저는 최소한의 Debian 기반 Linux 배포판을 실행하는 Raspbmc를 실행하고 있습니다. 패키지 관리자를 통해 node.js를 설치하고 싶지만 시스템에 설치할 수 없습니다. 이 오류가 발생합니다.
In file included from /usr/include/linux/kernel.h:4:0,
from /usr/include/arm-linux-gnueabihf/sys/sysinfo.h:25,
from ../deps/uv/src/unix/linux-core.c:34:
/usr/include/linux/sysinfo.h:8:2: error: unknown type name '__kernel_long_t'
/usr/include/linux/sysinfo.h:9:2: error: unknown type name '__kernel_ulong_t'
/usr/include/linux/sysinfo.h:10:2: error: unknown type name '__kernel_ulong_t'
/usr/include/linux/sysinfo.h:11:2: error: unknown type name '__kernel_ulong_t'
/usr/include/linux/sysinfo.h:12:2: error: unknown type name '__kernel_ulong_t'
/usr/include/linux/sysinfo.h:13:2: error: unknown type name '__kernel_ulong_t'
/usr/include/linux/sysinfo.h:14:2: error: unknown type name '__kernel_ulong_t'
/usr/include/linux/sysinfo.h:15:2: error: unknown type name '__kernel_ulong_t'
/usr/include/linux/sysinfo.h:18:2: error: unknown type name '__kernel_ulong_t'
/usr/include/linux/sysinfo.h:19:2: error: unknown type name '__kernel_ulong_t'
/usr/include/linux/sysinfo.h:21:22: error: '__kernel_ulong_t' undeclared here (not in a function)
make[1]: *** [/root/src/node-0.10.21/out/Release/obj.target/libuv/deps/uv/src/unix/linux-core.o] Error 1
make[1]: Leaving directory `/root/src/node-0.10.21/out'
make: *** [node] Error 2
node.js를 설치하려면 다음 단계를 따르세요.
sudo apt-get install python g++ make checkinstall
mkdir ~/src && cd $_
wget -N http://nodejs.org/dist/node-latest.tar.gz
tar xzvf node-latest.tar.gz
mv node-v0.10.19 node-0.10.19
cd node-0.10.19
./configure
checkinstall --install=no
답변1
시스템 헤더에 있기 때문에 약간 이상한 오류입니다. 내 생각에 WRT 라이브러리는 약간 이상한 일을 하며 데비안에서 파생된 Raspberry Pi 배포판에 포함되어 있습니다. 정말 소스 코드 빌드를 원한다면 문제가 x-tool 환경이 아니라 바이너리에 있으므로 크로스 컴파일하는 것이 더 나을 수 있습니다.~해야 한다아직도 일하고 있어요.
다행히도 그럴 필요도 없을 것입니다. Node.js는 무엇보다도 pi용 바이너리 패키지를 유지 관리합니다. 0.10.19는->여기<-. 당신이 원하는 node-v0.10.19-linux-arm-pi.tar.gz
.
이 패키지를 사용하기 위해 구성/만들기/etc를 실행할 필요는 없습니다.Pi용으로 컴파일되었으며 Raspbian의 라이브러리에 연결되었습니다. 여기 있어요:
wget http://nodejs.org/dist/v0.10.19/node-v0.10.19-linux-arm-pi.tar.gz
tar 파일은 5MB에 불과합니다. 지금:
tar -xvf node-v0.10.19-linux-arm-pi.tar.gz
그러면 디렉토리가 생성됩니다 node-v0.10.19-linux-arm-pi
. 내부에는 다음과 같은 세 개의 디렉토리가 있습니다.
/bin
/lib
/share
바이너리 node
실행 파일은 에 있습니다 bin
. 방금 pi( )에서 간단히 시도했는데 bin/node
몇 가지 간단한 js 명령을 실행할 수 있으므로 아마도 모두 좋을 것입니다. 1 모든 것을 그대로 두고 원하는 위치로 이동할 수 있지만 bin
해당 디렉토리를 $PATH
.
export PATH=/home/pi/node-v0.10.19-linux-arm-pi/bin:$PATH
~/.bashrc
내구성을 높이려면 추가하십시오 . 노드를 시스템 서비스로 실행하려면 스크립트를 만들고 몇 가지 추가 구성을 수행해야 하지만 이는 또 다른 질문입니다.
npm
bin 디렉터리에는 노드 패키지 관리자에 대한 심볼릭 링크도 있습니다. 디렉토리 /lib
는 단지 노드 모듈이기 때문에 시스템 라이브러리 경로에 있을 필요는 없지만 노드가 어디에 있는지 알려줘야 할 수도 있습니다... 저는 몇 년 동안 노드를 사용하지 않았고 그에 대해 할 수 있는 일이 많지 않습니다. . 2 이 /share
디렉토리에는 매뉴얼 페이지가 포함되어 있습니다. /usr/share/man
정상적으로 액세스하려면 매뉴얼 페이지를 적절하게 복사해야 할 수도 있습니다 man
. 3또는 세 디렉터리 모두의 내용을 해당 섹션에 복사하여 /usr/local
그런 방식으로 사용할 수 있습니다.
1 지금 당장 효과가 없다면 시도해 보세요 ldd bin/node
. ??
출력에는 아무 것도 없어야 합니다. 나는 필요한 모든 라이브러리가 이미 거기에 있어야 한다고 믿습니다. 단, libstdc++
... 그게 문제라면 그게 전부입니다 apt-get install libstdc++6
.
2 노드 사용 및 구성은 Pi 특정 작업이 아니므로 이에 대한 도움을 찾고 있다면 다음과 같은 보다 일반적인 포럼에서 수행하는 것이 가장 좋습니다.https://stackoverflow.com/Node.js 사용자가 많습니다.
3에는 실제로 맨 페이지가 하나만 있습니다. 경로와 파일 이름(예: man share/man/man1/node.1
.