让 Node.js 0.4.2 在 FreeBSD 8.2 amd64 上构建/安装

Jus*_*tin 5 freebsd node.js

我试过用几种不同的方式让它工作:

building from ports (/usr/ports/www/node)
git clone -> ./configure, ./make
git clone -> ./configure, ./gmake
Run Code Online (Sandbox Code Playgroud)

但它最终总是以破裂告终。使用“make”时,我只得到一行输出:扩展嵌入变量时出错。

使用“gmake”时,我得到了一些构建,然后:Waf: Leaving directory '/usr/home/{user}/node/build Build failed: -> task failed (err #2): {task: libv8.a SConstruct -> libv8.a}

我确实检查了一个 FreeBSD 包,但他们在 ftp2.freebsd.com 上的最新版本是 0.2.6

这在 64 位 BSD 上不起作用吗?

更新:
我一直在网上找到一些关于 FreeBSD 64 有类似问题的人的帖子,所以我想我也可以在 32 位安装尝试一下(在 32 位机器上,而不是我的 64 位机器上使用的原始问题
与“ make ”相同的问题和使用“ gmake ”的完全相同的错误

构建失败:-> 任务失败(错误 #2):
{task: libv8.a SConstruct -> libv8.a}

我很想在我的 FreeBSD64 上使用它,但我开始认为该节点不再适用于 FreeBSD :(

Jus*_*tin 4

知道了!!

我首先在 FreeBSD 32 上运行它,在它运行之后我就能够在 64 上运行它。
这两个进程之间的唯一区别是对于 32 位,我只是使用 v8 构建

$ 斯康斯

对于 64 位

$ scons os=freebsd arch=x64

以下是我在 FreeBSD amd64 上成功构建/安装 Node 的步骤:

  • 检查了 v8 和 Node 的干净副本
  • 在 v8 根目录内

    $ scons os=freebsd arch=x64
    ...构建输出...
    $ cp libv8* /usr/local/lib

  • 在节点根内

    $ ./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
    ...构建输出...
    $ gmake install
    $ node --version
    v0.5.0-pre