Получение Node.js 0.4.2 для сборки / установки на FreeBSD 8.2 amd64

6626
Justin

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

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

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

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

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

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

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

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

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

5
Я предполагаю, что это может быть что-то вроде «Можете ли вы собрать V8 на FreeBSD amd64?» ... Justin 13 лет назад 0

4 ответа на вопрос

4
Justin

Понял!!

Сначала я работал с 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-libname = v8
    $ gmake
    ... сборка вывода ...
    $ gmake install
    $ node --version
    v0.5.0-pre

Единственное другое, что это встроенный v0.5 и вопрос был для 0.4.2 (это то, что я проверил, когда я первоначально задал вопрос, но сегодня у github есть v0.5. Не уверен, что это решило бы раньше проблемы) Justin 13 лет назад 0
0
mikl

You do not really need to check out node separately. Here's what worked for me:

$ 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
cypres

Я мог только заставить 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
chibisuke
cd /usr/ports/www/node && make install clean 

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