Falha ao instalar node.js no Debian

1

Estou executando o Raspbmc que está executando uma distribuição mínima do Linux baseada no Debian. E eu gostaria de instalar o node.js através do gerenciador de pacotes, mas não consigo instalar no meu sistema. Que vem com esse erro.

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

Estou seguindo este passo para instalar o 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
    
por Jien Wai 06.11.2013 / 16:56

1 resposta

1

Tipo de erro estranho, já que está em um cabeçalho de sistema. Eu acho que há algumas coisas um pouco estranhas feitas nas bibliotecas WRT e inclui as distribuições de framboesa pi derivadas da Debian. Se você realmente quer realmente uma compilação de fontes, provavelmente terá melhor sorte na compilação cruzada, uma vez que essas excentricidades não estão no ambiente x-tool, mas os binários devem ainda funcionar.

Felizmente, você provavelmente não precisa fazer isso também. O Node.js mantém um pacote binário para o pi (entre outras coisas) e os 0.10.19 são - > AQUI < - . Você quer node-v0.10.19-linux-arm-pi.tar.gz .

Você não precisa executar o configure / make / etc para usar esse pacote. Ele já está compilado para o pi e links para bibliotecas no raspbian. Aqui vai:

wget http://nodejs.org/dist/v0.10.19/node-v0.10.19-linux-arm-pi.tar.gz

O arquivo tar é de apenas 5 MB. Agora:

tar -xvf node-v0.10.19-linux-arm-pi.tar.gz

Isso cria um diretório, node-v0.10.19-linux-arm-pi . Dentro você encontrará três diretórios:

/bin
/lib
/share

O executável binário node está em bin . Eu apenas tentei aqui no pi brevemente ( bin/node ) e funcionou para executar alguns comandos js simples, então é provavelmente tudo de bom. 1 Você pode deixar tudo como está e movê-lo para onde sempre que você quiser, mas provavelmente deseja adicionar esse diretório bin ao seu $PATH . Por exemplo:

export PATH=/home/pi/node-v0.10.19-linux-arm-pi/bin:$PATH

Adicione isso a ~/.bashrc para torná-lo persistente. Se você deseja executar o nó como um serviço do sistema, você terá que criar um script e fazer alguma outra configuração - mas essa é outra questão.

Há também um link simbólico para npm , o gerenciador de pacotes do nó, no diretório bin. O diretório /lib não precisa estar no caminho da biblioteca do sistema porque é apenas módulos de nó, mas você provavelmente precisará informar ao nó onde ele está ... Eu não trabalhei com o nó em vários anos e não pude ajudar com isso. 2 O diretório /share contém páginas man; talvez você queira copiá-los apropriadamente em /usr/share/man se quiser acessá-los normalmente com man . 3 Como alternativa, você pode copiar o conteúdo de todos os três diretórios em suas contrapartes em /usr/local e usá-lo dessa maneira.

1 Se não funcionar imediatamente para você, tente ldd bin/node . Não deve haver ?? na saída. Eu acredito que todas as bibliotecas necessárias já deveriam estar lá, exceto talvez por libstdc++ . Se esse é o problema, apenas apt-get install libstdc++6 .

2 Usar e configurar o nó não é uma tarefa específica do pi, portanto, se você estiver procurando por ajuda com isso, ficará melhor em um fórum mais geral, como: link que tem muitos usuários node.js.

3 Na verdade, existe apenas uma página de um homem. Você pode lê-lo sem movê-lo, especificando o caminho e o nome do arquivo, por exemplo, %código%.

    
por 06.11.2013 / 17:33