Como instalar o NodeJS mais recente no Debian Jessie?

29

Acabei de instalar o NodeJS & NPM no Debian Jessie usando a abordagem recomendada:

apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs

No entanto, é uma versão bastante antiga (nó v0.10.38 & npm 1.4.28).

Alguma sugestão sobre a maneira mais fácil de instalar versões mais recentes, por exemplo, atualmente o nó é v0.12.4 e npm é 2.7.4? A instalação a partir da fonte é minha única abordagem?

MrColes
fonte

Respostas:

48

Existe um script de configuração disponível para o Node.js (consulte as instruções de instalação ):

# Adapt version number to the version you want
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs

Um pequeno comentário: Na minha humilde opinião, é uma muito má ideia curl | sudo bash. Você está executando um script que não verificou com privilégios de root. É sempre melhor para baixar o script, lê-lo, verifique se há comandos mal-intencionados, e depois que , executá-lo. Mas esses são apenas meus dois centavos.

A instalação pode ser realizada manualmente em algumas etapas, seguindo o procedimento de instalação manual :

  • Remova o PPA antigo (se aplicável)
  • Adicionar chave de repo ssh do nó
  • Adicionar repositório de nó ao sources.list
  • atualize a lista de pacotes e instale usando a ferramenta apt favorita
embik
fonte
5
ops, use-o, mas agora existem setup_4.x... refazer curl e apt-get ok?
Peter Krauss
3
Como você pode precisar da versão mais recente e atual, recomendo visitar o site: github.com/nodesource/distributions .
seniorpreacher
Por que você não confiar nele se ele vem através de uma conexão segura da mesma fonte que você está executando binários de
@ acidzombie24 certo, mas mesmo que você confie no código por não ser mau, sempre há a chance de um erro no script, um script desatualizado ou sua configuração um pouco exótica. Ou talvez você queira pedir seu sources.list de alguma forma e os scripts o contrário. De qualquer forma, também acho que é uma prática ruim e iniciantes (não estou visando o OP, mas em geral) não devem ser incentivados a fazer isso. Especialmente ao executar a ação manualmente, é muito mais direto do que examinar o script.
21817 Jérôme
12

Você pode baixar a versão mais recente do Node ( 4.2.2) no site deles , em vez de usar o pacote que o Debian fornece ( 0.12). Isso também significa que você tem uma versão atualizada do npm. Não tive problemas para fazer isso em Jessie.

Faça o download .tar.gzdo site e cdno diretório (o nome do arquivo é obviamente específico do meu download):

$ tar -xzvf node-v4.2.2-linux-x64.tar.gz
$ cd node-v4.2.2-linux-x64

Se você olhar na pasta bin, verá os binários necessários para o node e o npm:

$ ls node-v4.2.2-linux-x64/bin 
node  npm

Agora, renomearia a pasta para algo um pouco mais fácil de acompanhar

$ mv node-v4.2.2-linux-x64 nodejs

Se você não estiver interessado em manter o nó atualizado, simplesmente mova esta pasta para um dos seus locais no depósito (eu uso ~/bin) e pule a próxima etapa.

Se você deseja atualizar facilmente a versão do seu nó, mova a nodejspasta para algum lugar em que possa acompanhá-la ( ~/nodejstalvez?). Então você deseja criar um link simbólico para um dos locais da sua posição no depósito, para que os binários possam ser usados ​​no seu shell sem escrever o caminho completo.

Supondo que você coloque a pasta nodejs no diretório inicial, agora você pode fazer:

$ ln -s ~/nodejs ~/bin/nodejs

Obviamente, isso pode ir para qualquer local da posição desejada. Eu usei meu diretório pessoal para que ele esteja disponível apenas para mim, mas você também pode:

$ ln -s ~/nodejs /usr/local/bin/nodejs

Isso criará um link simbólico da pasta nodejs no diretório inicial para o diretório bin (o que significa que quaisquer atualizações no diretório da pasta inicial são refletidas na pasta em outro lugar por meio do link simbólico ). Agora você deseja certificar-se de que a pasta bin que contém o diretório nodejs esteja na sua $PATHvariável de ambiente , portanto, abra o ~/.profilearquivo no diretório inicial. Você deseja adicionar isso à parte inferior desse arquivo (alterando o caminho, se você não usou ~/bin/):

# Set the node PATH if it exists
if [ -d "$HOME/bin/nodejs/bin" ] ; then
    PATH="$HOME/bin/nodejs/bin:$PATH"
fi

Isso verificará se o diretório existe e, se existir, adicione-o ao seu PATH. Eu uso, zshentão acabei de atualizar uma linha em ~/.zshrc:

export PATH="$HOME/bin/nodejs/bin:$PATH"

Feche o terminal e abra novamente e digite o seguinte para verificar:

$ node -v
v4.2.2

$ npm -v
2.14.7

Ao criar o link sym, agora significa que, no futuro, você poderá fazer download de um novo .tar.gzno site do Nodejs, extraí-lo para ~/nodejse os binários disponíveis para você na sua $PATH variável de ambiente serão atualizados automaticamente.

Luke
fonte
Este funcionou para mim, pois também deu um npm de trabalho.
Artfulrobot
4

no meu caso, executei os comandos shell recomendados:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

o problema era que o script bash não atualizava minha fixação do APT; portanto, o apt-get instalou o pacote Debian antigo e padrão da fonte debian.org e não da nodesource.com

verifique se esse é o problema apt-cache policy nodejs. você deve ver algo comoCandidate: 6.10.2-1nodesource1~jessie1 e nãoCandidate: 0.10.29~dfsg-2

para definir a prioridade dos pinos como nodesource, adicione um arquivo /etc/apt/preferences.d/chamado nodeou o que quer que seja com este conteúdo:

Package: nodejs
Pin: release o=Node Source
Pin-Priority: 1200

salve e corra apt-get cache update. depois tente apt-cache policy nodejsnovamente. se o candidato parecer correto, instale normalmenteapt-get install nodejs

georgiecasey
fonte
apt-get cache updatevoltou, E: Invalid operation cacheentão eu corri sudo aptitude update.
User394
2

Você pode seguir a documentação oficial do node.js. para instalar a versão mais recente com o gerenciador de pacotes.

Node.js v6:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

Node.js v7:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

Executando o último, o nó v7.5.0 e o npm v4.1.2 foram instalados no meu sistema. Ambos os alias nodee nodejsforam ativados para o Node automaticamente.

mrkvon
fonte