5

Я попытался заставить это работать несколькими различными способами:

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

Но это всегда заканчивается тем, что ломается в конце. При использовании 'make' я просто получаю одну строку: Ошибка расширения встроенной переменной.

При использовании 'gmake' я получаю некоторые сборки, а затем: Waf: Выходящий каталог '/usr/home/{user}/node/build Ошибка сборки: -> задача не выполнена (ошибка # 2): {task: libv8.a SConstruct -> libv8.a}

Я проверил наличие пакета FreeBSD, но самый последний из них, на ftp2.freebsd.com, равен 0.2.6.

Разве это не работает на 64-битной BSD?

Обновить:
Я нашел в Интернете несколько сообщений о людях, имеющих схожие проблемы с FreeBSD 64, поэтому я решил попробовать его и на 32-битной установке (на 32-битной машине, а не на 64-й, используемой в моем исходном вопросе).)
Та же проблема с « make » и точно такая же ошибка при использовании « gmake »

Сбой сборки: -> задача не выполнена (ошибка # 2):
{задача: libv8.a SConstruct -> libv8.a}

Я бы хотел, чтобы это работало на моей FreeBSD64, но я начинаю думать, что этот узел просто больше не работает для FreeBSD :(

4 ответа4

4

Понял!!

Сначала я работал над FreeBSD 32, а после того, как он заработал, я смог заставить его работать на 64.
Единственное различие между этими двумя процессами было для 32-битной, которую я просто собрал v8, используя

$ 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-только для чтения /include \
        --shared-v8-libpath = /usr /local /lib \
        --shared-v8-Имя_библиотека = v8
    $ gmake
    ... построить вывод ...
    $ gmake install
    $ node --version
    v0.5.0 предусилителя

0

Я мог только заставить v0.5.1 работать. Кроме того, у меня были некоторые проблемы с установкой т.е. модуль hiredis, поскольку заголовки v8 отсутствовали.

Предполагается, что установлены следующие пакеты:

  • Devel / PKG-конфигурации
  • разви / libexecinfo
  • разви / CMake
  • разви / gmake
  • Devel / 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.

0

Вам не нужно проверять узел отдельно. Вот что сработало для меня:

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

Работал нормально для меня. Похоже, они исправили проблемы с портом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .