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

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

我尝试过几种不同的方法来实现这个功能:

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

但最后总是会失败。使用“make”时,我只得到一行输出:扩展嵌入变量时出错。

当使用“gmake”时,我进行了一些构建,然后:Waf:离开目录“/usr/home/{user}/node/build 构建失败:->任务失败(错误#2):{任务:libv8.a SConstruct -> libv8.a}

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

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

更新:
我在网上找到一些帖子,有人在使用 FreeBSD 64 时遇到了类似的问题,所以我想我也可以在 32 位安装上尝试一下(在 32 位机器上,而不是我最初问题中使用的 64 位机器上)
与 ' 相同的问题制作' 和使用 ' 时出现的完全相同的错误制作

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

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

答案1

知道了!!

我首先在 FreeBSD 32 上运行它,然后我能够在 64 上运行它。
这两个过程之间的唯一区别是,对于 32 位,我只需使用以下代码构建 v8:

$ scons

对于 64 位

$ scons os=freebsd arch=x64

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

  • 已检查 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 安装
    $ node--version
    v0.5.0-pre

答案2

您实际上不需要单独检查节点。以下是对我有用的方法:

$ 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

答案3

我只能使用 v0.5.1。此外,我在安装 hiredis 模块时遇到了一些问题,因为缺少 v8 标头。

假设安装了以下软件包:

  • devel/pkg-配置
  • 开发/libexecinfo
  • 开发/cmake
  • 开发/gmake
  • 开发/scons
  • 语言/python27
  • 语言/v8

我使用以下命令使它工作:

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/

与上面的非常相似,没有 gmake 依赖项,而且我必须将标题复制到节点文件夹中,以便 hiredis 模块进行编译。

答案4

cd /usr/ports/www/node && make install clean

对我来说效果很好。所以看起来他们已经修复了端口的问题。

相关内容