Intérpretes JavaScript em instalações antigas da Debian (sarge)

1

Eu estou indo para escrever alguns scripts para gerenciar tarefas via linha de comando nos servidores.

Eu usarei o pacote Debian NodeJS em servidores que o suportem, mas eu tenho alguns servidores ainda no Debian 3.1 (sarge).

Eu sei que esses servidores têm o pacote Rhino, os scripts que escrevo ainda podem ser executados da mesma maneira no Rhino? (considerando que eu não uso novos recursos JavaScript que podem não estar disponíveis)

Se não, qual interpretador eu posso usar para scripts de linha de comando JS em Debians mais antigos que serão compatíveis com os scripts que eu executo via NodeJS no Debians mais novo?

    
por gtbono 01.06.2016 / 17:04

1 resposta

2

Eu não acho que seria possível escrever algo não-trivial que funcionasse tanto no novo Node.js quanto no antigo Rhino.

Mas se você for capaz de instalar pacotes naqueles sistemas antigos, então você provavelmente também poderá instalar o software a partir da fonte (pelo menos é necessário se você quiser instalar o seu próprio software lá).

A instalação do Node a partir da fonte não é difícil - veja parte). Você pode até mesmo instalar o Node especificamente ao longo de seus próprios scripts para não estrobiar o sistema de arquivos.

Por exemplo, digamos que você queira instalar seus scripts em / opt / X (substitua um nome melhor por X), você pode fazer assim:

# 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

Agora, coloque seus scripts em /opt/X/scripts e lembre-se de iniciá-los com uma linha:

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

(para uma determinada versão)

ou:

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

(usando seu link simbólico)

Adicionando /opt/X/scripts ao seu PATH usando algo como:

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

em algum lugar onde você configura o PATH (como .profile ou .bashrc ) facilitará a execução de seus scripts. Se você quer tanto seus scripts como node / npm binários facilmente executáveis, você pode definir PATH desta forma:

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

É claro que você pode alterar o "X" para um nome melhor ou instalar o nó em /opt/node like eu descrevi aqui ou em qualquer outro lugar se você quiser (lembre-se de colocar seus próprios caminhos nos comandos acima).

Dessa forma, você pode ter uma versão moderna, segura e consistente do Node em suas máquinas. Isso é o que eu recomendaria nessa situação, porque escrever esse código que funcionaria no Node novo e antigo e no Rhino (e fazer qualquer coisa útil) não parece fácil ou até mesmo possível. O nó não é apenas JavaScript, mas também um complicado sistema de I / O, libuv e todo o ecossistema dos módulos npm.

Como diz o velho ditado: "É mais fácil portar um shell que um shell script" (Larry Wall), então no seu caso pode ser mais fácil instalar o Node junto com seus scripts do que escrever seus scripts de uma forma que funcionaria sem o Node (embora, se você conseguir fazer isso, por favor poste um comentário aqui, eu certamente gostaria de saber como você fez isso).

    
por 01.06.2016 / 17:44