{"id":33985,"date":"2025-11-09T16:40:55","date_gmt":"2025-11-09T13:40:55","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=33985"},"modified":"2025-11-09T16:40:55","modified_gmt":"2025-11-09T13:40:55","slug":"ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/","title":{"rendered":"Ubuntu&#8217;ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber)"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu&#8217;ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber)<\/h2>\n<p>Node.js, modern web uygulamalar\u0131 geli\u015ftirmek i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ftir. JavaScript&#8217;i taray\u0131c\u0131 d\u0131\u015f\u0131nda, sunucu taraf\u0131nda \u00e7al\u0131\u015ft\u0131rmam\u0131z\u0131 sa\u011flayan bu a\u00e7\u0131k kaynakl\u0131 \u00e7al\u0131\u015fma zaman\u0131 ortam\u0131, h\u0131zl\u0131, \u00f6l\u00e7eklenebilir a\u011f uygulamalar\u0131 in\u015fa etmek i\u00e7in idealdir. Ubuntu ise sunucu ortamlar\u0131nda ve geli\u015ftirme makinelerinde en \u00e7ok tercih edilen Linux da\u011f\u0131t\u0131mlar\u0131ndan biridir. Bu rehber, Ubuntu i\u015fletim sistemine Node.js&#8217;i farkl\u0131 y\u00f6ntemlerle nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ve kapsaml\u0131 bir \u015fekilde a\u00e7\u0131klayacakt\u0131r.<\/p>\n<p>Node.js&#8217;in g\u00fcc\u00fc, olay tabanl\u0131, e\u015fzamans\u0131z (non-blocking) G\/\u00c7 modeline dayan\u0131r. Bu, \u00f6zellikle ger\u00e7ek zamanl\u0131 uygulamalar, API&#8217;ler, mikro hizmetler ve arka u\u00e7 sistemleri geli\u015ftirmek i\u00e7in onu son derece verimli k\u0131lar. npm (Node Package Manager) ile birlikte gelmesi, geli\u015ftiricilerin binlerce a\u00e7\u0131k kaynakl\u0131 pakete kolayca eri\u015fmesini sa\u011flayarak geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131r.<\/p>\n<p>Bu rehberde, Node.js&#8217;i Ubuntu&#8217;ya kurmak i\u00e7in en yayg\u0131n ve \u00f6nerilen y\u00f6ntemleri ele alaca\u011f\u0131z: Ubuntu&#8217;nun varsay\u0131lan paket y\u00f6neticisi <code>apt<\/code> kullanarak kurulum, NodeSource PPA (Personal Package Archive) kullanarak en g\u00fcncel s\u00fcr\u00fcmleri edinme ve NVM (Node Version Manager) kullanarak birden fazla Node.js s\u00fcr\u00fcm\u00fcn\u00fc y\u00f6netme. Her y\u00f6ntemin avantajlar\u0131n\u0131 ve dezavantajlar\u0131n\u0131 tart\u0131\u015facak, b\u00f6ylece ihtiya\u00e7lar\u0131n\u0131za en uygun olan\u0131 se\u00e7ebileceksiniz. Ayr\u0131ca, kurulum sonras\u0131 do\u011frulama, temel kullan\u0131m ve s\u0131k kar\u015f\u0131la\u015f\u0131lan sorun giderme ipu\u00e7lar\u0131na da de\u011finece\u011fiz.<\/p>\n<h3>Node.js ve npm Nedir? Neden Kullan\u0131l\u0131r?<\/h3>\n<p>Node.js, Google Chrome&#8217;un V8 JavaScript motoru \u00fczerine in\u015fa edilmi\u015f, sunucu taraf\u0131 ve a\u011f uygulamalar\u0131 olu\u015fturmak i\u00e7in tasarlanm\u0131\u015f a\u00e7\u0131k kaynakl\u0131, \u00e7apraz platform bir JavaScript \u00e7al\u0131\u015fma zaman\u0131 ortam\u0131d\u0131r. Taray\u0131c\u0131da \u00e7al\u0131\u015fan JavaScript&#8217;ten farkl\u0131 olarak, Node.js geli\u015ftiricilerin JavaScript&#8217;i bir sunucuda, komut sat\u0131r\u0131 ara\u00e7lar\u0131nda veya di\u011fer arka u\u00e7 sistemlerinde kullanmas\u0131na olanak tan\u0131r. Temel \u00f6zellikleri aras\u0131nda y\u00fcksek performans, \u00f6l\u00e7eklenebilirlik, e\u015fzamans\u0131z do\u011fa ve geni\u015f bir topluluk deste\u011fi bulunur.<\/p>\n<p>npm (Node Package Manager) ise Node.js ile birlikte gelen varsay\u0131lan paket y\u00f6neticisidir. npm, geli\u015ftiricilerin Node.js uygulamalar\u0131 i\u00e7in ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00f6netmelerini, paketleri kurmalar\u0131n\u0131, g\u00fcncellemelerini ve payla\u015fmalar\u0131n\u0131 sa\u011flar. Milyonlarca a\u00e7\u0131k kaynakl\u0131 paketin bulundu\u011fu d\u00fcnyan\u0131n en b\u00fcy\u00fck yaz\u0131l\u0131m kay\u0131t defterlerinden birine sahiptir. Bu, geli\u015ftiricilerin tekerle\u011fi yeniden icat etmek yerine, mevcut \u00e7\u00f6z\u00fcmleri projelerine entegre etmelerini kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Node.js ve npm&#8217;in birle\u015fimi, modern web geli\u015ftirme d\u00fcnyas\u0131nda g\u00fc\u00e7l\u00fc bir ekosistem olu\u015fturmu\u015ftur. RESTful API&#8217;ler, ger\u00e7ek zamanl\u0131 sohbet uygulamalar\u0131, mikro hizmetler, IoT (Nesnelerin \u0130nterneti) \u00e7\u00f6z\u00fcmleri ve hatta masa\u00fcst\u00fc uygulamalar\u0131 gibi bir\u00e7ok farkl\u0131 alanda kullan\u0131lmaktad\u0131r.<\/p>\n<h3>Ba\u015flamadan \u00d6nce: Sistem G\u00fcncelleme<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, Ubuntu sisteminizin paket listelerini g\u00fcncellemek ve mevcut paketleri y\u00fckseltmek iyi bir uygulamad\u0131r. Bu, ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nlemeye yard\u0131mc\u0131 olur ve en son g\u00fcvenlik yamalar\u0131n\u0131 alman\u0131z\u0131 sa\u011flar.<\/p>\n<h4>Sistem Paketlerini G\u00fcncelleme<\/h4>\n<p>Terminali a\u00e7\u0131n (Ctrl+Alt+T) ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>*   <code>sudo apt update<\/code>: Bu komut, Ubuntu&#8217;nun depolar\u0131ndaki paket listelerini g\u00fcnceller. Sisteminiz, hangi paketlerin mevcut oldu\u011funu ve hangi s\u00fcr\u00fcmlerinin bulundu\u011funu \u00f6\u011frenir.<br \/>\n*   <code>sudo apt upgrade -y<\/code>: Bu komut, sisteminizde y\u00fckl\u00fc olan t\u00fcm paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltir. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 vermenizi sa\u011flar, b\u00f6ylece y\u00fckseltme i\u015flemi kesintisiz devam eder.<\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, Node.js kurulumuna ge\u00e7meye haz\u0131r\u0131z.<\/p>\n<h3>Y\u00f6ntem 1: Ubuntu Depolar\u0131ndan apt ile Kurulum (Basit ve H\u0131zl\u0131)<\/h3>\n<p>Bu y\u00f6ntem, Node.js&#8217;i Ubuntu&#8217;nun varsay\u0131lan depolar\u0131ndan <code>apt<\/code> paket y\u00f6neticisi arac\u0131l\u0131\u011f\u0131yla kurman\u0131n en basit yoludur. Ancak, bu depolar genellikle Node.js&#8217;in en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc de\u011fil, biraz daha eski bir s\u00fcr\u00fcm\u00fcn\u00fc bar\u0131nd\u0131r\u0131r. E\u011fer belirli bir Node.js s\u00fcr\u00fcm\u00fcne ihtiyac\u0131n\u0131z yoksa veya sadece h\u0131zl\u0131 bir \u015fekilde ba\u015flamak istiyorsan\u0131z bu y\u00f6ntem yeterli olabilir.<\/p>\n<h4>Node.js ve npm Kurulumu<\/h4>\n<p>A\u015fa\u011f\u0131daki komutu kullanarak Node.js ve npm&#8217;i kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt install nodejs npm -y<\/code><\/pre>\n<p>*   <code>sudo apt install nodejs npm<\/code>: Bu komut, <code>nodejs<\/code> paketini ve onunla birlikte gelen <code>npm<\/code> (Node Package Manager) paketini kurar.<br \/>\n*   <code>-y<\/code>: Kurulum s\u0131ras\u0131nda gelen onay sorular\u0131na otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 verir.<\/p>\n<h4>Kurulumu Do\u011frulama<\/h4>\n<p>Kurulum tamamland\u0131ktan sonra, Node.js ve npm&#8217;in do\u011fru bir \u015fekilde y\u00fcklendi\u011fini do\u011frulamak i\u00e7in s\u00fcr\u00fcm numaralar\u0131n\u0131 kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">node -v\nnpm -v<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131 olarak y\u00fckl\u00fc Node.js ve npm s\u00fcr\u00fcmlerini g\u00f6rmelisiniz, \u00f6rne\u011fin:<\/p>\n<pre><code class=\"language-\">v12.22.9\n8.5.0<\/code><\/pre>\n<p><strong>Not:<\/strong> Ubuntu&#8217;nun varsay\u0131lan depolar\u0131ndan kurulan <code>nodejs<\/code> paketi, genellikle <code>node<\/code> komutu yerine <code>nodejs<\/code> komutunu kullanman\u0131z\u0131 gerektirir. Ancak, \u00e7o\u011fu Node.js uygulamas\u0131 ve komut sat\u0131r\u0131 arac\u0131 <code>node<\/code> komutunu bekler. Bu sorunu \u00e7\u00f6zmek i\u00e7in bir sembolik ba\u011flant\u0131 olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/usr\/bin\/nodejs \/usr\/bin\/node<\/code><\/pre>\n<p>Bu komut, <code>nodejs<\/code> komutunu <code>node<\/code> olarak ba\u011flar, b\u00f6ylece <code>node -v<\/code> ve di\u011fer <code>node<\/code> tabanl\u0131 komutlar d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131r. Baz\u0131 Ubuntu s\u00fcr\u00fcmlerinde bu ba\u011flant\u0131 otomatik olarak olu\u015fturulabilir.<\/p>\n<h4>Avantajlar\u0131 ve Dezavantajlar\u0131<\/h4>\n<p>*   <strong>Avantajlar\u0131:<\/strong><br \/>\n    *   Son derece basit ve h\u0131zl\u0131 kurulum.<br \/>\n    *   Sistem paket y\u00f6neticisiyle entegre.<br \/>\n*   <strong>Dezavantajlar\u0131:<\/strong><br \/>\n    *   Genellikle Node.js&#8217;in en g\u00fcncel kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc sa\u011flamaz. Bu, modern projeler veya belirli \u00f6zellikler gerektiren durumlar i\u00e7in sorun olabilir.<br \/>\n    *   Birden fazla Node.js s\u00fcr\u00fcm\u00fcn\u00fc y\u00f6netme yetene\u011fi yoktur.<\/p>\n<p>E\u011fer daha g\u00fcncel bir Node.js s\u00fcr\u00fcm\u00fcne ihtiyac\u0131n\u0131z varsa veya farkl\u0131 projeler i\u00e7in farkl\u0131 s\u00fcr\u00fcmler aras\u0131nda ge\u00e7i\u015f yapman\u0131z gerekiyorsa, sonraki y\u00f6ntemleri incelemelisiniz.<\/p>\n<h3>Y\u00f6ntem 2: NodeSource PPA Kullanarak Kurulum (G\u00fcncel S\u00fcr\u00fcmler \u0130\u00e7in \u00d6nerilir)<\/h3>\n<p>NodeSource, Node.js&#8217;in en son kararl\u0131 s\u00fcr\u00fcmlerini i\u00e7eren \u00f6zel PPA&#8217;lar (Personal Package Archive) sa\u011flar. Bu y\u00f6ntem, Ubuntu&#8217;nun varsay\u0131lan depolar\u0131ndan daha g\u00fcncel Node.js s\u00fcr\u00fcmlerini edinmek i\u00e7in en iyi yoldur ve \u00e7o\u011fu geli\u015ftirici i\u00e7in \u00f6nerilen y\u00f6ntemlerden biridir.<\/p>\n<h4>NodeSource PPA Ekleme<\/h4>\n<p>NodeSource PPA&#8217;s\u0131n\u0131 eklemeden \u00f6nce, <code>curl<\/code> paketinin y\u00fckl\u00fc oldu\u011fundan emin olmal\u0131y\u0131z. <code>curl<\/code>, URL s\u00f6zdizimi kullanarak veri transferi sa\u011flayan bir komut sat\u0131r\u0131 arac\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo apt install curl -y<\/code><\/pre>\n<p>\u015eimdi NodeSource PPA&#8217;s\u0131n\u0131 ekleyebiliriz. NodeSource, farkl\u0131 Node.js s\u00fcr\u00fcmleri i\u00e7in ayr\u0131 PPA&#8217;lar sunar. Kurmak istedi\u011finiz Node.js s\u00fcr\u00fcm\u00fcne g\u00f6re a\u015fa\u011f\u0131daki komutlardan birini se\u00e7melisiniz. Genellikle, en son LTS (Uzun S\u00fcreli Destek) s\u00fcr\u00fcm\u00fcn\u00fc veya mevcut kararl\u0131 s\u00fcr\u00fcm\u00fc tercih etmek iyi bir yakla\u015f\u0131md\u0131r.<\/p>\n<p>\u00d6rne\u011fin, Node.js 20.x s\u00fcr\u00fcm\u00fcn\u00fc kurmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">curl -fsSL https:\/\/deb.nodesource.com\/setup_20.x | sudo -E bash -<\/code><\/pre>\n<p>Veya Node.js 18.x s\u00fcr\u00fcm\u00fcn\u00fc kurmak i\u00e7in (e\u011fer eski bir LTS s\u00fcr\u00fcm\u00fcne ihtiyac\u0131n\u0131z varsa):<\/p>\n<pre><code class=\"language-bash\">curl -fsSL https:\/\/deb.nodesource.com\/setup_18.x | sudo -E bash -<\/code><\/pre>\n<p>Bu komut ne yapar?<br \/>\n*   <code>curl -fsSL https:\/\/deb.nodesource.com\/setup_X.x<\/code>: NodeSource&#8217;un kurulum beti\u011fini indirir.<br \/>\n    *   <code>-f<\/code>: HTTP iste\u011fi ba\u015far\u0131s\u0131z olursa sessizce hatay\u0131 g\u00f6ster.<br \/>\n    *   <code>-s<\/code>: Sessiz mod (ilerleme \u00e7ubu\u011funu ve hata mesajlar\u0131n\u0131 gizler).<br \/>\n    *   <code>-S<\/code>: Sessiz modda hata mesajlar\u0131n\u0131 g\u00f6ster.<br \/>\n    *   <code>-L<\/code>: Y\u00f6nlendirmeleri takip et.<br \/>\n*   <code>| sudo -E bash -<\/code>: \u0130ndirilen beti\u011fi <code>sudo<\/code> yetkileriyle \u00e7al\u0131\u015ft\u0131r\u0131r. <code>-E<\/code> bayra\u011f\u0131, mevcut ortam de\u011fi\u015fkenlerinin korunmas\u0131n\u0131 sa\u011flar, bu da kurulum beti\u011finin d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in \u00f6nemlidir. Bu betik, NodeSource PPA&#8217;s\u0131n\u0131 sisteminizin <code>apt<\/code> kaynaklar\u0131na ekler ve gerekli GPG anahtar\u0131n\u0131 i\u00e7e aktar\u0131r.<\/p>\n<h4>Node.js Kurulumu<\/h4>\n<p>PPA eklendikten sonra, sisteminizin paket listesini tekrar g\u00fcncellemeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>\u015eimdi Node.js&#8217;i kurabilirsiniz. Bu PPA&#8217;dan kurulan paket do\u011frudan <code>node<\/code> komutunu kullanman\u0131z\u0131 sa\u011flar, bu y\u00fczden ayr\u0131 bir sembolik ba\u011flant\u0131ya gerek yoktur.<\/p>\n<pre><code class=\"language-bash\">sudo apt install nodejs -y<\/code><\/pre>\n<p>Bu komut, Node.js&#8217;i ve onunla birlikte gelen npm&#8217;i kuracakt\u0131r.<\/p>\n<h4>Kurulumu Do\u011frulama<\/h4>\n<p>Kurulum tamamland\u0131ktan sonra, Node.js ve npm&#8217;in do\u011fru bir \u015fekilde y\u00fcklendi\u011fini do\u011frulamak i\u00e7in s\u00fcr\u00fcm numaralar\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">node -v\nnpm -v<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131 olarak kurdu\u011funuz Node.js s\u00fcr\u00fcm\u00fcn\u00fc (\u00f6rne\u011fin <code>v20.x.x<\/code>) ve ilgili npm s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6rmelisiniz.<\/p>\n<h4>Avantajlar\u0131 ve Dezavantajlar\u0131<\/h4>\n<p>*   <strong>Avantajlar\u0131:<\/strong><br \/>\n    *   Node.js&#8217;in en g\u00fcncel kararl\u0131 s\u00fcr\u00fcmlerini (LTS ve Current) kolayca kurman\u0131z\u0131 sa\u011flar.<br \/>\n    *   <code>apt<\/code> paket y\u00f6neticisiyle entegre oldu\u011fu i\u00e7in g\u00fcncellemeler basittir (<code>sudo apt update && sudo apt upgrade<\/code>).<br \/>\n    *   <code>node<\/code> komutu do\u011frudan kullan\u0131labilir.<br \/>\n*   <strong>Dezavantajlar\u0131:<\/strong><br \/>\n    *   Yine de tek bir Node.js s\u00fcr\u00fcm\u00fc y\u00fcklersiniz. Farkl\u0131 projeler i\u00e7in farkl\u0131 Node.js s\u00fcr\u00fcmlerine ihtiyac\u0131n\u0131z varsa bu y\u00f6ntem yetersiz kal\u0131r.<\/p>\n<p>\u00c7o\u011fu sunucu da\u011f\u0131t\u0131m\u0131 i\u00e7in NodeSource PPA y\u00f6ntemi, g\u00fcncel ve bak\u0131m\u0131 kolay bir kurulum sa\u011flar. Ancak, geli\u015ftirme ortamlar\u0131nda birden fazla Node.js s\u00fcr\u00fcm\u00fcn\u00fc y\u00f6netmek s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan bir ihtiya\u00e7t\u0131r. Bu durumda, NVM (Node Version Manager) devreye girer.<\/p>\n<h3>Y\u00f6ntem 3: NVM (Node Version Manager) ile Kurulum (Geli\u015ftiriciler \u0130\u00e7in En Esnek Y\u00f6ntem)<\/h3>\n<p>NVM (Node Version Manager), Node.js&#8217;in birden fazla s\u00fcr\u00fcm\u00fcn\u00fc ayn\u0131 sistemde kurman\u0131za, y\u00f6netmenize ve aralar\u0131nda kolayca ge\u00e7i\u015f yapman\u0131za olanak tan\u0131yan bir komut sat\u0131r\u0131 arac\u0131d\u0131r. Bu, farkl\u0131 Node.js s\u00fcr\u00fcmlerine ba\u011f\u0131ml\u0131 projeler \u00fczerinde \u00e7al\u0131\u015fan geli\u015ftiriciler i\u00e7in son derece kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h4>NVM Kurulumu<\/h4>\n<p>NVM&#8217;i kurmak i\u00e7in a\u015fa\u011f\u0131daki <code>curl<\/code> veya <code>wget<\/code> komutunu kullanabilirsiniz. En g\u00fcncel NVM s\u00fcr\u00fcm\u00fcn\u00fc kontrol etmek i\u00e7in NVM GitHub deposunu ziyaret etmeniz \u00f6nerilir (\u00f6rne\u011fin, <code>v0.39.7<\/code> yerine daha yeni bir s\u00fcr\u00fcm olabilir).<\/p>\n<pre><code class=\"language-bash\"># curl ile kurulum\ncurl -o- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.7\/install.sh | bash\n\n<h2>veya wget ile kurulum<\/h2>\n<h2>wget -qO- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.7\/install.sh | bash<\/code><\/pre>\n<\/h2>\n<p>Bu betik, NVM&#8217;i kullan\u0131c\u0131n\u0131n ana dizinindeki <code>.nvm<\/code> klas\u00f6r\u00fcne kurar ve NVM&#8217;i kabuk ortam\u0131n\u0131za y\u00fcklemek i\u00e7in gerekli sat\u0131rlar\u0131 <code>.bashrc<\/code>, <code>.zshrc<\/code> veya <code>.profile<\/code> dosyan\u0131za ekler.<\/p>\n<p>Kurulum beti\u011fi tamamland\u0131ktan sonra, NVM&#8217;i kabuk ortam\u0131n\u0131za y\u00fcklemek i\u00e7in terminali kapat\u0131p yeniden a\u00e7man\u0131z veya a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">source ~\/.bashrc\n<h2>veya<\/h2>\nsource ~\/.zshrc\n<h2>veya<\/h2>\nsource ~\/.profile<\/code><\/pre>\n<p>Hangi kabu\u011fu kulland\u0131\u011f\u0131n\u0131za ba\u011fl\u0131 olarak uygun dosyay\u0131 kaynak g\u00f6stermelisiniz.<\/p>\n<h4>NVM Kurulumunu Do\u011frulama<\/h4>\n<p>NVM&#8217;in do\u011fru bir \u015fekilde y\u00fcklendi\u011fini do\u011frulamak i\u00e7in s\u00fcr\u00fcm numaras\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">nvm --version<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131 olarak NVM s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6rmelisiniz, \u00f6rne\u011fin: <code>0.39.7<\/code>.<\/p>\n<p>E\u011fer <code>nvm: command not found<\/code> hatas\u0131 al\u0131yorsan\u0131z, <code>.bashrc<\/code> veya <code>.zshrc<\/code> dosyan\u0131za eklenen NVM sat\u0131rlar\u0131n\u0131n do\u011fru oldu\u011fundan ve kabuk ortam\u0131n\u0131z\u0131n g\u00fcncellendi\u011finden emin olun.<\/p>\n<h4>Node.js S\u00fcr\u00fcmlerini NVM ile Y\u00f6netme<\/h4>\n<p>NVM kurulduktan sonra, Node.js s\u00fcr\u00fcmlerini kurmak ve y\u00f6netmek \u00e7ok kolayd\u0131r.<\/p>\n<h5>Mevcut Node.js S\u00fcr\u00fcmlerini Listeleme<\/h5>\n<p>Kurulabilecek t\u00fcm Node.js s\u00fcr\u00fcmlerini g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm ls-remote<\/code><\/pre>\n<p>Bu komut, Node.js&#8217;in t\u00fcm LTS ve kararl\u0131 s\u00fcr\u00fcmlerini listeler.<\/p>\n<h5>Node.js Kurulumu<\/h5>\n<p>*   <strong>En son LTS s\u00fcr\u00fcm\u00fcn\u00fc kurma:<\/strong><\/p>\n<pre><code class=\"language-bash\">nvm install --lts<\/code><\/pre>\n<p>*   <strong>En son kararl\u0131 s\u00fcr\u00fcm\u00fc kurma:<\/strong><\/p>\n<pre><code class=\"language-bash\">nvm install node<\/code><\/pre>\n<p>*   <strong>Belirli bir s\u00fcr\u00fcm\u00fc kurma (\u00f6rne\u011fin, 20.x):<\/strong><\/p>\n<pre><code class=\"language-bash\">nvm install 20<\/code><\/pre>\n<p>*   <strong>Tam s\u00fcr\u00fcm numaras\u0131n\u0131 belirterek kurma (\u00f6rne\u011fin, 18.17.0):<\/strong><\/p>\n<pre><code class=\"language-bash\">nvm install 18.17.0<\/code><\/pre>\n<p>Her kurulumda, ilgili npm s\u00fcr\u00fcm\u00fc de otomatik olarak y\u00fcklenir.<\/p>\n<h5>Y\u00fckl\u00fc Node.js S\u00fcr\u00fcmlerini Listeleme<\/h5>\n<p>Sisteminizde y\u00fckl\u00fc olan Node.js s\u00fcr\u00fcmlerini g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm ls<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131, y\u00fckl\u00fc s\u00fcr\u00fcmleri ve o anki aktif s\u00fcr\u00fcm\u00fc g\u00f6sterecektir.<\/p>\n<h5>Node.js S\u00fcr\u00fcmleri Aras\u0131nda Ge\u00e7i\u015f Yapma<\/h5>\n<p>Farkl\u0131 bir Node.js s\u00fcr\u00fcm\u00fcne ge\u00e7mek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm use 18\n<h2>veya<\/h2>\nnvm use 20.1.0<\/code><\/pre>\n<p>Bu komut, o anki terminal oturumunuz i\u00e7in Node.js s\u00fcr\u00fcm\u00fcn\u00fc de\u011fi\u015ftirir.<\/p>\n<h5>Varsay\u0131lan Node.js S\u00fcr\u00fcm\u00fcn\u00fc Ayarlama<\/h5>\n<p>Yeni bir terminal oturumu a\u00e7t\u0131\u011f\u0131n\u0131zda otomatik olarak y\u00fcklenecek varsay\u0131lan Node.js s\u00fcr\u00fcm\u00fcn\u00fc ayarlamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm alias default 20<\/code><\/pre>\n<p>Bu, <code>nvm install 20<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra otomatik olarak ayarlanabilir, ancak manuel olarak da yapabilirsiniz.<\/p>\n<h5>Node.js S\u00fcr\u00fcm\u00fcn\u00fc Kald\u0131rma<\/h5>\n<p>Bir Node.js s\u00fcr\u00fcm\u00fcn\u00fc sisteminizden kald\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm uninstall 18<\/code><\/pre>\n<p>Kald\u0131rmak istedi\u011finiz s\u00fcr\u00fcm\u00fcn aktif olmad\u0131\u011f\u0131ndan emin olun.<\/p>\n<h4>Avantajlar\u0131 ve Dezavantajlar\u0131<\/h4>\n<p>*   <strong>Avantajlar\u0131:<\/strong><br \/>\n    *   Ayn\u0131 sistemde birden fazla Node.js s\u00fcr\u00fcm\u00fcn\u00fc kurma ve y\u00f6netme yetene\u011fi.<br \/>\n    *   Farkl\u0131 projeler i\u00e7in farkl\u0131 Node.js s\u00fcr\u00fcmleri aras\u0131nda kolayca ge\u00e7i\u015f yapabilme.<br \/>\n    *   Geli\u015ftirme ortamlar\u0131 i\u00e7in son derece esnek ve g\u00fc\u00e7l\u00fc bir ara\u00e7.<br \/>\n    *   npm&#8217;in izin sorunlar\u0131n\u0131 (EACCES) genellikle kendi ba\u015f\u0131na \u00e7\u00f6zer, \u00e7\u00fcnk\u00fc paketler kullan\u0131c\u0131n\u0131n ana dizininde kurulur.<br \/>\n*   <strong>Dezavantajlar\u0131:<\/strong><br \/>\n    *   <code>apt<\/code> veya PPA y\u00f6ntemlerine g\u00f6re biraz daha fazla ba\u015flang\u0131\u00e7 kurulumu gerektirir.<br \/>\n    *   Her kullan\u0131c\u0131 i\u00e7in ayr\u0131 ayr\u0131 kurulmas\u0131 gerekebilir (sunucu ortamlar\u0131nda bu bir dezavantaj olabilir).<\/p>\n<p>NVM, \u00f6zellikle birden fazla Node.js projesi \u00fczerinde \u00e7al\u0131\u015fan veya farkl\u0131 Node.js s\u00fcr\u00fcmlerini test etmesi gereken geli\u015ftiriciler i\u00e7in kesinlikle \u00f6nerilen y\u00f6ntemdir.<\/p>\n<h3>Y\u00f6ntem 4: Kaynaktan Derleyerek Kurulum (\u0130leri D\u00fczey Kullan\u0131c\u0131lar \u0130\u00e7in)<\/h3>\n<p>Node.js&#8217;i kaynaktan derleyerek kurmak, en esnek ancak ayn\u0131 zamanda en karma\u015f\u0131k y\u00f6ntemdir. \u00c7o\u011fu kullan\u0131c\u0131 i\u00e7in gereksizdir, ancak belirli optimizasyonlar yapman\u0131z, en son geli\u015ftirme \u00f6zelliklerini test etmeniz veya \u00e7ok \u00f6zel bir ortamda kurulum yapman\u0131z gerekti\u011finde tercih edilebilir. Bu y\u00f6ntem, ba\u011f\u0131ml\u0131l\u0131klar\u0131 manuel olarak y\u00f6netmenizi ve Node.js&#8217;i derleme s\u00fcrecini anlaman\u0131z\u0131 gerektirir.<\/p>\n<h4>\u00d6nko\u015fullar\u0131n Kurulumu<\/h4>\n<p>Derleme i\u00e7in gerekli olan temel geli\u015ftirme ara\u00e7lar\u0131n\u0131 ve k\u00fct\u00fcphaneleri kurmal\u0131s\u0131n\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install build-essential libssl-dev python3 -y<\/code><\/pre>\n<p>*   <code>build-essential<\/code>: Derleme i\u00e7in gerekli olan GCC, G++ gibi ara\u00e7lar\u0131 i\u00e7erir.<br \/>\n*   <code>libssl-dev<\/code>: OpenSSL geli\u015ftirme k\u00fct\u00fcphaneleri.<br \/>\n*   <code>python3<\/code>: Node.js&#8217;in baz\u0131 derleme betikleri Python kullan\u0131r.<\/p>\n<h4>Node.js Kaynak Kodunu \u0130ndirme<\/h4>\n<p>Node.js&#8217;in resmi web sitesinden (nodejs.org) istedi\u011finiz s\u00fcr\u00fcm\u00fcn kaynak kodunu indirebilirsiniz. Genellikle bir <code>.tar.gz<\/code> ar\u015fivi olarak sunulur.<\/p>\n<p>\u00d6rne\u011fin, en son LTS s\u00fcr\u00fcm\u00fcn\u00fc indirmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">cd \/tmp\nwget https:\/\/nodejs.org\/dist\/v20.1.0\/node-v20.1.0.tar.gz<\/code><\/pre>\n<p><strong>Not:<\/strong> <code>v20.1.0<\/code> yerine istedi\u011finiz Node.js s\u00fcr\u00fcm\u00fcn\u00fc yazmal\u0131s\u0131n\u0131z. En g\u00fcncel s\u00fcr\u00fcm\u00fc \u00f6\u011frenmek i\u00e7in nodejs.org\/en\/download\/ sayfas\u0131n\u0131 ziyaret edebilirsiniz.<\/p>\n<h4>Kaynak Kodunu Ay\u0131klama ve Derleme<\/h4>\n<p>\u0130ndirilen ar\u015fivi ay\u0131klay\u0131n ve dizine girin:<\/p>\n<pre><code class=\"language-bash\">tar -xzf node-v20.1.0.tar.gz\ncd node-v20.1.0<\/code><\/pre>\n<p>\u015eimdi derleme ve kurulum ad\u0131mlar\u0131na ge\u00e7ebiliriz:<\/p>\n<pre><code class=\"language-bash\">.\/configure\nmake -j$(nproc)\nsudo make install<\/code><\/pre>\n<p>*   <code>.\/configure<\/code>: Derleme ortam\u0131n\u0131z\u0131 kontrol eder ve derleme betiklerini olu\u015fturur.<br \/>\n*   <code>make -j$(nproc)<\/code>: Node.js&#8217;i derler. <code>-j$(nproc)<\/code> bayra\u011f\u0131, CPU&#8217;nuzdaki \u00e7ekirdek say\u0131s\u0131 kadar paralel derleme i\u015fi ba\u015flatarak derleme s\u00fcresini h\u0131zland\u0131r\u0131r.<br \/>\n*   <code>sudo make install<\/code>: Derlenen Node.js ikili dosyalar\u0131n\u0131 sisteminizin <code>\/usr\/local\/bin<\/code> gibi standart yollar\u0131na kurar.<\/p>\n<p>Bu i\u015flem, sisteminizin donan\u0131m\u0131na ve Node.js s\u00fcr\u00fcm\u00fcne ba\u011fl\u0131 olarak biraz zaman alabilir.<\/p>\n<h4>Kurulumu Do\u011frulama<\/h4>\n<p>Kurulum tamamland\u0131ktan sonra, Node.js ve npm&#8217;in do\u011fru bir \u015fekilde y\u00fcklendi\u011fini do\u011frulamak i\u00e7in s\u00fcr\u00fcm numaralar\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">node -v\nnpm -v<\/code><\/pre>\n<h4>Avantajlar\u0131 ve Dezavantajlar\u0131<\/h4>\n<p>*   <strong>Avantajlar\u0131:<\/strong><br \/>\n    *   Node.js&#8217;i en son geli\u015ftirme \u00f6zellikleriyle veya belirli optimizasyonlarla kurma esnekli\u011fi.<br \/>\n    *   Sisteminize tam kontrol sa\u011flar.<br \/>\n*   <strong>Dezavantajlar\u0131:<\/strong><br \/>\n    *   En karma\u015f\u0131k kurulum y\u00f6ntemidir.<br \/>\n    *   Ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve derleme s\u00fcrecini manuel olarak y\u00f6netmeniz gerekir.<br \/>\n    *   G\u00fcncellemeler de manuel olarak derleme gerektirir, bu da bak\u0131m\u0131n\u0131 zorla\u015ft\u0131r\u0131r.<br \/>\n    *   \u00c7o\u011fu kullan\u0131c\u0131 i\u00e7in gereksizdir.<\/p>\n<p>Bu y\u00f6ntem, genellikle \u00e7ok \u00f6zel durumlar veya Node.js&#8217;in i\u00e7 i\u015fleyi\u015fini anlamak isteyenler i\u00e7in uygundur. \u00c7o\u011fu geli\u015ftirici ve sunucu y\u00f6neticisi i\u00e7in NodeSource PPA veya NVM y\u00f6ntemleri daha pratik ve \u00f6nerilendir.<\/p>\n<h3>Kurulum Sonras\u0131 Ad\u0131mlar ve En \u0130yi Uygulamalar<\/h3>\n<p>Node.js&#8217;i kurduktan sonra, geli\u015ftirme ve \u00fcretim ortamlar\u0131nda daha verimli ve g\u00fcvenli bir \u015fekilde kullanmak i\u00e7in baz\u0131 ek ad\u0131mlar ve en iyi uygulamalar vard\u0131r.<\/p>\n<h4>1. Kurulumu Tekrar Do\u011frulama ve Basit Bir Uygulama \u00c7al\u0131\u015ft\u0131rma<\/h4>\n<p>Node.js ve npm&#8217;in do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in basit bir JavaScript dosyas\u0131 olu\u015ftural\u0131m.<\/p>\n<p>Bir <code>app.js<\/code> dosyas\u0131 olu\u015fturun:<\/p>\n<pre><code class=\"language-javascript\">\/\/ app.js\nconst http = require('http');\n\nconst hostname = '127.0.0.1';\nconst port = 3000;\n\nconst server = http.createServer((req, res) => {\n  res.statusCode = 200;\n  res.setHeader('Content-Type', 'text\/plain');\n  res.end('Merhaba Dunya Node.js!\\n');\n});\n\nserver.listen(port, hostname, () => {\n  console.log(<code>Sunucu http:\/\/${hostname}:${port}\/ adresinde calisiyor.<\/code>);\n});<\/code><\/pre>\n<p>Bu dosyay\u0131 kaydedin ve terminalde a\u015fa\u011f\u0131daki komutla \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">node app.js<\/code><\/pre>\n<p>Taray\u0131c\u0131n\u0131zda <code>http:\/\/127.0.0.1:3000<\/code> adresine giderek &#8220;Merhaba Dunya Node.js!&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz. Bu, Node.js&#8217;in ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h4>2. npm Paketlerini Y\u00f6netme<\/h4>\n<p>npm, Node.js ekosisteminin kalbidir. Paketleri nas\u0131l y\u00f6netece\u011finizi bilmek \u00f6nemlidir.<\/p>\n<p>*   <strong>Yerel Paket Kurulumu:<\/strong> Projenizin k\u00f6k dizininde bir paket kurmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">npm install <paket-adi><\/code><\/pre>\n<p>    Bu, paketi <code>node_modules<\/code> klas\u00f6r\u00fcne kurar ve <code>package.json<\/code> dosyan\u0131za ba\u011f\u0131ml\u0131l\u0131k olarak ekler.<\/p>\n<p>*   <strong>Genel Paket Kurulumu:<\/strong> Komut sat\u0131r\u0131ndan eri\u015filebilen ara\u00e7lar\u0131 (\u00f6rne\u011fin, <code>nodemon<\/code>, <code>pm2<\/code>, <code>create-react-app<\/code>) kurmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">npm install -g <paket-adi><\/code><\/pre>\n<p>    <strong>Not:<\/strong> NVM kullan\u0131yorsan\u0131z, <code>sudo<\/code> kullanmadan genel paketler kurabilirsiniz. Di\u011fer y\u00f6ntemlerde <code>sudo<\/code> gerekebilir, ancak bu genellikle \u00f6nerilmez. npm&#8217;in izin sorunlar\u0131n\u0131 \u00e7\u00f6zmek i\u00e7in <code>npm config set prefix '~\/.npm-global'<\/code> gibi bir \u00e7\u00f6z\u00fcm uygulanabilir.<\/p>\n<p>*   <strong>Paket G\u00fcncelleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">npm update <paket-adi> # Yerel paketi g\u00fcncelle\n    npm update -g <paket-adi> # Genel paketi g\u00fcncelle<\/code><\/pre>\n<p>*   <strong>Paket Kald\u0131rma:<\/strong><\/p>\n<pre><code class=\"language-bash\">npm uninstall <paket-adi> # Yerel paketi kald\u0131r\n    npm uninstall -g <paket-adi> # Genel paketi kald\u0131r<\/code><\/pre>\n<p>*   <strong>package.json Olu\u015fturma:<\/strong> Yeni bir Node.js projesi ba\u015flat\u0131rken <code>package.json<\/code> dosyas\u0131n\u0131 olu\u015fturmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">npm init<\/code><\/pre>\n<p>    Bu dosya, projenizin meta verilerini ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 i\u00e7erir.<\/p>\n<h4>3. G\u00fcvenlik Konular\u0131<\/h4>\n<p>*   <strong>Node.js Uygulamalar\u0131n\u0131 Root Olmayan Kullan\u0131c\u0131 Olarak \u00c7al\u0131\u015ft\u0131rma:<\/strong> \u00dcretim ortam\u0131nda Node.js uygulamalar\u0131n\u0131 asla <code>root<\/code> kullan\u0131c\u0131s\u0131 olarak \u00e7al\u0131\u015ft\u0131rmay\u0131n. \u00d6zel bir sistem kullan\u0131c\u0131s\u0131 olu\u015fturun ve uygulaman\u0131z\u0131 bu kullan\u0131c\u0131 alt\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131n. Bu, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n sistem genelinde yetkilendirme almas\u0131n\u0131 engeller.<br \/>\n*   <strong>Node.js ve npm&#8217;i G\u00fcncel Tutma:<\/strong> G\u00fcvenlik a\u00e7\u0131klar\u0131 ve performans iyile\u015ftirmeleri i\u00e7in Node.js ve npm&#8217;i d\u00fczenli olarak g\u00fcncelleyin. NVM kullan\u0131yorsan\u0131z, yeni bir s\u00fcr\u00fcm y\u00fckleyip kullanmak kolayd\u0131r. <code>apt<\/code> kullan\u0131yorsan\u0131z, <code>sudo apt update && sudo apt upgrade<\/code> komutlar\u0131n\u0131 d\u00fczenli olarak \u00e7al\u0131\u015ft\u0131r\u0131n.<br \/>\n*   <strong>npm Paketlerini Denetleme:<\/strong> <code>npm audit<\/code> komutunu kullanarak projenizin ba\u011f\u0131ml\u0131l\u0131klar\u0131ndaki bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kontrol edin.<\/p>\n<pre><code class=\"language-bash\">npm audit\n    npm audit fix # Otomatik d\u00fczeltilebilen a\u00e7\u0131klar\u0131 d\u00fczeltir<\/code><\/pre>\n<h4>4. G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW)<\/h4>\n<p>E\u011fer sunucunuzda bir g\u00fcvenlik duvar\u0131 (\u00f6rne\u011fin UFW &#8211; Uncomplicated Firewall) \u00e7al\u0131\u015f\u0131yorsa, Node.js uygulaman\u0131z\u0131n dinledi\u011fi portlara (genellikle 3000, 80, 443) gelen ba\u011flant\u0131lara izin vermeniz gerekir.<\/p>\n<p>*   <strong>UFW&#8217;yi Etkinle\u015ftirme (e\u011fer etkin de\u011filse):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw enable<\/code><\/pre>\n<p>*   <strong>Node.js Uygulama Portuna \u0130zin Verme (\u00f6rne\u011fin 3000):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 3000\/tcp<\/code><\/pre>\n<p>*   <strong>HTTP (80) ve HTTPS (443) Portlar\u0131na \u0130zin Verme (e\u011fer web sunucusu olarak kullan\u0131l\u0131yorsa):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 80\/tcp\n    sudo ufw allow 443\/tcp<\/code><\/pre>\n<p>*   <strong>G\u00fcvenlik Duvar\u0131 Durumunu Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<h4>5. S\u00fcre\u00e7 Y\u00f6netimi (PM2 veya systemd)<\/h4>\n<p>\u00dcretim ortam\u0131nda Node.js uygulamalar\u0131 genellikle bir s\u00fcre\u00e7 y\u00f6neticisi alt\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Bu, uygulaman\u0131n \u00e7\u00f6kmesi durumunda otomatik olarak yeniden ba\u015flat\u0131lmas\u0131n\u0131, kaynak kullan\u0131m\u0131n\u0131 izlemesini ve g\u00fcnl\u00fckleri y\u00f6netmesini sa\u011flar.<\/p>\n<p>*   <strong>PM2 (Process Manager 2) Kullan\u0131m\u0131:<\/strong> PM2, Node.js uygulamalar\u0131 i\u00e7in pop\u00fcler bir s\u00fcre\u00e7 y\u00f6neticisidir.<\/p>\n<pre><code class=\"language-bash\"># PM2'yi genel olarak kurun\n    npm install -g pm2\n\n    # Uygulaman\u0131z\u0131 PM2 ile ba\u015flat\u0131n\n    pm2 start app.js\n\n    # \u00c7al\u0131\u015fan s\u00fcre\u00e7leri listele\n    pm2 list\n\n    # Uygulaman\u0131z\u0131n durumunu izle\n    pm2 monit\n\n    # PM2'yi sistem ba\u015flang\u0131c\u0131nda otomatik ba\u015flatacak \u015fekilde ayarla\n    pm2 startup systemd\n    pm2 save\n\n    # PM2'yi durdurma ve silme\n    pm2 stop app\n    pm2 delete app<\/code><\/pre>\n<p>*   <strong>systemd Kullan\u0131m\u0131 (Daha Geli\u015fmi\u015f):<\/strong> Ubuntu&#8217;da systemd, sistem hizmetlerini y\u00f6netmek i\u00e7in kullan\u0131l\u0131r. Node.js uygulaman\u0131z\u0131 bir systemd hizmeti olarak yap\u0131land\u0131rarak daha sa\u011flam bir \u00fcretim ortam\u0131 olu\u015fturabilirsiniz. Bu, genellikle bir <code>.service<\/code> dosyas\u0131 olu\u015fturmay\u0131 ve uygulaman\u0131z\u0131n ba\u015flang\u0131\u00e7, durdurma ve yeniden ba\u015flatma davran\u0131\u015f\u0131n\u0131 tan\u0131mlamay\u0131 i\u00e7erir.<\/p>\n<pre><code class=\"language-bash\"># \u00d6rnek bir systemd hizmet dosyas\u0131 (\/etc\/systemd\/system\/myapp.service)\n    [Unit]\n    Description=My Node.js App\n    After=network.target\n\n    [Service]\n    User=your_user # Uygulamay\u0131 \u00e7al\u0131\u015ft\u0131racak kullan\u0131c\u0131\n    WorkingDirectory=\/path\/to\/your\/app # Uygulaman\u0131z\u0131n dizini\n    ExecStart=\/usr\/bin\/node \/path\/to\/your\/app\/app.js # Node.js uygulaman\u0131z\u0131n yolu\n    Restart=always\n\n    [Install]\n    WantedBy=multi-user.target<\/code><\/pre>\n<p>    Hizmet dosyas\u0131n\u0131 olu\u015fturduktan sonra:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload\n    sudo systemctl start myapp\n    sudo systemctl enable myapp # Sistem ba\u015flang\u0131c\u0131nda otomatik ba\u015flat\n    sudo systemctl status myapp<\/code><\/pre>\n<p>Bu ad\u0131mlar, Node.js uygulaman\u0131z\u0131n g\u00fcvenli, kararl\u0131 ve verimli bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flaman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Node.js kurulumu veya kullan\u0131m\u0131 s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve bunlar\u0131n \u00e7\u00f6z\u00fcmleri a\u015fa\u011f\u0131da listelenmi\u015ftir:<\/p>\n<h4>1. <code>node: command not found<\/code> veya <code>npm: command not found<\/code><\/h4>\n<p>*   <strong>Neden:<\/strong> Node.js veya npm, sisteminizin PATH ortam de\u011fi\u015fkeninde bulunmuyor. Bu genellikle yanl\u0131\u015f kurulum veya PATH&#8217;in g\u00fcncellenmemesi nedeniyle olur.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <strong><code>apt<\/code> ile kurduysan\u0131z:<\/strong> <code>sudo ln -s \/usr\/bin\/nodejs \/usr\/bin\/node<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak <code>nodejs<\/code> komutunu <code>node<\/code> olarak ba\u011flay\u0131n.<br \/>\n    *   <strong>NVM ile kurduysan\u0131z:<\/strong> NVM kurulum beti\u011finin <code>.bashrc<\/code> veya <code>.zshrc<\/code> dosyan\u0131za do\u011fru \u015fekilde eklendi\u011finden emin olun ve terminali yeniden ba\u015flat\u0131n veya <code>source ~\/.bashrc<\/code> (veya kulland\u0131\u011f\u0131n\u0131z kabu\u011fa g\u00f6re) komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. Ayr\u0131ca, <code>nvm use <version><\/code> ile bir Node.js s\u00fcr\u00fcm\u00fcn\u00fcn aktif oldu\u011fundan emin olun.<br \/>\n    *   <strong>Kaynaktan kurduysan\u0131z:<\/strong> <code>sudo make install<\/code> ad\u0131m\u0131n\u0131n ba\u015far\u0131l\u0131 oldu\u011fundan ve <code>\/usr\/local\/bin<\/code> dizininin PATH&#8217;inizde oldu\u011fundan emin olun.<\/p>\n<h4>2. <code>EACCES: permission denied<\/code> Hatalar\u0131 (npm install -g s\u0131ras\u0131nda)<\/h4>\n<p>*   <strong>Neden:<\/strong> npm, genel paketleri kurmaya \u00e7al\u0131\u015f\u0131rken <code>\/usr\/local<\/code> gibi sistem dizinlerine yazma iznine sahip de\u011fil.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <strong>En \u0130yi \u00c7\u00f6z\u00fcm (NVM kullan\u0131n):<\/strong> NVM, Node.js ve npm&#8217;i kullan\u0131c\u0131n\u0131n ana dizinine kurdu\u011fu i\u00e7in bu t\u00fcr izin sorunlar\u0131n\u0131 otomatik olarak \u00e7\u00f6zer. NVM kullan\u0131yorsan\u0131z, <code>sudo<\/code> kullanmadan <code>npm install -g<\/code> komutunu \u00e7al\u0131\u015ft\u0131rabilirsiniz.<br \/>\n    *   <strong>npm&#8217;in Varsay\u0131lan Dizinini De\u011fi\u015ftirme:<\/strong> E\u011fer NVM kullanmak istemiyorsan\u0131z, npm&#8217;in genel paketleri kuraca\u011f\u0131 varsay\u0131lan dizini kullan\u0131c\u0131 ana dizininizdeki bir konuma de\u011fi\u015ftirebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">mkdir ~\/.npm-global\n        npm config set prefix '~\/.npm-global'\n        echo 'export PATH=\"~\/.npm-global\/bin:$PATH\"' >> ~\/.profile\n        source ~\/.profile<\/code><\/pre>\n<p>        Bu, npm&#8217;in genel paketleri <code>\/usr\/local<\/code> yerine <code>~\/.npm-global<\/code> dizinine kurmas\u0131n\u0131 sa\u011flar.<br \/>\n    *   <strong>Ge\u00e7ici \u00c7\u00f6z\u00fcm (\u00d6nerilmez):<\/strong> <code>sudo npm install -g <paket-adi><\/code> komutunu kullanmak, paketleri root yetkileriyle kurar. Bu, izin sorununu \u00e7\u00f6zer ancak g\u00fcvenlik riski ta\u015f\u0131r ve genellikle k\u00f6t\u00fc bir uygulamad\u0131r.<\/p>\n<h4>3. Node.js Uygulamas\u0131 Ba\u015flam\u0131yor veya Hata Veriyor<\/h4>\n<p>*   <strong>Neden:<\/strong> Uygulama kodunda hata, ba\u011f\u0131ml\u0131l\u0131k eksikli\u011fi, port \u00e7ak\u0131\u015fmas\u0131 veya yanl\u0131\u015f Node.js s\u00fcr\u00fcm\u00fc kullan\u0131lmas\u0131.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <strong>Hata Mesajlar\u0131n\u0131 Kontrol Edin:<\/strong> Terminalde \u00e7\u0131kan hata mesajlar\u0131n\u0131 dikkatlice okuyun. Genellikle sorunun kayna\u011f\u0131n\u0131 belirtirler.<br \/>\n    *   <strong>Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Kontrol Edin:<\/strong> Projenizin <code>package.json<\/code> dosyas\u0131ndaki t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n <code>npm install<\/code> ile y\u00fcklendi\u011finden emin olun.<br \/>\n    *   <strong>Port \u00c7ak\u0131\u015fmas\u0131:<\/strong> Uygulaman\u0131z\u0131n dinlemeye \u00e7al\u0131\u015ft\u0131\u011f\u0131 portun ba\u015fka bir s\u00fcre\u00e7 taraf\u0131ndan kullan\u0131l\u0131p kullan\u0131lmad\u0131\u011f\u0131n\u0131 kontrol edin. <code>sudo lsof -i :<port_numaras\u0131><\/code> komutuyla kontrol edebilirsiniz.<br \/>\n    *   <strong>Node.js S\u00fcr\u00fcm\u00fc:<\/strong> Uygulaman\u0131z\u0131n gerektirdi\u011fi Node.js s\u00fcr\u00fcm\u00fcn\u00fc kulland\u0131\u011f\u0131n\u0131zdan emin olun. NVM kullan\u0131yorsan\u0131z <code>nvm use <version><\/code> ile do\u011fru s\u00fcr\u00fcm\u00fc se\u00e7in.<\/p>\n<h4>4. Yerel Mod\u00fcllerle \u0130lgili Sorunlar (<code>node-gyp<\/code> Hatalar\u0131)<\/h4>\n<p>*   <strong>Neden:<\/strong> Baz\u0131 npm paketleri (\u00f6rne\u011fin, <code>sqlite3<\/code>, <code>bcrypt<\/code>), Node.js ile birlikte derlenmesi gereken C\/C++ kodlar\u0131 i\u00e7erir. Bu derleme i\u015flemi i\u00e7in gerekli geli\u015ftirme ara\u00e7lar\u0131 eksik olabilir.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>build-essential<\/code> paketini kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt install build-essential -y<\/code><\/pre>\n<p>    Bu paket, GCC, G++ ve make gibi derleme i\u00e7in gerekli temel ara\u00e7lar\u0131 sa\u011flar.<\/p>\n<h4>5. Performans Sorunlar\u0131 veya Bellek S\u0131z\u0131nt\u0131lar\u0131<\/h4>\n<p>*   <strong>Neden:<\/strong> Uygulaman\u0131zda verimsiz kod, bellek s\u0131z\u0131nt\u0131lar\u0131 veya yetersiz sunucu kaynaklar\u0131.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong><br \/>\n    *   <strong>Kaynaklar\u0131 \u0130zleyin:<\/strong> <code>top<\/code>, <code>htop<\/code> veya <code>pm2 monit<\/code> gibi ara\u00e7larla CPU ve bellek kullan\u0131m\u0131n\u0131 izleyin.<br \/>\n    *   <strong>Profil Olu\u015fturma:<\/strong> Node.js&#8217;in dahili profilleme ara\u00e7lar\u0131n\u0131 veya Chrome DevTools&#8217;u kullanarak uygulaman\u0131zdaki performans darbo\u011fazlar\u0131n\u0131 bulun.<br \/>\n    *   <strong>Bellek S\u0131z\u0131nt\u0131lar\u0131n\u0131 Tespit Edin:<\/strong> <code>heapdump<\/code> veya <code>memwatch-next<\/code> gibi npm paketleri bellek s\u0131z\u0131nt\u0131lar\u0131n\u0131 tespit etmenize yard\u0131mc\u0131 olabilir.<br \/>\n    *   <strong>\u00d6l\u00e7eklendirme:<\/strong> E\u011fer tek bir Node.js s\u00fcreci yetersiz kal\u0131yorsa, PM2&#8217;nin k\u00fcme modunu (cluster mode) kullanarak uygulaman\u0131z\u0131 birden fazla CPU \u00e7ekirde\u011finde \u00e7al\u0131\u015ft\u0131r\u0131n veya y\u00fck dengeleme ile birden fazla sunucuya da\u011f\u0131t\u0131n.<\/p>\n<p>Bu sorun giderme ipu\u00e7lar\u0131, Node.js ile \u00e7al\u0131\u015f\u0131rken kar\u015f\u0131la\u015fabilece\u011finiz yayg\u0131n engelleri a\u015fman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, Node.js&#8217;i Ubuntu i\u015fletim sistemine kurman\u0131n farkl\u0131 y\u00f6ntemlerini ve her birinin avantajlar\u0131n\u0131, dezavantajlar\u0131n\u0131 detayl\u0131 bir \u015fekilde inceledik. \u0130ster h\u0131zl\u0131 ve basit bir kurulum i\u00e7in <code>apt<\/code> paket y\u00f6neticisini kullan\u0131n, ister en g\u00fcncel s\u00fcr\u00fcmler i\u00e7in NodeSource PPA&#8217;y\u0131 tercih edin, isterse de birden fazla Node.js s\u00fcr\u00fcm\u00fcn\u00fc y\u00f6netmek i\u00e7in NVM&#8217;in esnekli\u011finden yararlan\u0131n, ihtiya\u00e7lar\u0131n\u0131za uygun bir \u00e7\u00f6z\u00fcm bulabilirsiniz. Kaynaktan derleme y\u00f6ntemi ise daha ileri d\u00fczey kullan\u0131c\u0131lar ve \u00f6zel gereksinimler i\u00e7in bir se\u00e7enek olarak sunulmu\u015ftur.<\/p>\n<p>Kurulum sonras\u0131 ad\u0131mlarda, Node.js ve npm&#8217;in do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in basit bir uygulama \u00e7al\u0131\u015ft\u0131rmay\u0131, npm paketlerini etkili bir \u015fekilde y\u00f6netmeyi, g\u00fcvenlik en iyi uygulamalar\u0131n\u0131 uygulamay\u0131 (root olmayan kullan\u0131c\u0131, g\u00fcncel tutma, g\u00fcvenlik duvar\u0131), ve \u00fcretim ortamlar\u0131nda uygulamalar\u0131n\u0131z\u0131 kararl\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131rmak i\u00e7in s\u00fcre\u00e7 y\u00f6neticilerini (PM2, systemd) kullanmay\u0131 \u00f6\u011frendik. Ayr\u0131ca, s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlar\u0131 ve bunlar\u0131n \u00e7\u00f6z\u00fcmlerini de ele alarak olas\u0131 engelleri a\u015fman\u0131za yard\u0131mc\u0131 olmay\u0131 ama\u00e7lad\u0131k.<\/p>\n<p>Node.js, modern web uygulamalar\u0131 geli\u015ftirmek i\u00e7in g\u00fc\u00e7l\u00fc ve \u00e7ok y\u00f6nl\u00fc bir platform sunar. Bu rehberdeki bilgileri kullanarak, Ubuntu sisteminizde Node.js geli\u015ftirme ortam\u0131n\u0131z\u0131 ba\u015far\u0131yla kurabilir ve projelerinizi hayata ge\u00e7irmeye ba\u015flayabilirsiniz. Unutmay\u0131n, Node.js ekosistemi s\u00fcrekli geli\u015fmektedir, bu nedenle en son s\u00fcr\u00fcmleri takip etmek ve g\u00fcvenlik g\u00fcncellemelerini d\u00fczenli olarak uygulamak \u00f6nemlidir. \u015eimdi Node.js ile harika \u015feyler in\u015fa etmeye haz\u0131rs\u0131n\u0131z!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu&#8217;ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber)\nNode.js, modern web uygulamalar\u0131 geli\u015ftirmek i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ft","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-33985","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ubuntu&#039;ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu&#039;ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber)\" \/>\n<meta property=\"og:description\" content=\"Ubuntu&#039;ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber) Node.js, modern web uygulamalar\u0131 geli\u015ftirmek i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ft\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-09T13:40:55+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu&#8217;ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber)\",\"datePublished\":\"2025-11-09T13:40:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/\"},\"wordCount\":4055,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/\",\"name\":\"Ubuntu'ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-09T13:40:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu&#8217;ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ubuntu'ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu'ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber)","og_description":"Ubuntu'ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber) Node.js, modern web uygulamalar\u0131 geli\u015ftirmek i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline gelmi\u015ft","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-09T13:40:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu&#8217;ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber)","datePublished":"2025-11-09T13:40:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/"},"wordCount":4055,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/","name":"Ubuntu'ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-09T13:40:55+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntuya-node-js-kurulumu-adim-adim-kapsamli-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu&#8217;ya Node.js Kurulumu (Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber)"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33985"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33985\/revisions"}],"predecessor-version":[{"id":33986,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33985\/revisions\/33986"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}