Takip et

Ubuntu’ya Node.js Kurulumu (Adım Adım Kapsamlı Rehber)

Ubuntu’ya Node.js Kurulumu (Adım Adım Kapsamlı Rehber) Node.js, modern web uygulamaları geliştirmek için vazgeçilmez bir araç haline gelmişt

Ubuntu’ya Node.js Kurulumu (Adım Adım Kapsamlı Rehber)

Node.js, modern web uygulamaları geliştirmek için vazgeçilmez bir araç haline gelmiştir. JavaScript’i tarayıcı dışında, sunucu tarafında çalıştırmamızı sağlayan bu açık kaynaklı çalışma zamanı ortamı, hızlı, ölçeklenebilir ağ uygulamaları inşa etmek için idealdir. Ubuntu ise sunucu ortamlarında ve geliştirme makinelerinde en çok tercih edilen Linux dağıtımlarından biridir. Bu rehber, Ubuntu işletim sistemine Node.js’i farklı yöntemlerle nasıl kuracağınızı adım adım ve kapsamlı bir şekilde açıklayacaktır.

Node.js’in gücü, olay tabanlı, eşzamansız (non-blocking) G/Ç modeline dayanır. Bu, özellikle gerçek zamanlı uygulamalar, API’ler, mikro hizmetler ve arka uç sistemleri geliştirmek için onu son derece verimli kılar. npm (Node Package Manager) ile birlikte gelmesi, geliştiricilerin binlerce açık kaynaklı pakete kolayca erişmesini sağlayarak geliştirme sürecini hızlandırır.

Bu rehberde, Node.js’i Ubuntu’ya kurmak için en yaygın ve önerilen yöntemleri ele alacağız: Ubuntu’nun varsayılan paket yöneticisi apt kullanarak kurulum, NodeSource PPA (Personal Package Archive) kullanarak en güncel sürümleri edinme ve NVM (Node Version Manager) kullanarak birden fazla Node.js sürümünü yönetme. Her yöntemin avantajlarını ve dezavantajlarını tartışacak, böylece ihtiyaçlarınıza en uygun olanı seçebileceksiniz. Ayrıca, kurulum sonrası doğrulama, temel kullanım ve sık karşılaşılan sorun giderme ipuçlarına da değineceğiz.

Node.js ve npm Nedir? Neden Kullanılır?

Node.js, Google Chrome’un V8 JavaScript motoru üzerine inşa edilmiş, sunucu tarafı ve ağ uygulamaları oluşturmak için tasarlanmış açık kaynaklı, çapraz platform bir JavaScript çalışma zamanı ortamıdır. Tarayıcıda çalışan JavaScript’ten farklı olarak, Node.js geliştiricilerin JavaScript’i bir sunucuda, komut satırı araçlarında veya diğer arka uç sistemlerinde kullanmasına olanak tanır. Temel özellikleri arasında yüksek performans, ölçeklenebilirlik, eşzamansız doğa ve geniş bir topluluk desteği bulunur.

npm (Node Package Manager) ise Node.js ile birlikte gelen varsayılan paket yöneticisidir. npm, geliştiricilerin Node.js uygulamaları için bağımlılıkları yönetmelerini, paketleri kurmalarını, güncellemelerini ve paylaşmalarını sağlar. Milyonlarca açık kaynaklı paketin bulunduğu dünyanın en büyük yazılım kayıt defterlerinden birine sahiptir. Bu, geliştiricilerin tekerleği yeniden icat etmek yerine, mevcut çözümleri projelerine entegre etmelerini kolaylaştırır.

Node.js ve npm’in birleşimi, modern web geliştirme dünyasında güçlü bir ekosistem oluşturmuştur. RESTful API’ler, gerçek zamanlı sohbet uygulamaları, mikro hizmetler, IoT (Nesnelerin İnterneti) çözümleri ve hatta masaüstü uygulamaları gibi birçok farklı alanda kullanılmaktadır.

Başlamadan Önce: Sistem Güncelleme

Herhangi bir yazılım kurulumuna başlamadan önce, Ubuntu sisteminizin paket listelerini güncellemek ve mevcut paketleri yükseltmek iyi bir uygulamadır. Bu, bağımlılık sorunlarını önlemeye yardımcı olur ve en son güvenlik yamalarını almanızı sağlar.

Sistem Paketlerini Güncelleme

Terminali açın (Ctrl+Alt+T) ve aşağıdaki komutları çalıştırın:

sudo apt update
sudo apt upgrade -y

* sudo apt update: Bu komut, Ubuntu’nun depolarındaki paket listelerini günceller. Sisteminiz, hangi paketlerin mevcut olduğunu ve hangi sürümlerinin bulunduğunu öğrenir.
* sudo apt upgrade -y: Bu komut, sisteminizde yüklü olan tüm paketleri en son sürümlerine yükseltir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar, böylece yükseltme işlemi kesintisiz devam eder.

Bu adımları tamamladıktan sonra, Node.js kurulumuna geçmeye hazırız.

Yöntem 1: Ubuntu Depolarından apt ile Kurulum (Basit ve Hızlı)

Bu yöntem, Node.js’i Ubuntu’nun varsayılan depolarından apt paket yöneticisi aracılığıyla kurmanın en basit yoludur. Ancak, bu depolar genellikle Node.js’in en son kararlı sürümünü değil, biraz daha eski bir sürümünü barındırır. Eğer belirli bir Node.js sürümüne ihtiyacınız yoksa veya sadece hızlı bir şekilde başlamak istiyorsanız bu yöntem yeterli olabilir.

Node.js ve npm Kurulumu

Aşağıdaki komutu kullanarak Node.js ve npm’i kurabilirsiniz:

sudo apt install nodejs npm -y

* sudo apt install nodejs npm: Bu komut, nodejs paketini ve onunla birlikte gelen npm (Node Package Manager) paketini kurar.
* -y: Kurulum sırasında gelen onay sorularına otomatik olarak “evet” yanıtı verir.

Kurulumu Doğrulama

Kurulum tamamlandıktan sonra, Node.js ve npm’in doğru bir şekilde yüklendiğini doğrulamak için sürüm numaralarını kontrol edebilirsiniz:

node -v
npm -v

Çıktı olarak yüklü Node.js ve npm sürümlerini görmelisiniz, örneğin:

v12.22.9
8.5.0

Not: Ubuntu’nun varsayılan depolarından kurulan nodejs paketi, genellikle node komutu yerine nodejs komutunu kullanmanızı gerektirir. Ancak, çoğu Node.js uygulaması ve komut satırı aracı node komutunu bekler. Bu sorunu çözmek için bir sembolik bağlantı oluşturabilirsiniz:

sudo ln -s /usr/bin/nodejs /usr/bin/node

Bu komut, nodejs komutunu node olarak bağlar, böylece node -v ve diğer node tabanlı komutlar düzgün çalışır. Bazı Ubuntu sürümlerinde bu bağlantı otomatik olarak oluşturulabilir.

Avantajları ve Dezavantajları

* Avantajları:
* Son derece basit ve hızlı kurulum.
* Sistem paket yöneticisiyle entegre.
* Dezavantajları:
* Genellikle Node.js’in en güncel kararlı sürümünü sağlamaz. Bu, modern projeler veya belirli özellikler gerektiren durumlar için sorun olabilir.
* Birden fazla Node.js sürümünü yönetme yeteneği yoktur.

Eğer daha güncel bir Node.js sürümüne ihtiyacınız varsa veya farklı projeler için farklı sürümler arasında geçiş yapmanız gerekiyorsa, sonraki yöntemleri incelemelisiniz.

Yöntem 2: NodeSource PPA Kullanarak Kurulum (Güncel Sürümler İçin Önerilir)

NodeSource, Node.js’in en son kararlı sürümlerini içeren özel PPA’lar (Personal Package Archive) sağlar. Bu yöntem, Ubuntu’nun varsayılan depolarından daha güncel Node.js sürümlerini edinmek için en iyi yoldur ve çoğu geliştirici için önerilen yöntemlerden biridir.

NodeSource PPA Ekleme

NodeSource PPA’sını eklemeden önce, curl paketinin yüklü olduğundan emin olmalıyız. curl, URL sözdizimi kullanarak veri transferi sağlayan bir komut satırı aracıdır.

sudo apt install curl -y

Şimdi NodeSource PPA’sını ekleyebiliriz. NodeSource, farklı Node.js sürümleri için ayrı PPA’lar sunar. Kurmak istediğiniz Node.js sürümüne göre aşağıdaki komutlardan birini seçmelisiniz. Genellikle, en son LTS (Uzun Süreli Destek) sürümünü veya mevcut kararlı sürümü tercih etmek iyi bir yaklaşımdır.

Örneğin, Node.js 20.x sürümünü kurmak için:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

Veya Node.js 18.x sürümünü kurmak için (eğer eski bir LTS sürümüne ihtiyacınız varsa):

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

Bu komut ne yapar?
* curl -fsSL https://deb.nodesource.com/setup_X.x: NodeSource’un kurulum betiğini indirir.
* -f: HTTP isteği başarısız olursa sessizce hatayı göster.
* -s: Sessiz mod (ilerleme çubuğunu ve hata mesajlarını gizler).
* -S: Sessiz modda hata mesajlarını göster.
* -L: Yönlendirmeleri takip et.
* | sudo -E bash -: İndirilen betiği sudo yetkileriyle çalıştırır. -E bayrağı, mevcut ortam değişkenlerinin korunmasını sağlar, bu da kurulum betiğinin düzgün çalışması için önemlidir. Bu betik, NodeSource PPA’sını sisteminizin apt kaynaklarına ekler ve gerekli GPG anahtarını içe aktarır.

Node.js Kurulumu

PPA eklendikten sonra, sisteminizin paket listesini tekrar güncellemeniz gerekir:

sudo apt update

Şimdi Node.js’i kurabilirsiniz. Bu PPA’dan kurulan paket doğrudan node komutunu kullanmanızı sağlar, bu yüzden ayrı bir sembolik bağlantıya gerek yoktur.

sudo apt install nodejs -y

Bu komut, Node.js’i ve onunla birlikte gelen npm’i kuracaktır.

Kurulumu Doğrulama

Kurulum tamamlandıktan sonra, Node.js ve npm’in doğru bir şekilde yüklendiğini doğrulamak için sürüm numaralarını kontrol edin:

node -v
npm -v

Çıktı olarak kurduğunuz Node.js sürümünü (örneğin v20.x.x) ve ilgili npm sürümünü görmelisiniz.

Avantajları ve Dezavantajları

* Avantajları:
* Node.js’in en güncel kararlı sürümlerini (LTS ve Current) kolayca kurmanızı sağlar.
* apt paket yöneticisiyle entegre olduğu için güncellemeler basittir (sudo apt update && sudo apt upgrade).
* node komutu doğrudan kullanılabilir.
* Dezavantajları:
* Yine de tek bir Node.js sürümü yüklersiniz. Farklı projeler için farklı Node.js sürümlerine ihtiyacınız varsa bu yöntem yetersiz kalır.

Çoğu sunucu dağıtımı için NodeSource PPA yöntemi, güncel ve bakımı kolay bir kurulum sağlar. Ancak, geliştirme ortamlarında birden fazla Node.js sürümünü yönetmek sıkça karşılaşılan bir ihtiyaçtır. Bu durumda, NVM (Node Version Manager) devreye girer.

Yöntem 3: NVM (Node Version Manager) ile Kurulum (Geliştiriciler İçin En Esnek Yöntem)

NVM (Node Version Manager), Node.js’in birden fazla sürümünü aynı sistemde kurmanıza, yönetmenize ve aralarında kolayca geçiş yapmanıza olanak tanıyan bir komut satırı aracıdır. Bu, farklı Node.js sürümlerine bağımlı projeler üzerinde çalışan geliştiriciler için son derece kullanışlıdır.

NVM Kurulumu

NVM’i kurmak için aşağıdaki curl veya wget komutunu kullanabilirsiniz. En güncel NVM sürümünü kontrol etmek için NVM GitHub deposunu ziyaret etmeniz önerilir (örneğin, v0.39.7 yerine daha yeni bir sürüm olabilir).

# curl ile kurulum
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

veya wget ile kurulum

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Bu betik, NVM’i kullanıcının ana dizinindeki .nvm klasörüne kurar ve NVM’i kabuk ortamınıza yüklemek için gerekli satırları .bashrc, .zshrc veya .profile dosyanıza ekler.

Kurulum betiği tamamlandıktan sonra, NVM’i kabuk ortamınıza yüklemek için terminali kapatıp yeniden açmanız veya aşağıdaki komutu çalıştırmanız gerekir:

source ~/.bashrc

veya

source ~/.zshrc

veya

source ~/.profile

Hangi kabuğu kullandığınıza bağlı olarak uygun dosyayı kaynak göstermelisiniz.

NVM Kurulumunu Doğrulama

NVM’in doğru bir şekilde yüklendiğini doğrulamak için sürüm numarasını kontrol edin:

nvm --version

Çıktı olarak NVM sürümünü görmelisiniz, örneğin: 0.39.7.

Eğer nvm: command not found hatası alıyorsanız, .bashrc veya .zshrc dosyanıza eklenen NVM satırlarının doğru olduğundan ve kabuk ortamınızın güncellendiğinden emin olun.

Node.js Sürümlerini NVM ile Yönetme

NVM kurulduktan sonra, Node.js sürümlerini kurmak ve yönetmek çok kolaydır.

Mevcut Node.js Sürümlerini Listeleme

Kurulabilecek tüm Node.js sürümlerini görmek için:

nvm ls-remote

Bu komut, Node.js’in tüm LTS ve kararlı sürümlerini listeler.

Node.js Kurulumu

* En son LTS sürümünü kurma:

nvm install --lts

* En son kararlı sürümü kurma:

nvm install node

* Belirli bir sürümü kurma (örneğin, 20.x):

nvm install 20

* Tam sürüm numarasını belirterek kurma (örneğin, 18.17.0):

nvm install 18.17.0

Her kurulumda, ilgili npm sürümü de otomatik olarak yüklenir.

Yüklü Node.js Sürümlerini Listeleme

Sisteminizde yüklü olan Node.js sürümlerini görmek için:

nvm ls

Çıktı, yüklü sürümleri ve o anki aktif sürümü gösterecektir.

Node.js Sürümleri Arasında Geçiş Yapma

Farklı bir Node.js sürümüne geçmek için:

nvm use 18

veya

nvm use 20.1.0

Bu komut, o anki terminal oturumunuz için Node.js sürümünü değiştirir.

Varsayılan Node.js Sürümünü Ayarlama

Yeni bir terminal oturumu açtığınızda otomatik olarak yüklenecek varsayılan Node.js sürümünü ayarlamak için:

nvm alias default 20

Bu, nvm install 20 komutunu çalıştırdıktan sonra otomatik olarak ayarlanabilir, ancak manuel olarak da yapabilirsiniz.

Node.js Sürümünü Kaldırma

Bir Node.js sürümünü sisteminizden kaldırmak için:

nvm uninstall 18

Kaldırmak istediğiniz sürümün aktif olmadığından emin olun.

Avantajları ve Dezavantajları

* Avantajları:
* Aynı sistemde birden fazla Node.js sürümünü kurma ve yönetme yeteneği.
* Farklı projeler için farklı Node.js sürümleri arasında kolayca geçiş yapabilme.
* Geliştirme ortamları için son derece esnek ve güçlü bir araç.
* npm’in izin sorunlarını (EACCES) genellikle kendi başına çözer, çünkü paketler kullanıcının ana dizininde kurulur.
* Dezavantajları:
* apt veya PPA yöntemlerine göre biraz daha fazla başlangıç kurulumu gerektirir.
* Her kullanıcı için ayrı ayrı kurulması gerekebilir (sunucu ortamlarında bu bir dezavantaj olabilir).

NVM, özellikle birden fazla Node.js projesi üzerinde çalışan veya farklı Node.js sürümlerini test etmesi gereken geliştiriciler için kesinlikle önerilen yöntemdir.

Yöntem 4: Kaynaktan Derleyerek Kurulum (İleri Düzey Kullanıcılar İçin)

Node.js’i kaynaktan derleyerek kurmak, en esnek ancak aynı zamanda en karmaşık yöntemdir. Çoğu kullanıcı için gereksizdir, ancak belirli optimizasyonlar yapmanız, en son geliştirme özelliklerini test etmeniz veya çok özel bir ortamda kurulum yapmanız gerektiğinde tercih edilebilir. Bu yöntem, bağımlılıkları manuel olarak yönetmenizi ve Node.js’i derleme sürecini anlamanızı gerektirir.

Önkoşulların Kurulumu

Derleme için gerekli olan temel geliştirme araçlarını ve kütüphaneleri kurmalısınız:

sudo apt update
sudo apt install build-essential libssl-dev python3 -y

* build-essential: Derleme için gerekli olan GCC, G++ gibi araçları içerir.
* libssl-dev: OpenSSL geliştirme kütüphaneleri.
* python3: Node.js’in bazı derleme betikleri Python kullanır.

Node.js Kaynak Kodunu İndirme

Node.js’in resmi web sitesinden (nodejs.org) istediğiniz sürümün kaynak kodunu indirebilirsiniz. Genellikle bir .tar.gz arşivi olarak sunulur.

Örneğin, en son LTS sürümünü indirmek için:

cd /tmp
wget https://nodejs.org/dist/v20.1.0/node-v20.1.0.tar.gz

Not: v20.1.0 yerine istediğiniz Node.js sürümünü yazmalısınız. En güncel sürümü öğrenmek için nodejs.org/en/download/ sayfasını ziyaret edebilirsiniz.

Kaynak Kodunu Ayıklama ve Derleme

İndirilen arşivi ayıklayın ve dizine girin:

tar -xzf node-v20.1.0.tar.gz
cd node-v20.1.0

Şimdi derleme ve kurulum adımlarına geçebiliriz:

./configure
make -j$(nproc)
sudo make install

* ./configure: Derleme ortamınızı kontrol eder ve derleme betiklerini oluşturur.
* make -j$(nproc): Node.js’i derler. -j$(nproc) bayrağı, CPU’nuzdaki çekirdek sayısı kadar paralel derleme işi başlatarak derleme süresini hızlandırır.
* sudo make install: Derlenen Node.js ikili dosyalarını sisteminizin /usr/local/bin gibi standart yollarına kurar.

Bu işlem, sisteminizin donanımına ve Node.js sürümüne bağlı olarak biraz zaman alabilir.

Kurulumu Doğrulama

Kurulum tamamlandıktan sonra, Node.js ve npm’in doğru bir şekilde yüklendiğini doğrulamak için sürüm numaralarını kontrol edin:

node -v
npm -v

Avantajları ve Dezavantajları

* Avantajları:
* Node.js’i en son geliştirme özellikleriyle veya belirli optimizasyonlarla kurma esnekliği.
* Sisteminize tam kontrol sağlar.
* Dezavantajları:
* En karmaşık kurulum yöntemidir.
* Bağımlılıkları ve derleme sürecini manuel olarak yönetmeniz gerekir.
* Güncellemeler de manuel olarak derleme gerektirir, bu da bakımını zorlaştırır.
* Çoğu kullanıcı için gereksizdir.

Bu yöntem, genellikle çok özel durumlar veya Node.js’in iç işleyişini anlamak isteyenler için uygundur. Çoğu geliştirici ve sunucu yöneticisi için NodeSource PPA veya NVM yöntemleri daha pratik ve önerilendir.

Kurulum Sonrası Adımlar ve En İyi Uygulamalar

Node.js’i kurduktan sonra, geliştirme ve üretim ortamlarında daha verimli ve güvenli bir şekilde kullanmak için bazı ek adımlar ve en iyi uygulamalar vardır.

1. Kurulumu Tekrar Doğrulama ve Basit Bir Uygulama Çalıştırma

Node.js ve npm’in doğru çalıştığından emin olmak için basit bir JavaScript dosyası oluşturalım.

Bir app.js dosyası oluşturun:

// app.js
const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Merhaba Dunya Node.js!\n');
});

server.listen(port, hostname, () => {
  console.log(Sunucu http://${hostname}:${port}/ adresinde calisiyor.);
});

Bu dosyayı kaydedin ve terminalde aşağıdaki komutla çalıştırın:

node app.js

Tarayıcınızda http://127.0.0.1:3000 adresine giderek “Merhaba Dunya Node.js!” mesajını görmelisiniz. Bu, Node.js’in başarıyla çalıştığını gösterir.

2. npm Paketlerini Yönetme

npm, Node.js ekosisteminin kalbidir. Paketleri nasıl yöneteceğinizi bilmek önemlidir.

* Yerel Paket Kurulumu: Projenizin kök dizininde bir paket kurmak için:

npm install 

Bu, paketi node_modules klasörüne kurar ve package.json dosyanıza bağımlılık olarak ekler.

* Genel Paket Kurulumu: Komut satırından erişilebilen araçları (örneğin, nodemon, pm2, create-react-app) kurmak için:

npm install -g 

Not: NVM kullanıyorsanız, sudo kullanmadan genel paketler kurabilirsiniz. Diğer yöntemlerde sudo gerekebilir, ancak bu genellikle önerilmez. npm’in izin sorunlarını çözmek için npm config set prefix '~/.npm-global' gibi bir çözüm uygulanabilir.

* Paket Güncelleme:

npm update  # Yerel paketi güncelle
    npm update -g  # Genel paketi güncelle

* Paket Kaldırma:

npm uninstall  # Yerel paketi kaldır
    npm uninstall -g  # Genel paketi kaldır

* package.json Oluşturma: Yeni bir Node.js projesi başlatırken package.json dosyasını oluşturmak için:

npm init

Bu dosya, projenizin meta verilerini ve bağımlılıklarını içerir.

3. Güvenlik Konuları

* Node.js Uygulamalarını Root Olmayan Kullanıcı Olarak Çalıştırma: Üretim ortamında Node.js uygulamalarını asla root kullanıcısı olarak çalıştırmayın. Özel bir sistem kullanıcısı oluşturun ve uygulamanızı bu kullanıcı altında çalıştırın. Bu, potansiyel güvenlik açıklarının sistem genelinde yetkilendirme almasını engeller.
* Node.js ve npm’i Güncel Tutma: Güvenlik açıkları ve performans iyileştirmeleri için Node.js ve npm’i düzenli olarak güncelleyin. NVM kullanıyorsanız, yeni bir sürüm yükleyip kullanmak kolaydır. apt kullanıyorsanız, sudo apt update && sudo apt upgrade komutlarını düzenli olarak çalıştırın.
* npm Paketlerini Denetleme: npm audit komutunu kullanarak projenizin bağımlılıklarındaki bilinen güvenlik açıklarını kontrol edin.

npm audit
    npm audit fix # Otomatik düzeltilebilen açıkları düzeltir

4. Güvenlik Duvarı Yapılandırması (UFW)

Eğer sunucunuzda bir güvenlik duvarı (örneğin UFW – Uncomplicated Firewall) çalışıyorsa, Node.js uygulamanızın dinlediği portlara (genellikle 3000, 80, 443) gelen bağlantılara izin vermeniz gerekir.

* UFW’yi Etkinleştirme (eğer etkin değilse):

sudo ufw enable

* Node.js Uygulama Portuna İzin Verme (örneğin 3000):

sudo ufw allow 3000/tcp

* HTTP (80) ve HTTPS (443) Portlarına İzin Verme (eğer web sunucusu olarak kullanılıyorsa):

sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp

* Güvenlik Duvarı Durumunu Kontrol Etme:

sudo ufw status

5. Süreç Yönetimi (PM2 veya systemd)

Üretim ortamında Node.js uygulamaları genellikle bir süreç yöneticisi altında çalıştırılır. Bu, uygulamanın çökmesi durumunda otomatik olarak yeniden başlatılmasını, kaynak kullanımını izlemesini ve günlükleri yönetmesini sağlar.

* PM2 (Process Manager 2) Kullanımı: PM2, Node.js uygulamaları için popüler bir süreç yöneticisidir.

# PM2'yi genel olarak kurun
    npm install -g pm2

    # Uygulamanızı PM2 ile başlatın
    pm2 start app.js

    # Çalışan süreçleri listele
    pm2 list

    # Uygulamanızın durumunu izle
    pm2 monit

    # PM2'yi sistem başlangıcında otomatik başlatacak şekilde ayarla
    pm2 startup systemd
    pm2 save

    # PM2'yi durdurma ve silme
    pm2 stop app
    pm2 delete app

* systemd Kullanımı (Daha Gelişmiş): Ubuntu’da systemd, sistem hizmetlerini yönetmek için kullanılır. Node.js uygulamanızı bir systemd hizmeti olarak yapılandırarak daha sağlam bir üretim ortamı oluşturabilirsiniz. Bu, genellikle bir .service dosyası oluşturmayı ve uygulamanızın başlangıç, durdurma ve yeniden başlatma davranışını tanımlamayı içerir.

# Örnek bir systemd hizmet dosyası (/etc/systemd/system/myapp.service)
    [Unit]
    Description=My Node.js App
    After=network.target

    [Service]
    User=your_user # Uygulamayı çalıştıracak kullanıcı
    WorkingDirectory=/path/to/your/app # Uygulamanızın dizini
    ExecStart=/usr/bin/node /path/to/your/app/app.js # Node.js uygulamanızın yolu
    Restart=always

    [Install]
    WantedBy=multi-user.target

Hizmet dosyasını oluşturduktan sonra:

sudo systemctl daemon-reload
    sudo systemctl start myapp
    sudo systemctl enable myapp # Sistem başlangıcında otomatik başlat
    sudo systemctl status myapp

Bu adımlar, Node.js uygulamanızın güvenli, kararlı ve verimli bir şekilde çalışmasını sağlamanıza yardımcı olacaktır.

Sık Karşılaşılan Sorunlar ve Çözümleri

Node.js kurulumu veya kullanımı sırasında karşılaşabileceğiniz bazı yaygın sorunlar ve bunların çözümleri aşağıda listelenmiştir:

1. node: command not found veya npm: command not found

* Neden: Node.js veya npm, sisteminizin PATH ortam değişkeninde bulunmuyor. Bu genellikle yanlış kurulum veya PATH’in güncellenmemesi nedeniyle olur.
* Çözüm:
* apt ile kurduysanız: sudo ln -s /usr/bin/nodejs /usr/bin/node komutunu çalıştırarak nodejs komutunu node olarak bağlayın.
* NVM ile kurduysanız: NVM kurulum betiğinin .bashrc veya .zshrc dosyanıza doğru şekilde eklendiğinden emin olun ve terminali yeniden başlatın veya source ~/.bashrc (veya kullandığınız kabuğa göre) komutunu çalıştırın. Ayrıca, nvm use ile bir Node.js sürümünün aktif olduğundan emin olun.
* Kaynaktan kurduysanız: sudo make install adımının başarılı olduğundan ve /usr/local/bin dizininin PATH’inizde olduğundan emin olun.

2. EACCES: permission denied Hataları (npm install -g sırasında)

* Neden: npm, genel paketleri kurmaya çalışırken /usr/local gibi sistem dizinlerine yazma iznine sahip değil.
* Çözüm:
* En İyi Çözüm (NVM kullanın): NVM, Node.js ve npm’i kullanıcının ana dizinine kurduğu için bu tür izin sorunlarını otomatik olarak çözer. NVM kullanıyorsanız, sudo kullanmadan npm install -g komutunu çalıştırabilirsiniz.
* npm’in Varsayılan Dizinini Değiştirme: Eğer NVM kullanmak istemiyorsanız, npm’in genel paketleri kuracağı varsayılan dizini kullanıcı ana dizininizdeki bir konuma değiştirebilirsiniz:

mkdir ~/.npm-global
        npm config set prefix '~/.npm-global'
        echo 'export PATH="~/.npm-global/bin:$PATH"' >> ~/.profile
        source ~/.profile

Bu, npm’in genel paketleri /usr/local yerine ~/.npm-global dizinine kurmasını sağlar.
* Geçici Çözüm (Önerilmez): sudo npm install -g komutunu kullanmak, paketleri root yetkileriyle kurar. Bu, izin sorununu çözer ancak güvenlik riski taşır ve genellikle kötü bir uygulamadır.

3. Node.js Uygulaması Başlamıyor veya Hata Veriyor

* Neden: Uygulama kodunda hata, bağımlılık eksikliği, port çakışması veya yanlış Node.js sürümü kullanılması.
* Çözüm:
* Hata Mesajlarını Kontrol Edin: Terminalde çıkan hata mesajlarını dikkatlice okuyun. Genellikle sorunun kaynağını belirtirler.
* Bağımlılıkları Kontrol Edin: Projenizin package.json dosyasındaki tüm bağımlılıkların npm install ile yüklendiğinden emin olun.
* Port Çakışması: Uygulamanızın dinlemeye çalıştığı portun başka bir süreç tarafından kullanılıp kullanılmadığını kontrol edin. sudo lsof -i : komutuyla kontrol edebilirsiniz.
* Node.js Sürümü: Uygulamanızın gerektirdiği Node.js sürümünü kullandığınızdan emin olun. NVM kullanıyorsanız nvm use ile doğru sürümü seçin.

4. Yerel Modüllerle İlgili Sorunlar (node-gyp Hataları)

* Neden: Bazı npm paketleri (örneğin, sqlite3, bcrypt), Node.js ile birlikte derlenmesi gereken C/C++ kodları içerir. Bu derleme işlemi için gerekli geliştirme araçları eksik olabilir.
* Çözüm: build-essential paketini kurun:

sudo apt install build-essential -y

Bu paket, GCC, G++ ve make gibi derleme için gerekli temel araçları sağlar.

5. Performans Sorunları veya Bellek Sızıntıları

* Neden: Uygulamanızda verimsiz kod, bellek sızıntıları veya yetersiz sunucu kaynakları.
* Çözüm:
* Kaynakları İzleyin: top, htop veya pm2 monit gibi araçlarla CPU ve bellek kullanımını izleyin.
* Profil Oluşturma: Node.js’in dahili profilleme araçlarını veya Chrome DevTools’u kullanarak uygulamanızdaki performans darboğazlarını bulun.
* Bellek Sızıntılarını Tespit Edin: heapdump veya memwatch-next gibi npm paketleri bellek sızıntılarını tespit etmenize yardımcı olabilir.
* Ölçeklendirme: Eğer tek bir Node.js süreci yetersiz kalıyorsa, PM2’nin küme modunu (cluster mode) kullanarak uygulamanızı birden fazla CPU çekirdeğinde çalıştırın veya yük dengeleme ile birden fazla sunucuya dağıtın.

Bu sorun giderme ipuçları, Node.js ile çalışırken karşılaşabileceğiniz yaygın engelleri aşmanıza yardımcı olacaktır.

Sonuç

Bu kapsamlı rehberde, Node.js’i Ubuntu işletim sistemine kurmanın farklı yöntemlerini ve her birinin avantajlarını, dezavantajlarını detaylı bir şekilde inceledik. İster hızlı ve basit bir kurulum için apt paket yöneticisini kullanın, ister en güncel sürümler için NodeSource PPA’yı tercih edin, isterse de birden fazla Node.js sürümünü yönetmek için NVM’in esnekliğinden yararlanın, ihtiyaçlarınıza uygun bir çözüm bulabilirsiniz. Kaynaktan derleme yöntemi ise daha ileri düzey kullanıcılar ve özel gereksinimler için bir seçenek olarak sunulmuştur.

Kurulum sonrası adımlarda, Node.js ve npm’in doğru çalıştığını doğrulamak için basit bir uygulama çalıştırmayı, npm paketlerini etkili bir şekilde yönetmeyi, güvenlik en iyi uygulamalarını uygulamayı (root olmayan kullanıcı, güncel tutma, güvenlik duvarı), ve üretim ortamlarında uygulamalarınızı kararlı bir şekilde çalıştırmak için süreç yöneticilerini (PM2, systemd) kullanmayı öğrendik. Ayrıca, sık karşılaşılan sorunları ve bunların çözümlerini de ele alarak olası engelleri aşmanıza yardımcı olmayı amaçladık.

Node.js, modern web uygulamaları geliştirmek için güçlü ve çok yönlü bir platform sunar. Bu rehberdeki bilgileri kullanarak, Ubuntu sisteminizde Node.js geliştirme ortamınızı başarıyla kurabilir ve projelerinizi hayata geçirmeye başlayabilirsiniz. Unutmayın, Node.js ekosistemi sürekli gelişmektedir, bu nedenle en son sürümleri takip etmek ve güvenlik güncellemelerini düzenli olarak uygulamak önemlidir. Şimdi Node.js ile harika şeyler inşa etmeye hazırsınız!

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version