{"id":37819,"date":"2026-01-16T10:40:48","date_gmt":"2026-01-16T07:40:48","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37819"},"modified":"2026-01-16T10:40:48","modified_gmt":"2026-01-16T07:40:48","slug":"rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/","title":{"rendered":"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>Ruby on Rails veya di\u011fer Ruby tabanl\u0131 uygulamalar geli\u015ftiren ve da\u011f\u0131tan her geli\u015ftirici, farkl\u0131 projelerin farkl\u0131 Ruby s\u00fcr\u00fcmleri ve ba\u011f\u0131ml\u0131l\u0131k setleri gerektirdi\u011fi karma\u015f\u0131k bir ortamla kar\u015f\u0131la\u015fabilir. Bu durum, \u00f6zellikle bir Sanal \u00d6zel Sunucu (VPS) \u00fczerinde birden fazla uygulamay\u0131 bar\u0131nd\u0131r\u0131rken y\u00f6netilmesi zor bir &#8220;ba\u011f\u0131ml\u0131l\u0131k cehennemine&#8221; d\u00f6n\u00fc\u015febilir. \u0130\u015fte tam bu noktada RVM (Ruby Version Manager) devreye girer. RVM, Ruby s\u00fcr\u00fcmlerini ve gemset&#8217;leri kolayca kurman\u0131za, y\u00f6netmenize ve aralar\u0131nda ge\u00e7i\u015f yapman\u0131za olanak tan\u0131yan g\u00fc\u00e7l\u00fc bir komut sat\u0131r\u0131 arac\u0131d\u0131r. Bu kapsaml\u0131 rehberde, bir VPS \u00fczerinde RVM&#8217;yi nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, Ruby s\u00fcr\u00fcmlerini ve gemset&#8217;leri nas\u0131l y\u00f6netece\u011finizi ve Ruby uygulamalar\u0131n\u0131z\u0131 nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.<\/p>\n<h2>\u00d6n Ko\u015fullar<\/h2>\n<p>RVM kurulumuna ba\u015flamadan \u00f6nce, VPS&#8217;nizin belirli gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131ndan emin olman\u0131z \u00f6nemlidir.<br \/>\n\u00d6ncelikle, bir VPS&#8217;e SSH eri\u015fiminizin olmas\u0131 ve temel Linux komut sat\u0131r\u0131 bilgisine sahip olman\u0131z gerekmektedir. Sunucunuzda <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip bir kullan\u0131c\u0131 olarak oturum a\u00e7m\u0131\u015f olmal\u0131s\u0131n\u0131z. Kurulum s\u0131ras\u0131nda \u00e7e\u015fitli paketler derlenece\u011fi i\u00e7in, sisteminizin g\u00fcncel olmas\u0131 ve gerekli derleme ara\u00e7lar\u0131n\u0131n y\u00fckl\u00fc olmas\u0131 \u015fartt\u0131r. Bu ad\u0131mlar\u0131 tamamlamak i\u00e7in genellikle <code>apt<\/code> (Debian\/Ubuntu tabanl\u0131 sistemler i\u00e7in) veya <code>yum<\/code>\/<code>dnf<\/code> (CentOS\/Fedora tabanl\u0131 sistemler i\u00e7in) gibi paket y\u00f6neticilerini kullan\u0131r\u0131z.<\/p>\n<h2>RVM Kurulumu<\/h2>\n<p>RVM&#8217;yi VPS&#8217;inize kurmak, birka\u00e7 basit ad\u0131mdan olu\u015fur. Bu ad\u0131mlar, RVM&#8217;nin d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fcklemeyi ve RVM&#8217;nin kendisini kurmay\u0131 i\u00e7erir.<\/p>\n<h3>GPG Anahtar\u0131n\u0131 Ekleme<\/h3>\n<p>RVM kurulum beti\u011fini indirmeden \u00f6nce, RVM&#8217;nin geli\u015ftiricileri taraf\u0131ndan sa\u011flanan GPG anahtar\u0131n\u0131 sisteminize eklemeniz \u00f6nerilir. Bu, indirdi\u011finiz beti\u011fin g\u00fcvenilir oldu\u011funu ve k\u00f6t\u00fc ama\u00e7l\u0131 yaz\u0131l\u0131m i\u00e7ermedi\u011fini do\u011frulaman\u0131z\u0131 sa\u011flar. GPG anahtar\u0131n\u0131 eklemek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">gpg --keyserver hkp:\/\/keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB<\/code><\/pre>\n<p>Bu komut, RVM projesiyle ili\u015fkili GPG anahtarlar\u0131n\u0131 g\u00fcvendi\u011finiz anahtar sunucusundan al\u0131r ve sisteminize ekler. Bu ad\u0131m, RVM kurulumunun g\u00fcvenli\u011fini art\u0131rmak i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>RVM&#8217;yi Kurma<\/h3>\n<p>GPG anahtar\u0131n\u0131 ekledikten sonra, RVM&#8217;yi kurmak i\u00e7in resmi kurulum beti\u011fini kullanabilirsiniz. Bu betik, RVM&#8217;nin en kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc indirir ve sisteminize y\u00fckler. Kurulum beti\u011fini \u00e7al\u0131\u015ft\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">\\curl -sSL https:\/\/get.rvm.io | bash -s stable<\/code><\/pre>\n<p>Bu komut, <code>curl<\/code> ile RVM kurulum beti\u011fini indirir ve do\u011frudan <code>bash<\/code> ile \u00e7al\u0131\u015ft\u0131r\u0131r. <code>\\curl<\/code> kullan\u0131lmas\u0131, sistemdeki herhangi bir <code>curl<\/code> takma ad\u0131n\u0131 (alias) atlayarak beti\u011fin do\u011fru \u015fekilde indirilmesini sa\u011flar. Kurulum tamamland\u0131ktan sonra, RVM&#8217;nin kabuk ortam\u0131n\u0131za do\u011fru \u015fekilde entegre edildi\u011finden emin olmak i\u00e7in kabuk yap\u0131land\u0131rma dosyan\u0131z\u0131 (\u00f6rne\u011fin <code>.bashrc<\/code> veya <code>.zshrc<\/code>) yeniden kaynaklaman\u0131z veya yeni bir terminal oturumu a\u00e7man\u0131z gerekebilir.<\/p>\n<pre><code class=\"language-bash\">source ~\/.rvm\/scripts\/rvm<\/code><\/pre>\n<p>Bu komut, RVM&#8217;nin kabuk fonksiyonlar\u0131n\u0131 ve ortam de\u011fi\u015fkenlerini mevcut oturumunuza y\u00fckler. Art\u0131k RVM komutlar\u0131n\u0131 kullanmaya haz\u0131rs\u0131n\u0131z.<\/p>\n<h3>RVM Kurulumunu Do\u011frulama<\/h3>\n<p>RVM kurulumunun ba\u015far\u0131l\u0131 oldu\u011funu do\u011frulamak i\u00e7in, RVM s\u00fcr\u00fcm\u00fcn\u00fc kontrol edebilir ve bilinen Ruby s\u00fcr\u00fcmlerini listeleyebilirsiniz. Bu, RVM&#8217;nin do\u011fru \u015fekilde y\u00fcklendi\u011fini ve \u00e7al\u0131\u015fmaya haz\u0131r oldu\u011funu g\u00f6sterir.<\/p>\n<pre><code class=\"language-bash\">rvm -v<\/code><\/pre>\n<p>Bu komut, y\u00fckl\u00fc RVM s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6r\u00fcnt\u00fcler. Ayr\u0131ca, RVM&#8217;nin \u015fu anda y\u00fckleyebilece\u011fi bilinen Ruby s\u00fcr\u00fcmlerini g\u00f6rmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">rvm list known<\/code><\/pre>\n<p>Bu komut, RVM&#8217;nin destekledi\u011fi t\u00fcm Ruby s\u00fcr\u00fcmlerini listeler ve size hangi s\u00fcr\u00fcmleri kurabilece\u011finiz konusunda bir fikir verir. Kurulumun bu a\u015famas\u0131 tamamland\u0131\u011f\u0131nda, Ruby s\u00fcr\u00fcmlerini y\u00f6netmeye haz\u0131rs\u0131n\u0131z demektir.<\/p>\n<h2>Ruby S\u00fcr\u00fcmlerini Y\u00f6netme<\/h2>\n<p>RVM&#8217;nin temel amac\u0131, farkl\u0131 Ruby s\u00fcr\u00fcmlerini kolayca kurmak ve bunlar aras\u0131nda ge\u00e7i\u015f yapmakt\u0131r. Bu b\u00f6l\u00fcm, Ruby s\u00fcr\u00fcmlerini nas\u0131l y\u00f6netece\u011finizi detayland\u0131r\u0131r.<\/p>\n<h3>Mevcut Ruby S\u00fcr\u00fcmlerini Listeleme<\/h3>\n<p>RVM, kullan\u0131c\u0131n\u0131n y\u00fckleyebilece\u011fi \u00e7ok say\u0131da Ruby s\u00fcr\u00fcm\u00fcn\u00fc destekler. Hangi Ruby s\u00fcr\u00fcmlerinin RVM taraf\u0131ndan bilindi\u011fini ve y\u00fcklenebilir oldu\u011funu g\u00f6rmek i\u00e7in <code>rvm list known<\/code> komutunu kullanabilirsiniz. Bu komut, kararl\u0131 s\u00fcr\u00fcmlerden geli\u015ftirme s\u00fcr\u00fcmlerine kadar geni\u015f bir yelpazeyi g\u00f6sterir.<\/p>\n<pre><code class=\"language-bash\">rvm list known<\/code><\/pre>\n<p>Bu liste, ihtiyac\u0131n\u0131z olan belirli bir Ruby s\u00fcr\u00fcm\u00fcn\u00fc se\u00e7menize yard\u0131mc\u0131 olur. Genellikle, <code>ruby-3.x.x<\/code> gibi kararl\u0131 s\u00fcr\u00fcmler tercih edilir.<\/p>\n<h3>Ruby S\u00fcr\u00fcm\u00fc Kurma<\/h3>\n<p>Belirli bir Ruby s\u00fcr\u00fcm\u00fcn\u00fc kurmak i\u00e7in <code>rvm install<\/code> komutunu kullan\u0131rs\u0131n\u0131z. RVM, se\u00e7ti\u011finiz Ruby s\u00fcr\u00fcm\u00fcn\u00fc indirir, derler ve sisteminize kurar. Bu i\u015flem, sunucunuzun i\u015flem g\u00fcc\u00fcne ve internet h\u0131z\u0131na ba\u011fl\u0131 olarak biraz zaman alabilir. \u00d6rne\u011fin, Ruby 3.1.4 s\u00fcr\u00fcm\u00fcn\u00fc kurmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">rvm install ruby-3.1.4<\/code><\/pre>\n<p>RVM, kurulum s\u0131ras\u0131nda gerekli olabilecek ek ba\u011f\u0131ml\u0131l\u0131klar\u0131 otomatik olarak y\u00fcklemenizi isteyebilir. Bu durumda, talimatlar\u0131 takip ederek bu ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fcklemelisiniz. Ba\u015far\u0131l\u0131 bir kurulumun ard\u0131ndan, Ruby&#8217;nin yeni s\u00fcr\u00fcm\u00fc kullan\u0131ma haz\u0131r olacakt\u0131r.<\/p>\n<h3>Varsay\u0131lan Ruby S\u00fcr\u00fcm\u00fcn\u00fc Ayarlama<\/h3>\n<p>Birden fazla Ruby s\u00fcr\u00fcm\u00fc y\u00fckledi\u011finizde, varsay\u0131lan olarak hangi s\u00fcr\u00fcm\u00fcn kullan\u0131laca\u011f\u0131n\u0131 belirlemeniz gerekebilir. Bu, her yeni kabuk oturumu a\u00e7t\u0131\u011f\u0131n\u0131zda otomatik olarak etkinle\u015ftirilecek Ruby s\u00fcr\u00fcm\u00fcd\u00fcr. Varsay\u0131lan Ruby s\u00fcr\u00fcm\u00fcn\u00fc ayarlamak i\u00e7in <code>rvm use --default<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">rvm use ruby-3.1.4 --default<\/code><\/pre>\n<p>Bu komut, <code>ruby-3.1.4<\/code> s\u00fcr\u00fcm\u00fcn\u00fc varsay\u0131lan olarak ayarlar. E\u011fer sadece mevcut oturumunuz i\u00e7in bir Ruby s\u00fcr\u00fcm\u00fcn\u00fc kullanmak isterseniz, <code>--default<\/code> bayra\u011f\u0131 olmadan <code>rvm use<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">rvm use ruby-2.7.6<\/code><\/pre>\n<p>Bu, mevcut kabuk oturumunuz i\u00e7in Ruby 2.7.6&#8217;y\u0131 etkinle\u015ftirir, ancak yeni bir oturum a\u00e7t\u0131\u011f\u0131n\u0131zda varsay\u0131lan Ruby s\u00fcr\u00fcm\u00fcne geri d\u00f6nersiniz.<\/p>\n<h3>Y\u00fckl\u00fc Ruby S\u00fcr\u00fcmlerini Listeleme<\/h3>\n<p>Sisteminizde RVM arac\u0131l\u0131\u011f\u0131yla y\u00fckl\u00fc olan t\u00fcm Ruby s\u00fcr\u00fcmlerini g\u00f6rmek i\u00e7in <code>rvm list<\/code> komutunu kullanabilirsiniz. Bu komut, hangi Ruby s\u00fcr\u00fcmlerinin etkin oldu\u011funu, hangi s\u00fcr\u00fcm\u00fcn varsay\u0131lan olarak ayarland\u0131\u011f\u0131n\u0131 ve di\u011fer y\u00fckl\u00fc s\u00fcr\u00fcmleri g\u00f6sterir.<\/p>\n<pre><code class=\"language-bash\">rvm list<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da, y\u0131ld\u0131z (*) ile i\u015faretlenmi\u015f s\u00fcr\u00fcm mevcut oturumunuzda etkin olan\u0131, <code>=><\/code> ile i\u015faretlenmi\u015f s\u00fcr\u00fcm ise varsay\u0131lan olarak ayarlanm\u0131\u015f olan\u0131 g\u00f6sterir. Bu liste, Ruby ortamlar\u0131n\u0131z\u0131 genel bir bak\u0131\u015fla y\u00f6netmenize yard\u0131mc\u0131 olur.<\/p>\n<h3>Ruby S\u00fcr\u00fcm\u00fcn\u00fc Kald\u0131rma<\/h3>\n<p>Art\u0131k kullanmad\u0131\u011f\u0131n\u0131z veya yanl\u0131\u015fl\u0131kla y\u00fckledi\u011finiz bir Ruby s\u00fcr\u00fcm\u00fcn\u00fc kald\u0131rmak isteyebilirsiniz. RVM, bu i\u015flemi de olduk\u00e7a basitle\u015ftirir. Bir Ruby s\u00fcr\u00fcm\u00fcn\u00fc kald\u0131rmak i\u00e7in <code>rvm uninstall<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">rvm uninstall ruby-2.6.10<\/code><\/pre>\n<p>Bu komut, belirtilen Ruby s\u00fcr\u00fcm\u00fcn\u00fc ve onunla ili\u015fkili t\u00fcm gemset&#8217;leri ve gem&#8217;leri sisteminizden kald\u0131r\u0131r. Kald\u0131rma i\u015fleminden \u00f6nce dikkatli olman\u0131z \u00f6nemlidir, \u00e7\u00fcnk\u00fc bu i\u015flem geri al\u0131namaz ve ilgili t\u00fcm verileri siler.<\/p>\n<h2>Gemset&#8217;leri Kullanma<\/h2>\n<p>RVM&#8217;nin Ruby s\u00fcr\u00fcmlerini y\u00f6netme yetene\u011fi kadar \u00f6nemli bir di\u011fer \u00f6zelli\u011fi de gemset&#8217;lerdir. Gemset&#8217;ler, her bir Ruby s\u00fcr\u00fcm\u00fc alt\u0131nda ba\u011f\u0131ms\u0131z gem koleksiyonlar\u0131 olu\u015fturman\u0131za olanak tan\u0131r. Bu, farkl\u0131 projelerin ayn\u0131 Ruby s\u00fcr\u00fcm\u00fcn\u00fc kullanmas\u0131na ra\u011fmen kendi ba\u011f\u0131ml\u0131l\u0131k setlerine sahip olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Gemset Nedir?<\/h3>\n<p>Gemset, belirli bir Ruby s\u00fcr\u00fcm\u00fc alt\u0131nda izole edilmi\u015f bir gem (Ruby k\u00fct\u00fcphanesi) koleksiyonudur. Her proje i\u00e7in ayr\u0131 bir gemset kullanmak, &#8220;ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmas\u0131&#8221; sorununu ortadan kald\u0131r\u0131r. \u00d6rne\u011fin, bir projenin Rails 6 ve di\u011fer bir projenin Rails 7 gerektirmesi durumunda, ayn\u0131 Ruby s\u00fcr\u00fcm\u00fcn\u00fc kullan\u0131yor olsalar bile, her bir projenin kendi gemset&#8217;inde ilgili Rails s\u00fcr\u00fcm\u00fcn\u00fc ve di\u011fer ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 izole edebilirsiniz. Bu, geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinde b\u00fcy\u00fck bir esneklik ve d\u00fczen sa\u011flar.<\/p>\n<h3>Gemset Olu\u015fturma<\/h3>\n<p>Yeni bir gemset olu\u015fturmak i\u00e7in \u00f6ncelikle kullanmak istedi\u011finiz Ruby s\u00fcr\u00fcm\u00fcn\u00fc etkinle\u015ftirmeniz gerekir. Ard\u0131ndan <code>rvm gemset create<\/code> komutunu kullanarak yeni bir gemset olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">rvm use ruby-3.1.4\nrvm gemset create my_project_gems<\/code><\/pre>\n<p>Bu komutlar, <code>ruby-3.1.4<\/code> s\u00fcr\u00fcm\u00fc alt\u0131nda <code>my_project_gems<\/code> ad\u0131nda yeni bir gemset olu\u015fturur. Art\u0131k bu gemset&#8217;e \u00f6zel gem&#8217;ler y\u00fckleyebilirsiniz.<\/p>\n<h3>Gemset&#8217;i Kullanma<\/h3>\n<p>Olu\u015fturdu\u011funuz bir gemset&#8217;i etkinle\u015ftirmek i\u00e7in, Ruby s\u00fcr\u00fcm\u00fcn\u00fc ve gemset ad\u0131n\u0131 birlikte belirtmeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">rvm use ruby-3.1.4@my_project_gems<\/code><\/pre>\n<p>Bu komut, mevcut kabuk oturumunuz i\u00e7in <code>ruby-3.1.4<\/code> s\u00fcr\u00fcm\u00fcn\u00fc ve <code>my_project_gems<\/code> gemset&#8217;ini etkinle\u015ftirir. Bu gemset etkin oldu\u011funda y\u00fckledi\u011finiz t\u00fcm gem&#8217;ler bu gemset i\u00e7inde depolan\u0131r ve di\u011fer gemset&#8217;leri veya Ruby s\u00fcr\u00fcmlerini etkilemez.<\/p>\n<h3>Varsay\u0131lan Gemset&#8217;i Ayarlama<\/h3>\n<p>T\u0131pk\u0131 Ruby s\u00fcr\u00fcmlerinde oldu\u011fu gibi, belirli bir Ruby s\u00fcr\u00fcm\u00fc i\u00e7in varsay\u0131lan bir gemset de ayarlayabilirsiniz. Bu, o Ruby s\u00fcr\u00fcm\u00fcn\u00fc her etkinle\u015ftirdi\u011finizde otomatik olarak belirli bir gemset&#8217;in de etkinle\u015ftirilmesini sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">rvm use ruby-3.1.4@my_project_gems --default<\/code><\/pre>\n<p>Bu komut, <code>ruby-3.1.4<\/code> s\u00fcr\u00fcm\u00fc her kullan\u0131ld\u0131\u011f\u0131nda <code>my_project_gems<\/code> gemset&#8217;inin varsay\u0131lan olarak etkinle\u015ftirilmesini sa\u011flar. Bu, proje bazl\u0131 ortamlar\u0131 otomatik olarak kurmak i\u00e7in olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h3>Gemset&#8217;leri Listeleme<\/h3>\n<p>Etkin Ruby s\u00fcr\u00fcm\u00fcn\u00fczle ili\u015fkili t\u00fcm gemset&#8217;leri listelemek i\u00e7in <code>rvm gemset list<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">rvm gemset list<\/code><\/pre>\n<p>Bu komut, o anki Ruby s\u00fcr\u00fcm\u00fc alt\u0131nda olu\u015fturulmu\u015f t\u00fcm gemset&#8217;leri ve mevcut oturumda etkin olan gemset&#8217;i g\u00f6sterir. Bu, hangi gemset&#8217;lerin mevcut oldu\u011funu ve hangisinin kullan\u0131ld\u0131\u011f\u0131n\u0131 takip etmenize yard\u0131mc\u0131 olur.<\/p>\n<h3>Gemset&#8217;i Silme<\/h3>\n<p>Bir gemset&#8217;i ve i\u00e7inde y\u00fckl\u00fc olan t\u00fcm gem&#8217;leri silmek i\u00e7in <code>rvm gemset delete<\/code> komutunu kullanabilirsiniz. Bu i\u015flem geri al\u0131namaz, bu y\u00fczden dikkatli olun:<\/p>\n<pre><code class=\"language-bash\">rvm gemset delete old_project_gems<\/code><\/pre>\n<p>Bu komut, <code>old_project_gems<\/code> ad\u0131ndaki gemset&#8217;i ve i\u00e7indeki t\u00fcm gem&#8217;leri kal\u0131c\u0131 olarak siler. Bu, art\u0131k ihtiyac\u0131n\u0131z olmayan proje ortamlar\u0131n\u0131 temizlemenize yard\u0131mc\u0131 olur.<\/p>\n<h3>Proje Bazl\u0131 Gemset Kullan\u0131m\u0131<\/h3>\n<p>RVM, proje dizinlerinde <code>.ruby-version<\/code> ve <code>.ruby-gemset<\/code> dosyalar\u0131 olu\u015fturarak ortam y\u00f6netimini otomatikle\u015ftirme yetene\u011fine sahiptir. Bu dosyalar, RVM&#8217;ye o dizine girdi\u011finizde hangi Ruby s\u00fcr\u00fcm\u00fcn\u00fc ve gemset&#8217;i kullanmas\u0131 gerekti\u011fini s\u00f6yler.<\/p>\n<p>\u00d6rne\u011fin, bir projenin k\u00f6k dizininde \u015fu dosyalar\u0131 olu\u015fturabilirsiniz:<br \/>\n<code>.ruby-version<\/code> dosyas\u0131:<\/p>\n<pre><code class=\"language-\">ruby-3.1.4<\/code><\/pre>\n<p><code>.ruby-gemset<\/code> dosyas\u0131:<\/p>\n<pre><code class=\"language-\">my_project_gems<\/code><\/pre>\n<p>Bu dosyalar\u0131 olu\u015fturduktan sonra, proje dizinine her girdi\u011finizde (\u00f6rne\u011fin <code>cd my_project_dir<\/code>), RVM otomatik olarak <code>ruby-3.1.4<\/code> s\u00fcr\u00fcm\u00fcn\u00fc ve <code>my_project_gems<\/code> gemset&#8217;ini etkinle\u015ftirecektir. Bu \u00f6zellik, geli\u015ftiricilerin farkl\u0131 projeler aras\u0131nda sorunsuz bir \u015fekilde ge\u00e7i\u015f yapmas\u0131n\u0131 sa\u011flar ve her projenin do\u011fru ortamda \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olur.<\/p>\n<h2>Ruby Uygulamalar\u0131n\u0131 RVM ile Da\u011f\u0131tma<\/h2>\n<p>RVM, Ruby uygulamalar\u0131n\u0131 VPS \u00fczerinde da\u011f\u0131t\u0131rken ortam\u0131 do\u011fru bir \u015fekilde kurman\u0131n anahtar\u0131d\u0131r. Bu b\u00f6l\u00fcm, RVM&#8217;yi kullanarak Ruby uygulamalar\u0131n\u0131z\u0131 nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 a\u00e7\u0131klar.<\/p>\n<h3>Proje Dizinini Haz\u0131rlama<\/h3>\n<p>Uygulaman\u0131z\u0131 da\u011f\u0131tmadan \u00f6nce, genellikle Git gibi bir s\u00fcr\u00fcm kontrol sistemi kullanarak projenizi VPS&#8217;nize klonlaman\u0131z gerekir. Ard\u0131ndan, proje dizinine ge\u00e7i\u015f yap\u0131n.<\/p>\n<pre><code class=\"language-bash\">git clone https:\/\/github.com\/your-username\/your-ruby-app.git\ncd your-ruby-app<\/code><\/pre>\n<p>Bu ad\u0131m, uygulaman\u0131z\u0131n kaynak kodunu sunucunuza getirir ve \u00e7al\u0131\u015fma dizininizi ayarlar.<\/p>\n<h3>Ruby S\u00fcr\u00fcm\u00fcn\u00fc ve Gemset&#8217;i Belirleme<\/h3>\n<p>E\u011fer projenizin k\u00f6k dizininde <code>.ruby-version<\/code> ve <code>.ruby-gemset<\/code> dosyalar\u0131 varsa, RVM bu dizine girdi\u011finizde otomatik olarak do\u011fru Ruby s\u00fcr\u00fcm\u00fcn\u00fc ve gemset&#8217;i etkinle\u015ftirecektir. Bu dosyalar yoksa veya manuel kontrol sa\u011flamak isterseniz, <code>rvm use<\/code> komutunu kullanarak do\u011fru ortam\u0131 manuel olarak ayarlaman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">rvm use ruby-3.1.4@my_project_gems<\/code><\/pre>\n<p>Bu, uygulaman\u0131z\u0131n beklenen Ruby ortam\u0131nda \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<h3>Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Y\u00fckleme<\/h3>\n<p>Ruby uygulamalar\u0131 genellikle <code>bundler<\/code> kullanarak ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00f6netir. Do\u011fru Ruby s\u00fcr\u00fcm\u00fc ve gemset etkinle\u015ftirildikten sonra, uygulaman\u0131z\u0131n ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00fcklemek i\u00e7in <code>bundle install<\/code> komutunu \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">bundle install --deployment --without development test<\/code><\/pre>\n<p><code>--deployment<\/code> bayra\u011f\u0131, gem&#8217;lerin sistem genelinde de\u011fil, proje dizini i\u00e7inde (genellikle <code>vendor\/bundle<\/code> alt\u0131nda) y\u00fcklenmesini sa\u011flar, bu da ba\u011f\u0131ml\u0131l\u0131klar\u0131n izole edilmesine yard\u0131mc\u0131 olur. <code>--without development test<\/code> ise \u00fcretim ortam\u0131nda gereksiz olan geli\u015ftirme ve test ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00fcklemeyi atlar.<\/p>\n<h3>Uygulamay\u0131 \u00c7al\u0131\u015ft\u0131rma<\/h3>\n<p>Ba\u011f\u0131ml\u0131l\u0131klar y\u00fcklendikten sonra, uygulaman\u0131z\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz. Ruby on Rails uygulamalar\u0131 genellikle Puma, Unicorn veya Passenger gibi bir uygulama sunucusu ile \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. \u00d6rne\u011fin, Puma ile bir Rails uygulamas\u0131n\u0131 ba\u015flatmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">bundle exec rails s -e production -p 3000<\/code><\/pre>\n<p>Ancak, bir VPS \u00fczerinde genellikle <code>systemd<\/code> veya <code>Upstart<\/code> gibi bir init sistemi kullanarak uygulamay\u0131 bir servis olarak \u00e7al\u0131\u015ft\u0131rman\u0131z \u00f6nerilir. Bu, uygulaman\u0131z\u0131n sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 ve arka planda s\u00fcrekli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>S\u00fcrekli \u00c7al\u0131\u015fan Uygulamalar i\u00e7in RVM<\/h3>\n<p>Cron i\u015fleri veya sistem servisleri (systemd, Upstart) gibi s\u00fcrekli \u00e7al\u0131\u015fan s\u00fcre\u00e7lerde RVM ortam\u0131n\u0131n do\u011fru bir \u015fekilde ayarland\u0131\u011f\u0131ndan emin olmak \u00f6nemlidir. Bu t\u00fcr senaryolarda, RVM&#8217;nin kabuk entegrasyonu otomatik olarak devreye girmeyebilir. Bu durumu ele almak i\u00e7in iki ana yakla\u015f\u0131m vard\u0131r:<\/p>\n<p>1.  <strong>Tam RVM Ortam\u0131n\u0131 Y\u00fcklemek:<\/strong> Betik veya servis tan\u0131m\u0131n\u0131z\u0131n ba\u015f\u0131nda RVM&#8217;nin kabuk beti\u011fini kaynaklayarak tam RVM ortam\u0131n\u0131 y\u00fckleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n    source \/usr\/local\/rvm\/scripts\/rvm # veya ~\/.rvm\/scripts\/rvm\n    rvm use ruby-3.1.4@my_project_gems\n    bundle exec rails runner \"MyModel.perform_task\"<\/code><\/pre>\n<p>2.  <strong><code>rvm-auto-ruby<\/code> Kullan\u0131m\u0131:<\/strong> RVM, RVM taraf\u0131ndan y\u00f6netilen Ruby&#8217;yi kullanmak i\u00e7in <code>rvm-auto-ruby<\/code> adl\u0131 bir yard\u0131mc\u0131 betik sa\u011flar. Bu betik, <code>.ruby-version<\/code> ve <code>.ruby-gemset<\/code> dosyalar\u0131n\u0131 kullanarak do\u011fru Ruby ortam\u0131n\u0131 otomatik olarak bulur ve \u00e7al\u0131\u015ft\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n    cd \/path\/to\/your\/app\n    \/usr\/local\/rvm\/bin\/rvm-auto-ruby bundle exec rails runner \"MyModel.perform_task\"<\/code><\/pre>\n<p>    Bu y\u00f6ntem, \u00f6zellikle cron i\u015fleri veya <code>systemd<\/code> servisleri i\u00e7in daha temiz ve g\u00fcvenilir bir yol sunar. <code>systemd<\/code> servisi tan\u0131mlarken <code>ExecStart<\/code> komutunu bu \u015fekilde yap\u0131land\u0131rabilirsiniz.<\/p>\n<h2>RVM Bak\u0131m\u0131 ve Sorun Giderme<\/h2>\n<p>RVM&#8217;yi verimli bir \u015fekilde kullanmak i\u00e7in d\u00fczenli bak\u0131m yapmak ve kar\u015f\u0131la\u015f\u0131labilecek yayg\u0131n sorunlar\u0131 nas\u0131l giderece\u011finizi bilmek \u00f6nemlidir.<\/p>\n<h3>RVM&#8217;yi G\u00fcncelleme<\/h3>\n<p>RVM, s\u00fcrekli olarak g\u00fcncellenir ve geli\u015ftirilir. En son \u00f6zelliklere, hata d\u00fczeltmelerine ve g\u00fcvenlik yamalar\u0131na sahip olmak i\u00e7in RVM&#8217;yi d\u00fczenli olarak g\u00fcncellemeniz \u00f6nerilir.<\/p>\n<pre><code class=\"language-bash\">rvm get stable<\/code><\/pre>\n<p>Bu komut, RVM&#8217;nin en kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc indirir ve kurar. G\u00fcncelleme i\u015fleminden sonra, RVM&#8217;nin yeni s\u00fcr\u00fcm\u00fcn\u00fcn etkin oldu\u011fundan emin olmak i\u00e7in kabuk oturumunuzu yeniden kaynaklaman\u0131z gerekebilir.<\/p>\n<h3>\u00d6nbelle\u011fi Temizleme<\/h3>\n<p>RVM, indirilen Ruby kaynak kodlar\u0131n\u0131 ve di\u011fer ge\u00e7ici dosyalar\u0131 \u00f6nbelle\u011finde saklar. Zamanla bu \u00f6nbellek b\u00fcy\u00fcyebilir ve disk alan\u0131n\u0131z\u0131 t\u00fcketebilir. \u00d6nbelle\u011fi temizlemek i\u00e7in <code>rvm cleanup<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">rvm cleanup all<\/code><\/pre>\n<p>Bu komut, indirilen kaynak kodlar\u0131n\u0131, derleme g\u00fcnl\u00fcklerini ve di\u011fer gereksiz dosyalar\u0131 silerek disk alan\u0131n\u0131z\u0131 bo\u015falt\u0131r.<\/p>\n<h3>Derleme Hatalar\u0131<\/h3>\n<p>Yeni bir Ruby s\u00fcr\u00fcm\u00fcn\u00fc kurarken derleme hatalar\u0131yla kar\u015f\u0131la\u015fmak yayg\u0131n bir durumdur. Bu hatalar genellikle eksik sistem ba\u011f\u0131ml\u0131l\u0131klar\u0131ndan kaynaklan\u0131r. RVM, bu t\u00fcr sorunlar\u0131 te\u015fhis etmenize yard\u0131mc\u0131 olmak i\u00e7in <code>rvm requirements<\/code> komutunu sa\u011flar:<\/p>\n<pre><code class=\"language-bash\">rvm requirements<\/code><\/pre>\n<p>Bu komut, mevcut sisteminiz i\u00e7in gerekli olabilecek t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 listeler ve bunlar\u0131 nas\u0131l kuraca\u011f\u0131n\u0131za dair talimatlar verir. Genellikle <code>build-essential<\/code>, <code>libssl-dev<\/code>, <code>libreadline-dev<\/code>, <code>zlib1g-dev<\/code> gibi paketlerin y\u00fckl\u00fc olmas\u0131 gerekir. Hata mesajlar\u0131n\u0131 dikkatlice okumak ve Google&#8217;da arama yapmak da sorunu \u00e7\u00f6zmenize yard\u0131mc\u0131 olabilir.<\/p>\n<h3>Ortam De\u011fi\u015fkenleri Sorunlar\u0131<\/h3>\n<p>Bazen RVM&#8217;nin do\u011fru \u015fekilde y\u00fcklenmedi\u011fi veya ortam de\u011fi\u015fkenlerinin kabuk oturumunuzda d\u00fczg\u00fcn ayarlanmad\u0131\u011f\u0131 durumlarla kar\u015f\u0131la\u015fabilirsiniz. Bu genellikle <code>.bashrc<\/code>, <code>.zshrc<\/code> veya <code>.profile<\/code> gibi kabuk yap\u0131land\u0131rma dosyalar\u0131n\u0131n yanl\u0131\u015f yap\u0131land\u0131r\u0131lmas\u0131ndan kaynaklan\u0131r.<\/p>\n<p>*   RVM&#8217;nin do\u011fru bir \u015fekilde kaynakland\u0131\u011f\u0131ndan emin olun: <code>source ~\/.rvm\/scripts\/rvm<\/code> komutunun kabuk ba\u015flang\u0131\u00e7 betiklerinizde oldu\u011fundan emin olun.<br \/>\n*   Yeni bir terminal a\u00e7t\u0131ktan sonra <code>rvm -v<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak RVM&#8217;nin tan\u0131n\u0131p tan\u0131nmad\u0131\u011f\u0131n\u0131 kontrol edin.<br \/>\n*   <code>echo $PATH<\/code> komutuyla PATH ortam de\u011fi\u015fkeninizi kontrol edin. RVM&#8217;nin dizinlerinin PATH&#8217;de oldu\u011fundan emin olun.<\/p>\n<h3>RVM&#8217;yi Kald\u0131rma<\/h3>\n<p>E\u011fer RVM&#8217;yi sisteminizden tamamen kald\u0131rmak isterseniz, <code>rvm implode<\/code> komutunu kullanabilirsiniz. Bu komut, RVM&#8217;nin kendisini, t\u00fcm y\u00fckl\u00fc Ruby s\u00fcr\u00fcmlerini ve gemset&#8217;leri sisteminizden siler. Bu i\u015flem geri al\u0131namaz ve t\u00fcm RVM ile ilgili verileri kal\u0131c\u0131 olarak kald\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">rvm implode<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce, t\u00fcm \u00f6nemli verilerinizi yedekledi\u011finizden ve RVM&#8217;nin art\u0131k gerekli olmad\u0131\u011f\u0131ndan emin olun.<\/p>\n<h2>RVM Alternatifleri<\/h2>\n<p>RVM, Ruby ortamlar\u0131n\u0131 y\u00f6netmek i\u00e7in pop\u00fcler bir ara\u00e7 olsa da, piyasada ba\u015fka g\u00fc\u00e7l\u00fc alternatifler de bulunmaktad\u0131r. Bu alternatifler, farkl\u0131 yakla\u015f\u0131mlar ve \u00f6zellik setleri sunar.<\/p>\n<h3>rbenv<\/h3>\n<p><code>rbenv<\/code>, RVM&#8217;ye pop\u00fcler bir alternatiftir. RVM&#8217;den farkl\u0131 olarak, <code>rbenv<\/code> kabuk fonksiyonlar\u0131 yerine &#8220;shim&#8221; ad\u0131 verilen k\u00fc\u00e7\u00fck betikler kullanarak Ruby s\u00fcr\u00fcmlerini y\u00f6netir. Bu, <code>rbenv<\/code>&#8216;in daha az m\u00fcdahaleci ve daha basit bir yap\u0131ya sahip oldu\u011fu anlam\u0131na gelir. <code>rbenv<\/code>, gemset&#8217;leri do\u011frudan desteklemez; bunun yerine, <code>bundler<\/code> ve <code>gem<\/code> komutlar\u0131n\u0131n kendi izole ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00f6netmesini bekler. <code>rbenv<\/code> genellikle daha hafif ve esnek olarak kabul edilir, ancak RVM&#8217;nin sundu\u011fu baz\u0131 kolayl\u0131klar\u0131 (\u00f6rne\u011fin otomatik gemset y\u00f6netimi) manuel olarak yap\u0131land\u0131rman\u0131z gerekebilir.<\/p>\n<h3>chruby<\/h3>\n<p><code>chruby<\/code>, <code>rbenv<\/code>&#8216;den bile daha basit ve daha hafif bir Ruby s\u00fcr\u00fcm y\u00f6neticisidir. Sadece kabuk fonksiyonlar\u0131 kullanarak Ruby s\u00fcr\u00fcmleri aras\u0131nda ge\u00e7i\u015f yapman\u0131z\u0131 sa\u011flar ve gemset&#8217;ler veya otomatik ge\u00e7i\u015f gibi geli\u015fmi\u015f \u00f6zelliklere sahip de\u011fildir. <code>chruby<\/code>&#8216;nin temel amac\u0131, h\u0131zl\u0131 ve minimum d\u00fczeyde bir Ruby s\u00fcr\u00fcm de\u011fi\u015ftirme arac\u0131 sa\u011flamakt\u0131r. E\u011fer sadece Ruby s\u00fcr\u00fcmleri aras\u0131nda h\u0131zl\u0131ca ge\u00e7i\u015f yapman\u0131z gerekiyorsa ve ekstra \u00f6zelliklere ihtiyac\u0131n\u0131z yoksa, <code>chruby<\/code> iyi bir se\u00e7enek olabilir.<\/p>\n<p>Her bir arac\u0131n kendine \u00f6zg\u00fc avantajlar\u0131 ve dezavantajlar\u0131 vard\u0131r. Se\u00e7iminiz, ki\u015fisel tercihlerinize, projenizin gereksinimlerine ve VPS&#8217;nizin kaynaklar\u0131na ba\u011fl\u0131 olacakt\u0131r. Ancak RVM, sundu\u011fu kapsaml\u0131 \u00f6zellikler ve kullan\u0131m kolayl\u0131\u011f\u0131 ile bir\u00e7ok geli\u015ftirici i\u00e7in hala tercih edilen bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>RVM, bir VPS \u00fczerinde birden fazla Ruby uygulamas\u0131n\u0131 y\u00f6neten geli\u015ftiriciler i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. Bu rehberde, RVM&#8217;yi nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, farkl\u0131 Ruby s\u00fcr\u00fcmlerini ve gemset&#8217;leri nas\u0131l y\u00f6netece\u011finizi, Ruby uygulamalar\u0131n\u0131z\u0131 nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve RVM bak\u0131m\u0131n\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131 ayr\u0131nt\u0131l\u0131 olarak ele ald\u0131k. RVM&#8217;nin sa\u011flad\u0131\u011f\u0131 izolasyon ve esneklik sayesinde, farkl\u0131 projelerinizi birbirine kar\u0131\u015ft\u0131rmadan, her birinin kendi gereksinimlerine uygun Ruby ve gem ortam\u0131nda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<p>Unutmay\u0131n ki d\u00fczenli bak\u0131m, RVM&#8217;nin sorunsuz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in kritik \u00f6neme sahiptir. RVM&#8217;yi g\u00fcncel tutmak, \u00f6nbelle\u011fi temizlemek ve derleme hatalar\u0131n\u0131 gidermek, VPS&#8217;nizin sa\u011fl\u0131kl\u0131 ve verimli kalmas\u0131na yard\u0131mc\u0131 olacakt\u0131r. RVM&#8217;nin sundu\u011fu bu g\u00fc\u00e7l\u00fc \u00f6zelliklerle, Ruby geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinizde \u00f6nemli \u00f6l\u00e7\u00fcde zaman kazanacak ve olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 en aza indireceksiniz. RVM&#8217;yi etkin bir \u015fekilde kullanarak, VPS&#8217;inizdeki Ruby ortamlar\u0131n\u0131z\u0131 tam kontrol alt\u0131nda tutabilir ve projelerinizi g\u00fcvenle da\u011f\u0131tabilirsiniz.<br \/>\n<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi\nGiri\u015f\nRuby on Rails veya di\u011fer Ruby tabanl\u0131 uygulamalar geli\u015ftiren","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":[1],"tags":[],"class_list":{"0":"post-37819","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi - 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\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi\" \/>\n<meta property=\"og:description\" content=\"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi Giri\u015f Ruby on Rails veya di\u011fer Ruby tabanl\u0131 uygulamalar geli\u015ftiren\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-16T07:40:48+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=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi\",\"datePublished\":\"2026-01-16T07:40:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/\"},\"wordCount\":3288,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/\",\"name\":\"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-16T07:40:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi\"}]},{\"@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":"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi - 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\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi","og_description":"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi Giri\u015f Ruby on Rails veya di\u011fer Ruby tabanl\u0131 uygulamalar geli\u015ftiren","og_url":"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-16T07:40:48+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi","datePublished":"2026-01-16T07:40:48+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/"},"wordCount":3288,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/","name":"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-16T07:40:48+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/rvm-ile-vps-uzerinde-ruby-kurulumlarini-ve-ortamlarini-yonetme-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"RVM ile VPS \u00dczerinde Ruby Kurulumlar\u0131n\u0131 ve Ortamlar\u0131n\u0131 Y\u00f6netme Rehberi"}]},{"@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\/37819","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=37819"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37819\/revisions"}],"predecessor-version":[{"id":37820,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37819\/revisions\/37820"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}