Debian Jessie'ye en son NodeJS nasıl kurulur?


29

Az önce önerilen yaklaşımı kullanarak NodeJS & NPM'i Debian Jessie üzerine kurdum:

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

Ancak oldukça eski bir sürümdür (düğüm v0.10.38 ve npm 1.4.28).

Yeni sürümleri kurmanın en kolay yolundaki herhangi bir öneri, örneğin, şu anda düğüm v0.12.4 ve npm 2.7.4? Kaynaktan yüklemek benim tek yaklaşımım mı?

Yanıtlar:


48

Node.js için kullanılabilen bir kurulum betiği var ( yükleme talimatlarına bakın ):

# 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

Küçük bir yorum: Benim düşünceme göre, bu çok kötü bir fikir curl | sudo bash. Kök ayrıcalıklarıyla kontrol etmediğiniz bir komut dosyası çalıştırıyorsunuz. Bu, içinden okumak, script indir zararlı komutlar için kontrol etmek her zaman iyidir ve sonra o , çalıştırın. Ama bu sadece benim iki kuruş.

Manuel kurulum prosedürünü izleyerek birkaç adımda kurulum manuel olarak yapılabilir :

  • Eski PPA'yı çıkarın (varsa)
  • Düğüm repo ssh anahtarı ekle
  • İçin düğüm repo ekle sources.list
  • paket listesini güncelle ve favori apt aracını kullanarak kur

5
ops, kullan, ama şimdi var setup_4.x... tekrar kıvrıl ve apt-get tamam mı?
Peter Krauss

3
En yeni ve gerçek sürüme ihtiyacınız olabileceğinden, sitelerini ziyaret etmenizi öneririz: github.com/nodesource/distributions .
Seniorpreacher


@ acidzombie24 haklı ama kodun kötülük olmadığı için güvenseniz bile, her zaman komut dosyasında bir hata veya eski bir komut dosyası veya yapılandırmanızın biraz egzotik olma olasılığı vardır. Ya da belki kaynaklarınızı sipariş etmek istersiniz. Her neyse, bunun kötü bir uygulama olduğunu düşünüyorum ve yeni başlayanlar (OP'yi hedeflemiyorum ama genel olarak) bunu yapmaya teşvik edilmemeliyim. Özellikle eylemi manuel olarak yaparken, senaryoyu incelemekten çok daha basittir.
Jérôme

12

Debian'daki ( ) paketini kullanmak yerine, Node ( 4.2.2) ' nun en son sürümünü web sitelerinden indirebilirsiniz 0.12. Bu aynı zamanda npm'nin güncellenmiş bir sürümüne sahip olduğunuz anlamına gelir. Jessie ile ilgili bunu yaparken hiç sorun yaşamadım.

İndir .tar.gzkendi web sitesinden ve cd(dosyanın adı benim indirmek için açıkçası özgüdür) o dir içine:

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

Bin klasörüne bir göz attıysanız, düğüm ve npm için gereken ikili dosyaları göreceksiniz:

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

Şimdi bu klasörü takip etmesi biraz daha kolay bir şey olarak değiştirirdim

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

Düğümü güncel tutmakla ilgilenmiyorsanız, bu klasörü yalnızca bin konumlarınızdan birine taşıyın (kullanıyorum ~/bin) ve bir sonraki adımı atlayın.

Düğüm sürümünüzü kolayca güncelleyebilmek istiyorsanız, nodejsklasörü izleyebileceğiniz bir yere taşıyın ( ~/nodejsbelki?). Daha sonra , bin konumlarınızdan birine bir sembolik bağlantı oluşturmak istersiniz, böylece ikili dosyalar tam yolunu yazmadan kabuğunuzdan kullanılabilir.

Nodejs klasörünü ana dizininize koyduğunuzu varsayarak şimdi yapabilirsiniz:

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

Açıkçası, bu istediğiniz herhangi bir kutu konumuna gidebilirsiniz. Giriş dizini kullandım, bu yüzden sadece benim için kullanılabilir, fakat siz de kolayca yapabilirsiniz:

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

Bu, giriş dizininizdeki nodejs klasöründen bin dizine bir bağlantı oluşturur (bu , giriş dizininizdeki dizine yapılan güncelleştirmelerin, sembolik bağlantı yoluyla başka bir dizindeki klasöre yansıtıldığı anlamına gelir ). Şimdi nodejs dizinini içeren bin klasörünün $PATHortam değişkeninizde olduğundan emin olmak istediğinizde , ~/.profiledosyayı ev dizininizde açın. Bunu o dosyanın altına eklemek istiyorsunuz (kullanmadıysanız yolu değiştirme ~/bin/):

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

Bu, dizinin var olup olmadığını kontrol edecek ve eğer varsa onu PATH'inize ekleyecektir. Ben zshsadece bir satır güncellendiğim için kullanıyorum ~/.zshrc:

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

Terminalinizi kapatın ve tekrar açın, ardından kontrol etmek için aşağıdakileri yazın:

$ node -v
v4.2.2

$ npm -v
2.14.7

Sym bağlantısını oluşturarak, şimdi, gelecekte .tar.gzNodejs web sitesinden yeni bir dosya indirebilir , ayıklayabilirsiniz ~/nodejsve $PATH ortam değişkeninizde kullanabileceğiniz ikili dosyalar otomatik olarak güncellenir.


Bu da benim için çalıştı çünkü bir çalışma npm verdi.
artfulrobot 22:16

4

benim durumumda, önerilen kabuk komutlarını uyguladım:

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

Sorun bash betiğinin APT sabitlememi güncellememesiydi, yani apt-get 'in varsayılan, eski Debian paketini debian.org kaynağından ve nodesource.com adresinden yükleyememesiydi.

Sorunun bu olduğunu doğrulayın apt-cache policy nodejs. gibi bir şey görmelisiniz Candidate: 6.10.2-1nodesource1~jessie1değilCandidate: 0.10.29~dfsg-2

pin önceliğini düğüm kaynağına ayarlamak için, /etc/apt/preferences.d/çağrılan nodeveya bu içeriğe ne olursa olsun bir dosya ekleyin :

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

kaydet ve koş apt-get cache update. sonra apt-cache policy nodejstekrar dene . aday doğru görünüyorsa, normal şekilde yükleyinapt-get install nodejs


apt-get cache updategeri E: Invalid operation cachedöndüm, koştum sudo aptitude update.
kullanıcı394

2

Paket yöneticisine en son sürümü yüklemek için resmi node.js belgelerini takip edebilirsiniz .

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

Sonuncusu çalıştırırken, düğüm v7.5.0 ve npm v4.1.2 sistemime yüklendi. Her ikisi de nodeve nodejsdiğer adları Düğüm için otomatik olarak etkinleştirildi.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.