Obtendo o Node.js 0.4.2 para construir / instalar no FreeBSD 8.2 amd64

5

Eu tentei fazer isso funcionar de diversas maneiras:

building from ports (/usr/ports/www/node)
git clone -> ./configure, ./make
git clone -> ./configure, ./gmake

Mas sempre acaba quebrando no final. Ao usar 'make' eu simplesmente obtenho uma linha de saída:     Erro ao expandir a variável incorporada.

Ao usar o 'gmake' eu recebo um prédio e depois:     Waf: Deixando o diretório '/ usr / home / {user} / node / build     Falha na compilação: - > tarefa falhou (err # 2):     {task: libv8.a SConstruct - > libv8.a}

Eu verifiquei um pacote do FreeBSD, mas o mais recente que eles têm, no ftp2.freebsd.com, é 0.2.6

Isso simplesmente não funciona no BSD de 64 bits?

Atualização:
Eu tenho encontrado alguns posts na web de pessoas com problemas semelhantes com o FreeBSD 64, então eu imaginei que eu também experimentaria em uma instalação de 32 bits ( em uma máquina de 32 bits, não sendo a 64 sendo usada a partir de minha pergunta original )
O mesmo problema com ' make ' e o mesmo erro exato usando ' gmake '

Build failed: -> task failed (err #2):
{task: libv8.a SConstruct -> libv8.a}

Eu adoraria fazer isso funcionar no meu FreeBSD64, mas estou começando a achar que o nó simplesmente não funciona mais para o FreeBSD: (

    
por Justin 25.03.2011 / 18:30

4 respostas

4

Entendi !!

Eu comecei a trabalhar com o FreeBSD 32 e depois que ele funcionou, consegui que ele funcionasse em 64.
A única diferença entre os dois processos foi para o 32 bit que eu simplesmente construí v8 usando

$ scons

e para 64 bits

$ scons os=freebsd arch=x64

Aqui estão os passos que eu usei para obter um build / install de node bem sucedido no FreeBSD amd64:

  • Verificamos cópias limpas da v8 e do nó
  • Dentro da raiz da v8

    $ scons os=freebsd arch=x64
    ... build output ...
    $ cp libv8* /usr/local/lib

  • Dentro da raiz do nó

    $ ./configure \
        --prefix=/usr/local \
        --shared-v8 \
        --shared-v8-includes=/home/jr/v8-read-only/include \
        --shared-v8-libpath=/usr/local/lib \
        --shared-v8-libname=v8
    $ gmake
    ... build output ...
    $ gmake install
    $ node --version
    v0.5.0-pre

por 31.03.2011 / 20:06
0

Você não precisa realmente verificar o nó separadamente. Veja o que funcionou para mim:

$ sudo portmaster devel/pkg-config devel/libexecinfo devel/cmake devel/scons lang/python27
$ git clone https://github.com/joyent/node.git
$ cd node/deps/v8
$ git checkout v0.4.6
$ scons os=freebsd arch=x64
(takes a while to compile v8)
$ sudo cp libv8* /usr/local/lib
$ cd ~/node
$ ./configure \     
  --prefix=/usr/local \
  --shared-v8 \
  --shared-v8-includes=/home/mikl/node/deps/v8/include \
  --shared-v8-libpath=/usr/local/lib \
  --shared-v8-libname=v8
$ gmake
$ sudo gmake install
    
por 18.04.2011 / 12:58
0

Eu só consegui que a v0.5.1 funcionasse. Além disso, eu tive alguns problemas com a instalação ou seja. o módulo hiredis, já que os cabeçalhos v8 estavam faltando.

Supondo que os seguintes pacotes estejam instalados:

  • devel / pkg-config
  • devel / libexecinfo
  • devel / cmake
  • devel / gmake
  • devel / scons
  • lang / python27
  • lang / v8

Eu consegui trabalhar usando os comandos:

cd /root/
$ git clone https://github.com/joyent/node.git
$ git checkout v0.5.1
$ cd ~/node
$ ./configure \
  --prefix=/usr/local \
  --shared-v8 \
  --shared-v8-includes=/usr/local/include \
  --shared-v8-libpath=/usr/local/lib \
  --shared-v8-libname=v8
$ gmake
$ gmake install
$ cp /usr/local/include/v8* /usr/local/include/node/

Quase o mesmo que acima, não a dependência do gmake e que eu tive que copiar os cabeçalhos na pasta do nó para o módulo do hiredis para compilar.

    
por 19.07.2011 / 18:29
0
cd /usr/ports/www/node && make install clean

Funcionou bem para mim. Então parece que eles consertaram os problemas que a porta tinha.

    
por 02.08.2012 / 11:47