Node.js Nasıl Kurulur: Tüm Platformlar İçin Eksiksiz Teknik Kılavuz
Node.js, Chrome’un V8 motoru üzerine inşa edilmiş, tarayıcı ortamı dışında JavaScript kodu çalıştıran açık kaynaklı, çapraz platform bir JavaScript çalışma zamanıdır. Engelleyici olmayan, olay güdümlü I/O modeli, onu yüksek verimli API’ler, gerçek zamanlı uygulamalar, mikro hizmetler ve sunucu tarafı araçları oluşturmak için baskın tercih haline getirir. Node.js’i doğru şekilde kurmak — işletim sisteminiz ve iş akışınız için doğru yöntemi kullanarak — kararlı, tekrarlanabilir bir geliştirme ortamının temelidir.
Bu kılavuz, her büyük kurulum yolunu kapsar: resmi yükleyiciler, işletim sistemi yerel paket yöneticileri, NodeSource ikili dağıtımları ve nvm (Node Version Manager). Ayrıca çoğu öğreticinin tamamen atladığı sürüm yönetimi, global paket hijyeni ve üretim sunucusu konularını da ele alır.
Doğru Kurulum Yöntemini Seçmek
Tek bir komut çalıştırmadan önce, her yöntemin size gerçekte ne sağladığını anlayın — çünkü yanlış seçim daha sonra gerçek operasyonel sorunlar yaratır.
| Yöntem | En İyi Kullanım | Sürüm Esnekliği | Root Gerekli | Notlar |
|---|---|---|---|---|
| — | — | — | — | — |
| Resmi `.pkg` / `.msi` yükleyici | Hızlı yerel kurulum, yeni başlayanlar | Yalnızca tek sürüm | Evet | Sistem PATH’ini kirletir; sürüm değiştirmek zordur |
| İşletim sistemi paket yöneticisi (`apt`, `brew`, `yum`) | Sistem geneli kurulumlar, CI sunucuları | Sınırlı | Evet | Genellikle güncel olmayan sürümler sunar |
| NodeSource ikili deposu | Linux sunucuları, öngörülebilir LTS sabitleme | Kurulum başına | Evet | NodeSource tarafından bakımı yapılır; üretim için iyidir |
| `nvm` (Node Version Manager) | Çok projeli geliştirme | Tam, kabuk başına | Hayır | Geliştirici iş istasyonları için altın standart |
| `fnm` (Fast Node Manager) | Performans odaklı CI süreçleri | Tam | Hayır | Rust tabanlı, nvm’den önemli ölçüde daha hızlı |
| Docker / konteyner imajı | İzole, tekrarlanabilir derlemeler | Tam, konteyner başına | Bağlıdır | Mikro hizmetler ve CI/CD için en iyisi |
Temel karar kuralı: Bir geliştirici iş istasyonunda her zaman nvm veya fnm kullanın. Bir üretim Linux sunucusunda NodeSource deposunu veya konteyner imajını kullanın. Ubuntu/Debian’da işletim sistemi varsayılan paket yöneticisinin Node.js paketini asla kullanmayın — bu paket rutin olarak mevcut LTS’nin yıllarca gerisinde kalan sürümler sunar.
Linux’a Node.js Kurulumu
Linux, Node.js üretim iş yüklerinin büyük çoğunluğunun gerçekten çalıştığı yerdir. Bunu burada doğru yapmak, başka herhangi bir yerden daha önemlidir. Bir VPS Hosting ortamına dağıtım yapıyorsanız, aşağıdaki yöntemler doğrudan uzak sunucunuza uygulanır.
Yöntem 1: NodeSource İkili Dağıtımları (Sunucular için Önerilen)
NodeSource, Node.js LTS ve Mevcut sürüm hatlarını tam olarak takip eden güncel, imzalı .deb ve .rpm paketlerini yönetir. Bu, üretim Linux sunucuları için en güvenilir yaklaşımdır.
Ubuntu / Debian:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejsFedora / CentOS / RHEL / Rocky Linux:
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejsKurulumdan sonra hem çalışma zamanını hem de birlikte gelen paket yöneticisini doğrulayın:
node -v
npm -vKritik tuzak: curl | bash kalıbı, uzak bir betiği root olarak çalıştırır. Güvenlik açısından hassas ortamlarda, betiği önce indirin, inceleyin, ardından çalıştırın:
curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh
less nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt-get install -y nodejsYöntem 2: nvm — Node Version Manager (Geliştiriciler için Önerilen)
nvm, Node.js’i tamamen ana dizininize (~/.nvm) kurar, sudo gerektirmez ve proje başına veya kabuk oturumu başına sürüm değiştirmenize olanak tanır. Bu, farklı uygulamaların farklı Node.js sürümleri gerektirdiği herhangi bir iş istasyonu veya çok kiracılı sunucu için doğru araçtır.
nvm kurulumu:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashYükleyici, gerekli kabuk başlatma kodunu ~/.bashrc, ~/.zshrc veya ~/.profile dosyasına ekler. Kabuğunuzu yeniden yükleyin:
source ~/.bashrcEn son LTS sürümünü kurun:
nvm install --ltsNumarasıyla belirli bir sürümü kurun:
nvm install 20.14.0Kurulu sürümler arasında geçiş yapın:
nvm use 18
nvm use 20Yeni kabuk oturumları için kalıcı bir varsayılan belirleyin:
nvm alias default 20Yerel olarak kurulu tüm sürümleri listeleyin:
nvm lsAktif sürümü doğrulayın:
node -v
npm -vUç durum — .nvmrc dosyaları: Proje kök dizininize yalnızca sürüm dizesini içeren bir .nvmrc dosyası yerleştirin (örn. 20.14.0). O dizin içinde nvm use çalıştırmak otomatik olarak doğru sürümü seçer. Bu, sürüm kaymasının ince hatalara neden olduğu ekip ortamları için gereklidir.
echo "20.14.0" > .nvmrc
nvm useYöntem 3: Sistem Paket Yöneticisi (Araçlar için Kabul Edilebilir, Üretim için Değil)
Varsayılan apt veya dnf depoları, sıklıkla güncel olmayan Node.js sürümleri sunar. Bunu yalnızca kritik olmayan araçlar için kullanın:
sudo apt-get update
sudo apt-get install -y nodejs npmFedora / RHEL 9+ üzerinde:
sudo dnf install nodejsmacOS’a Node.js Kurulumu
Yöntem 1: Homebrew (Önerilen)
Homebrew, macOS geliştirme ortamları için fiili paket yöneticisidir. Homebrew henüz kurulu değilse, brew.sh adresindeki talimatları izleyin.
brew install nodeBelirli bir ana sürümü kurmak için (örn. Node.js 20 LTS):
brew install node@20
brew link --overwrite node@20Doğrulayın:
node -v
npm -vHomebrew tuzağı: brew upgrade node, eski bir sürüme sabitlenmiş projeleri bozabilecek en son sürüme yükseltir. Birden fazla projeyi yönetiyorsanız, macOS’ta da nvm kullanın — iş akışı Linux ile aynıdır.
Yöntem 2: macOS’ta nvm
nvm kurulum ve kullanım komutları Linux ile aynıdır. Zsh kullanan macOS kullanıcıları (Catalina’dan bu yana varsayılan), kurulumdan sonra ~/.zshrc dosyasının nvm başlatma bloğunu içerdiğini doğrulamalıdır:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"Yöntem 3: Resmi .pkg Yükleyici
.pkg yükleyicisini nodejs.org adresinden indirin, çalıştırın ve sihirbazı izleyin. Bu, tek bir Node.js sürümüne ihtiyaç duyan ve sürüm değiştirme planı olmayan kullanıcılar için en basit yoldur. Kurulumdan sonra Terminal’i açın ve doğrulayın:
node -v
npm -vWindows’a Node.js Kurulumu
Yöntem 1: Resmi .msi Yükleyici
Windows yükleyicisini (.msi) nodejs.org adresinden indirin. Üretime yakın çalışmalar için LTS derlemesini, en son özellikleri denemek için Current derlemesini seçin. Yükleyici, Node.js’i sistem PATH‘ine otomatik olarak kaydeder.
Kurulumdan sonra Komut İstemi’ni veya PowerShell’i açın ve doğrulayın:
node -v
npm -vÖnemli: Yükleyici sihirbazı sırasında, yerel modüller (C++ eklentileri) için Chocolatey ve derleme araçlarını kurmak üzere isteğe bağlı bir adım vardır. Proje bağımlılıklarınız bcrypt, sharp veya node-gyp bağımlı modüller gibi paketler içeriyorsa bunu etkinleştirin. Atlamak, daha sonra anlaşılması güç derleme hatalarına neden olur.
Yöntem 2: Chocolatey
Chocolatey, betiklenmiş, tekrarlanabilir kurulumları mümkün kılan bir Windows paket yöneticisidir — geliştirici makine sağlama için değerlidir.
Yükseltilmiş (Yönetici) Komut İstemi’ni veya PowerShell’i açın:
choco install nodejs-ltsDoğrulayın:
node -v
npm -vYöntem 3: nvm-windows
Linux/macOS için nvm‘nin Windows’ta çalışmadığını unutmayın. Windows eşdeğeri, benzer bir arayüze sahip ayrı bir proje olan nvm-windows‘dur.
Yükleyiciyi nvm-windows GitHub sürümler sayfasından indirin. Kurulumdan sonra:
nvm install lts
nvm use lts
node -vWindows Subsystem for Linux (WSL2): Windows’ta ciddi Node.js çalışması yapan geliştiriciler, Ubuntu ile WSL2’yi güçlü bir şekilde değerlendirmelidir. WSL2 içinde, Linux nvm kurulumu yerel Linux ile aynı şekilde çalışır ve geliştirme deneyimi üretim sunucusu ortamlarıyla önemli ölçüde daha tutarlıdır.
LTS ve Current’ı Anlamak: Hangi Sürümü Kurmalısınız
Node.js, hangi sürümü dağıtmanız gerektiğini doğrudan etkileyen öngörülebilir bir sürüm takvimi izler.
| Sürüm Türü | Kadans | Destek Süresi | Kullanım Durumu |
|---|---|---|---|
| — | — | — | — |
| **LTS (Uzun Vadeli Destek)** | Çift numaralı majörler (18, 20, 22) | Toplam 30 ay (12 Aktif + 18 Bakım) | Üretim uygulamaları, kurumsal iş yükleri |
| **Current** | Tek numaralı majörler (19, 21, 23) | Yalnızca 6 ay | Özellik testi, kütüphane yazarları |
| **Bakım LTS** | Eskiyen LTS sürümleri | Yalnızca güvenlik düzeltmeleri | Taşınan eski sistemler |
Temel kural: Üretimde her zaman LTS dağıtın. Current’ı yalnızca yaklaşan Node.js özellikleriyle uyumluluğu test etmeniz gerektiğinde izole geliştirme ortamlarında kullanın.
Node.js’i Güncel Tutmak
Güncel olmayan Node.js sürümleri, uygulamanızı bilinen V8 motoru güvenlik açıklarına, kullanımdan kaldırılmış TLS yapılandırmalarına ve bozuk bağımlılık uyumluluğuna maruz bırakır. Node.js yükseltmelerini isteğe bağlı iyileştirmeler olarak değil, güvenlik bakımı olarak değerlendirin.
nvm ile (tüm platformlar):
nvm install --lts
nvm reinstall-packages <old-version>
nvm alias default nodenvm reinstall-packages komutu, global olarak kurulu paketleri eski sürümden yenisine taşır — çoğu kılavuzun atladığı ve önemli zaman kazandıran bir ayrıntı.
Debian/Ubuntu’da NodeSource ile:
sudo apt-get update && sudo apt-get upgrade nodejsmacOS’ta Homebrew ile:
brew update && brew upgrade nodeWindows’ta Chocolatey ile:
choco upgrade nodejs-ltsGlobal npm Paketlerini Yönetmek
Global npm paketleri, sistem genelinde erişilebilen CLI araçlarını kurar. Global kurulum listesini minimal tutun — projeye özgü araçlar, ortamlar arasında tekrarlanabilir derlemeler sağlamak için global kurulumlar yerine devDependencies‘a aittir.
Global paket kurun:
npm install -g yarn
npm install -g pm2
npm install -g typescriptGlobal olarak kurulu tüm paketleri listeleyin:
npm list -g --depth=0Global paket kaldırın:
npm uninstall -g yarnYaygın üretime ilişkin global paketler:
pm2— Node.js uygulamaları için süreç yöneticisi; Linux sunucularında kümeleme, otomatik yeniden başlatma ve günlük yönetimini gerçekleştirirtypescript— TypeScript derleyicisi (tsc)nodemon— Kod değişikliklerinde Node.js sürecini otomatik olarak yeniden başlatan geliştirme dosya izleyicisidotenv-cli— Ortama özgü yapılandırma için.envdosyalarını yükler
nvm ve global paketler: nvm ile Node.js sürümlerini değiştirdiğinizde, önceki sürüm altında kurulan global paketler otomatik olarak kullanılabilir olmaz. Ya bunları yeniden kurun ya da taşımak için nvm reinstall-packages <previous-version> kullanın.
Kurulum Sonrası: Üretim Ortamları için npm Yapılandırması
Temiz bir Node.js kurulumu, üretime hazır olmadan önce birkaç ek yapılandırma adımı gerektirir.
npm kayıt defterini ayarlayın (isteğe bağlı, özel kayıt defterleri veya aynalar için):
npm config set registry https://registry.npmjs.org/npm önbellek dizinini yapılandırın (sınırlı /tmp alanına sahip sunucularda geçerlidir):
npm config set cache /path/to/custom/cachepackage-lock.json oluşturmayı devre dışı bırakın (yalnızca ekibiniz yalnızca yarn.lock kullanıyorsa):
npm config set package-lock falseÜretim için Node.js ortam değişkenini ayarlayın:
export NODE_ENV=productionExpress.js, Next.js ve diğer çerçevelerin üretim optimizasyonlarını etkinleştirmesini sağlamak için bunu Linux sunucularında /etc/environment veya uygulamanızın systemd birim dosyasına ekleyin.
Node.js uygulamalarını bir Dedicated Server üzerinde çalıştırıyorsanız, uygulamanızın yeniden başlatmalardan sonra yeniden başlamasını garanti etmek için pm2‘i bir systemd hizmeti olarak yapılandırın:
pm2 start app.js --name "my-app"
pm2 startup systemd
pm2 saveNode.js’i Ters Proxy Arkasında Çalıştırmak
Üretim sunucularında, Node.js uygulamaları asla doğrudan 80 veya 443 numaralı bağlantı noktasında açığa çıkarılmamalıdır. Ters proxy olarak Nginx veya Apache kullanın ve TLS’yi proxy katmanında sonlandırın. Bu, kurulum adımının doğrudan etkinleştirdiği kritik bir mimari karardır.
3000 numaralı bağlantı noktasında çalışan bir Node.js uygulaması için minimal bir Nginx yapılandırması:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}Bunu geçerli bir TLS sertifikasıyla eşleştirin. SSL Sertifikaları, kullanıcı verilerini, kimlik doğrulama tokenlarını veya API isteklerini işleyen herhangi bir Node.js uygulaması için isteğe bağlı değil, zorunludur. certbot aracılığıyla Let’s Encrypt, standart ücretsiz seçenektir; ticari sertifikalar kurumsal dağıtımlar için uygundur.
Paylaşımlı Hosting’de ve VPS’te Node.js
Sık karşılaşılan bir soru: Node.js paylaşımlı hostingde çalışabilir mi?
Standart Paylaşımlı Web Hosting ortamları, Node.js’i anlamlı bir şekilde desteklemez. Paylaşımlı hosting, PHP uygulamaları için tasarlanmıştır ve Node.js’in gerektirdiği kabuk erişimi, kalıcı süreç yönetimi veya özel bağlantı noktalarına bağlanma yeteneği sağlamaz.
Herhangi bir gerçek Node.js dağıtımı için en az bir VPS Hosting planına ihtiyacınız vardır. VPS, root erişimi, pm2 gibi kalıcı bir süreç yöneticisi ve Node.js sürümü ile çalışma zamanı yapılandırması üzerinde tam kontrol sağlar. Node.js ortamınızın yanında yönetilen bir kontrol paneline ihtiyaç duyuyorsanız, cPanel’li VPS, ham VPS erişimi ile yönetilen hosting arasında bir orta yol sunar.
Makine öğrenimi çıkarımı, video dönüştürme veya büyük ölçekli veri işleme gibi hesaplama yoğun Node.js iş yükleri için standart bir VPS yeterli olmayabilir. GPU Hosting, CPU’ya bağlı Node.js süreçlerinin kendi başına elde edemeyeceği donanım hızlandırmasını sağlar.
Teknik Temel Çıkarımlar Kontrol Listesi
Bunu dağıtım öncesi doğrulama kontrol listesi olarak kullanın:
- Sürüm seçimi: Aktif bir LTS sürümü çalıştırdığınızı doğrulayın (
node -vaktif destek penceresinde çift bir majör numara döndürmelidir) - Kurulum yöntemi ortamla eşleşiyor: Geliştirici makinelerinde
nvm; sunucularda NodeSource veya konteyner - npm sürümü güncel: Node.js’i kurduktan sonra
npm install -g npm@latestçalıştırın — birlikte gelen npm genellikle en son sürüm değildir NODE_ENVayarlandı: Tüm sunucu ortamlarındaecho $NODE_ENV‘ninproductiondöndürdüğünü doğrulayın- Süreç yöneticisi yapılandırıldı:
pm2 listuygulamanızın çalıştığını gösteriyor vepm2 startupçalıştırıldı - Ters proxy yerinde: Node.js doğrudan 80/443 numaralı bağlantı noktasında açığa çıkarılmıyor
- TLS proxy’de sonlandırılıyor: Geçerli sertifika kurulu ve HTTPS yönlendirmeleri zorunlu kılınıyor
- Global paket listesi minimal:
npm list -g --depth=0yalnızca temel CLI araçlarını gösteriyor .nvmrcdepoya işlendi: Tüm ekip üyelerinin ve CI süreçlerinin aynı Node.js sürümünü kullanmasını sağlar- Güvenlik güncellemeleri otomatikleştirildi: Bir cron görevi veya CI süreci aylık olarak yeni LTS yamalarını kontrol ediyor
SSS
Node.js LTS ve Current arasındaki fark nedir ve hangisini kurmalıyım?
LTS (Uzun Vadeli Destek) sürümleri, güvenlik ve kararlılık yamaları ile 30 ay desteklenen çift numaralı majörlerdir (18, 20, 22). Current sürümler, yalnızca 6 ay desteklenen tek numaralı majörlerdir. Herhangi bir üretim veya ekip geliştirme çalışması için LTS kurun. Current’ı yalnızca kısa vadeli özellik denemeleri için kullanın.
Kurulumdan sonra nvm neden “komut bulunamadı” gösteriyor?
nvm yükleyicisi, kabuğunuzun RC dosyasına (~/.bashrc veya ~/.zshrc) başlatma kodu ekler, ancak mevcut terminal oturumu bunu yeniden yüklememiştir. source ~/.bashrc (veya Zsh için source ~/.zshrc) çalıştırın ya da yeni bir terminal penceresi açın. Sorun devam ederse, RC dosyanızın sonunda nvm başlatma bloğunun var olduğunu manuel olarak doğrulayın.
Aynı sunucuda birden fazla Node.js sürümünü aynı anda çalıştırabilir miyim?
Evet, nvm ile. Her sürüm, ~/.nvm/versions/ altında kendi dizinine kurulur. Aktif sürümü nvm use <version> ile kabuk oturumu başına veya .nvmrc dosyası kullanarak proje başına değiştirebilirsiniz. Farklı Node.js sürümleri çalıştıran farklı süreçler çakışma olmadan bir arada var olabilir.
Node.js’i varsayılan Ubuntu/Debian apt deposundan neden kurmamalıyım?
Varsayılan Ubuntu ve Debian depoları, genellikle mevcut LTS’nin iki ila dört majör sürüm gerisinde kalan Node.js sürümleri sunar. Örneğin, Ubuntu 22.04 varsayılan olarak 2022’de kullanım ömrünü tamamlamış bir sürüm olan Node.js 12’yi sunar. Desteklenen, güncel bir sürüm edinmek için her zaman NodeSource deposunu veya nvm‘i kullanın.
Node.js’i tamamen kaldırıp sıfırdan başlamak için ne yapmalıyım?
Yöntem, nasıl kurulduğuna bağlıdır. NodeSource kurulumları için: sudo apt-get remove nodejs && sudo apt-get autoremove. nvm için: belirli sürümler için nvm uninstall <version>, veya ~/.nvm dizinini tamamen silin ve RC dosyanızdan başlatma satırlarını kaldırın. Homebrew için: brew uninstall node. macOS/Windows’ta resmi yükleyici için, sistemin standart uygulama kaldırıcısını kullanın ve /usr/local/lib/node_modules veya %AppData%npm altındaki kalan dizinleri manuel olarak kaldırın.
