Назад | Перейти на главную страницу

Интерпретаторы JavaScript в старых установках Debian (sarge)

Я собираюсь написать несколько скриптов для управления задачами через командную строку на серверах.

Я буду использовать пакет Debian NodeJS на серверах, которые его поддерживают, но у меня есть несколько серверов в Debian 3.1 (sarge).

Я знаю, что на этих серверах есть пакет Rhino, скрипты, которые я пишу, могут по-прежнему работать на Rhino? (учитывая, что я не использую новые функции JavaScript, которые могут быть недоступны)

Если нет, то какой интерпретатор я могу использовать для сценариев командной строки JS на старых Debians, которые будут совместимы со сценариями, которые я запускаю через NodeJS на новых Debian?

Я не думаю, что можно было бы написать что-нибудь нетривиальное, что работало бы как на новом Node.js, так и на старом Rhino.

Но если вы можете устанавливать пакеты в этих старых системах, вы, вероятно, также можете устанавливать программное обеспечение из исходного кода (по крайней мере, вам нужно, если вы хотите установить там свое собственное программное обеспечение).

Установить Node из исходников несложно - см. мой недавний ответ об установке Node из источника (см. Обновить часть). Вы даже можете установить Node специально для ваших собственных скриптов, чтобы не засорять файловую систему.

Например, предположим, что вы хотите установить свои скрипты в / opt / X (замените X на лучшее имя), вы можете сделать это так:

# create a directory:
mkdir -p /opt/X/node-src

# change dir:
cd /opt/X/node-src

# download the Node source:
curl -O https://nodejs.org/dist/v4.4.5/node-v4.4.5.tar.gz

# extract the archive:
tar xzvf node-v4.4.5.tar.gz

# go into the extracted dir:
cd node-v4.4.5

# configure for installation:
./configure --prefix=/opt/X/node-v4.4.5

# build and test:
make && make test

# install:
sudo make install

# make a symlink to that version:
sudo ln -svf /opt/X/node-v4.4.5 /opt/X/node

# create a directory for your scripts:
mkdir /opt/X/scripts

А теперь поместите свои скрипты в /opt/X/scripts и не забудьте начать их со строки:

#!/opt/X/node-v4.4.5/bin/node

(для данной версии)

или:

#!/opt/X/node/bin/node

(используя вашу символическую ссылку)

Добавление /opt/X/scripts на ваш PATH используя что-то вроде:

PATH="/opt/X/scripts:$PATH"

где-нибудь, где вы установили PATH (лайк .profile или .bashrc) упростит выполнение ваших скриптов. Если вам нужны как ваши скрипты, так и node/npm исполняемые файлы, вы можете установить PATH как это вместо этого:

PATH="/opt/X/scripts:/opt/X/node/bin:$PATH"

Конечно, вы можете изменить «X» на более подходящее имя или установить узел в /opt/node лайк Я описал здесь или где-нибудь еще, если хотите (конечно, не забудьте указать свои собственные пути в командах выше).

Таким образом, вы можете иметь на своих машинах современную, безопасную и согласованную версию Node. Это то, что я бы порекомендовал в этой ситуации, потому что написать код, который работал бы на новом и старом Node и на Rhino (и делал бы что-нибудь полезное), кажется непростым или даже возможным. Node - это не только JavaScript, но и сложная система ввода-вывода, libuv и вся экосистема модулей npm.

Как гласит старая пословица: «Легче перенести оболочку, чем сценарий оболочки» (Ларри Уолл), поэтому в вашем случае может быть проще установить Node вместе со сценариями, чем писать сценарии таким образом, чтобы работать без Node (хотя, если вам удастся это сделать, оставьте здесь комментарий, я обязательно хотел бы знать, как вы это сделали).