it-swarm-ja.com

Node.js0.4.2をFreeBSD8.2AMD64でビルド/インストールする

私はこれをいくつかの異なる方法で機能させようとしました:

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

しかし、それは常に最終的に壊れてしまいます。 'make'を使用すると、出力が1行になります。埋め込み変数の展開中にエラーが発生しました。

'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ビットインストール(on)でも試してみることにしました。私の最初の質問で使用されていた64ビットではなく32ビットマシン
'make'で同じ問題が発生し、 'gmake'を使用するとまったく同じエラーが発生します

ビルドに失敗しました:->タスクに失敗しました(エラー#2):
{タスク:libv8.a SConstruct-> libv8.a}

FreeBSD64でこれを機能させたいのですが、FreeBSDではノードが機能しなくなったと思い始めています:(

5
Justin

とった!!

私は最初にこれをFreeBSD32で動作させ、それが動作した後、64で動作させることができました。
2つのプロセスの唯一の違いは、単純にv8を使用して構築した32ビットの場合でした。

$ scons

および64ビットの場合

$ scons os = freebsd Arch = x64

FreeBSD AMD64でノードのビルド/インストールを成功させるために使用した手順は次のとおりです:

  • V8とノードの両方のクリーンコピーをチェックアウトしました
  • 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

4
Justin

私はv0.5.1しか動作させることができませんでした。さらに、インストールに問題がありました。 v8ヘッダーが欠落していたため、hiredisモジュール。

次のパッケージがインストールされていると仮定します。

  • devel/pkg-config
  • devel/libexecinfo
  • devel/cmake
  • devel/gmake
  • devel/scons
  • lang/python27
  • lang/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モジュールをコンパイルするためにヘッダーをノードフォルダーにコピーする必要がありました。

0
cypres

ノードを個別にチェックアウトする必要はありません。これが私のために働いたものです:

$ 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
0
mikl
cd /usr/ports/www/node && make install clean

私にとってはうまくいきました。したがって、ポートが抱えていた問題を修正したようです。

0
chibisuke