Giriş
Ruby on Rails (genellikle “Rails” olarak anılır), Ruby programlama diliyle yazılmış, sunucu tarafında web uygulamaları geliştirmeye yönelik güçlü, açık kaynaklı bir web uygulama çatısıdır. Hızlı geliştirme, kod tekrarını önleme (“Don’t Repeat Yourself – DRY”) ve konvansiyon üzerinden yapılandırma (“Convention Over Configuration”) felsefeleriyle bilinir. Bu özellikler sayesinde Rails, prototiplemeden büyük ölçekli uygulamalara kadar birçok projede tercih edilen bir araç haline gelmiştir.
Bu rehberde, Ruby on Rails geliştirme ortamını Ubuntu 16.04 işletim sistemi üzerinde, Ruby sürümlerini yönetmek için popüler bir araç olan rbenv kullanarak nasıl kuracağınızı adım adım açıklayacağız. rbenv, farklı Ruby projeleri için farklı Ruby sürümlerini kolayca kullanmanızı sağlayarak olası bağımlılık çakışmalarını önler ve geliştirme sürecinizi çok daha düzenli hale getirir.
Ubuntu 16.04, uzun süreli destek (LTS) sürümü olmasına rağmen artık eski bir dağıtımdır. Bu nedenle, bazı modern Rails sürümleri veya bağımlılıkları için ek yapılandırmalar gerekebilir. Rehber boyunca bu potansiyel zorluklara değinecek ve güncel bir Rails sürümünü (örneğin Rails 6.x) bu platformda nasıl çalıştıracağınızı göstereceğiz.
Sistem Güncelleme ve Gerekli Bağımlılıkların Kurulumu
Herhangi bir büyük yazılım kurulumuna başlamadan önce, sisteminizin güncel olduğundan ve gerekli tüm bağımlılıklara sahip olduğundan emin olmak önemlidir. Bu adım, ileride karşılaşabileceğiniz birçok hatayı önleyecektir.
Sistem Güncellemesi
İlk olarak, paket listelerinizi güncelleyelim ve mevcut tüm paketleri en son sürümlerine yükseltelim:
sudo apt update
sudo apt upgrade -y
Bu komutlar, sisteminizin güvenliğini ve kararlılığını artırırken, yeni yazılımların kurulumu için gerekli temel paketlerin güncel olmasını sağlar.
Gerekli Paketlerin Kurulumu
Ruby ve Rails’in derlenmesi ve düzgün çalışması için bazı temel geliştirme araçlarına ve kütüphanelerine ihtiyacımız var. Bu paketler genellikle “build-essential” olarak adlandırılan bir grup içerir ve çeşitli kütüphanelerin geliştirme dosyalarını içerir.
sudo apt install -y git curl libssl-dev libreadline-dev zlib1g-dev \
libcurl4-openssl-dev libffi-dev libyaml-dev libxml2-dev libxslt1-dev \
build-essential
git: rbenv ve diğer bazı bileşenleri GitHub’dan klonlamak için.curl: Dosyaları internetten indirmek için.libssl-dev: OpenSSL geliştirme kütüphaneleri (Ruby’nin HTTPS desteği için).libreadline-dev: Readline kütüphanesi (Ruby interaktif kabuğu için).zlib1g-dev: Zlib sıkıştırma kütüphanesi.libcurl4-openssl-dev: cURL kütüphanesi (HTTP istekleri için).libffi-dev: Foreign Function Interface kütüphanesi.libyaml-dev: YAML ayrıştırma kütüphanesi.libxml2-devvelibxslt1-dev: XML ve XSLT işleme kütüphaneleri (nokogiri gibi gem’ler için).build-essential: Derleme araçları (GCC, make vb.).
Bu paketler, Ruby’nin kaynak koddan derlenmesi ve çeşitli Ruby gem’lerinin (kütüphanelerinin) kurulumu sırasında oluşabilecek hataları önlemek için kritik öneme sahiptir.
rbenv Kurulumu ve Yapılandırması
rbenv, birden fazla Ruby sürümünü aynı sistemde barındırmanıza ve her proje için farklı bir sürüm kullanmanıza olanak tanıyan hafif bir Ruby sürüm yöneticisidir. Proje dizinlerine özgü Ruby sürümlerini ayarlayabilir ve Ruby’nin farklı sürümleri arasında kolayca geçiş yapabilirsiniz.
rbenv Kurulumu
rbenv’i doğrudan GitHub deposundan klonlayarak kurabiliriz:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
rbenv Ortam Değişkenlerinin Ayarlanması
rbenv’in çalışabilmesi için kabuğunuzun (shell) başlangıç dosyasına (genellikle .bashrc veya .zshrc) bazı ortam değişkenleri eklemeniz gerekir. Bu değişkenler, rbenv’in Ruby komutlarını yakalamasını ve doğru Ruby sürümünü kullanmasını sağlar.
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
Eğer zsh kullanıyorsanız, .bashrc yerine .zshrc dosyasını düzenlemeniz gerekecektir. source ~/.bashrc komutu, değişikliklerin mevcut kabuk oturumunuzda hemen etkili olmasını sağlar. Yeni bir terminal açtığınızda bu komutu çalıştırmanıza gerek kalmaz.
ruby-build Eklentisinin Kurulumu
rbenv’in Ruby sürümlerini kurabilmesi için bir eklentiye ihtiyacı vardır: ruby-build. Bu eklenti, Ruby’nin farklı sürümlerini kaynak koddan derlemek için kullanılır.
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Kurulumu Doğrulama
rbenv kurulumunun başarılı olup olmadığını kontrol etmek için aşağıdaki komutları çalıştırın:
rbenv --version
type rbenv
rbenv --version komutu rbenv’in sürümünü göstermelidir. type rbenv komutu ise rbenv is a function çıktısını vermeli, bu da rbenv’in kabuğunuz tarafından doğru şekilde yüklendiğini gösterir.
Ruby ve Rails Kurulumu
rbenv hazır olduğuna göre, artık Ruby ve Rails’i kurmaya başlayabiliriz. Bu bölümde, Rails’in gerektirdiği JavaScript çalışma zamanını (Node.js) ve paket yöneticisi Yarn’ı da ele alacağız.
Ruby Kurulumu
İlk olarak, kurmak istediğiniz Ruby sürümünü belirlemelisiniz. Rails’in daha yeni sürümleri (örneğin Rails 6.x), Ruby’nin daha yeni sürümlerini gerektirir (genellikle Ruby 2.7.x veya 3.x). Ubuntu 16.04 üzerinde uyumluluk ve modern özellikler için Ruby 2.7.x sürümünü kurmanızı öneririz.
rbenv install 2.7.8 # En son 2.7.x sürümünü kontrol edin ve uygun olanı kullanın
rbenv global 2.7.8 # Bu, sistem genelinde varsayılan Ruby sürümünü ayarlar
rbenv install komutu biraz zaman alabilir, çünkü Ruby’yi kaynak koddan derleyecektir. Kurulum tamamlandığında, rbenv global komutu ile bu sürümü varsayılan olarak ayarlayın. Ardından, Ruby’nin doğru şekilde kurulup kurulmadığını kontrol edin:
ruby -v
Bu komut, kurduğunuz Ruby sürümünü (örneğin ruby 2.7.8p217 (2023-11-24 revision 1f6a15799e) [x86_64-linux]) göstermelidir.
Bundler Kurulumu
Bundler, Ruby projelerinin bağımlılıklarını yönetmek için kullanılan bir gem’dir. Rails uygulamaları için vazgeçilmezdir. Herhangi bir Rails uygulamasında çalışmaya başlamadan önce Bundler’ı kurmanız gerekir:
gem install bundler
Bu komut, Bundler’ı global olarak kurar. rbenv rehash komutunu çalıştırmayı unutmayın, bu, rbenv’in yeni kurulan yürütülebilir dosyaları (bundler gibi) tanımasını sağlar:
rbenv rehash
JavaScript Runtime (Node.js) Kurulumu
Rails 6 ve sonraki sürümleri, Webpacker aracılığıyla JavaScript paketlerini yönetmek için bir JavaScript çalışma zamanına (Node.js) ihtiyaç duyar. Ubuntu 16.04’ün varsayılan Node.js sürümü eski olabilir, bu yüzden NodeSource deposunu kullanarak daha güncel bir sürüm kurmalıyız. Node.js 12.x veya 14.x, Rails 6 için genellikle yeterlidir.
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
Kurulumu doğrulayın:
node -v
Bu, Node.js’nin sürümünü göstermelidir (örneğin v12.x.x).
Yarn Kurulumu (İsteğe Bağlı ama Önerilir)
Yarn, JavaScript paketlerini yönetmek için kullanılan hızlı, güvenli ve güvenilir bir paket yöneticisidir. Rails projeleri genellikle hem Bundler (Ruby gem’leri için) hem de Yarn (JavaScript bağımlılıkları için) kullanır. Yarn’ı kurmak için:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install -y yarn
Kurulumu doğrulayın:
yarn -v
Bu, Yarn’ın sürümünü göstermelidir (örneğin 1.x.x).
Rails Kurulumu
Artık tüm bağımlılıklar ve Ruby hazır olduğuna göre, Rails’i kurabiliriz. Rails 6.0, Ubuntu 16.04 ve Ruby 2.7.x ile iyi çalışacak modern bir sürüm seçimidir.
gem install rails -v 6.0.6 # En son 6.0.x sürümünü kontrol edin ve uygun olanı kullanın
rbenv rehash
Kurulum tamamlandığında, Rails’in doğru şekilde kurulup kurulmadığını kontrol edin:
rails -v
Bu komut, kurduğunuz Rails sürümünü (örneğin Rails 6.0.6) göstermelidir.
Rails Uygulaması Oluşturma ve Çalıştırma
Tüm kurulum adımları tamamlandıktan sonra, ilk Rails uygulamanızı oluşturmaya ve çalıştırmaya hazırsınız demektir.
Yeni Bir Rails Uygulaması Oluşturma
Yeni bir Rails uygulaması oluşturmak için rails new komutunu kullanın. Veritabanı olarak genellikle PostgreSQL veya MySQL tercih edilir. Bu rehberde PostgreSQL kullanacağız, ancak --database=sqlite3 ile varsayılan olarak gelen SQLite’ı da seçebilirsiniz. PostgreSQL kullanmak istiyorsanız, öncelikle PostgreSQL sunucusunu kurmanız gerekecektir:
sudo apt install -y postgresql postgresql-contrib libpq-dev
Şimdi yeni bir Rails uygulaması oluşturalım:
rails new myapp --database=postgresql
cd myapp
Bu komut, myapp adında yeni bir Rails projesi oluşturacak ve projenin dizinine geçecektir. Bu işlem, gerekli gem’leri kurmak için Bundler’ı ve JavaScript bağımlılıklarını kurmak için Yarn’ı çalıştıracaktır.
Veritabanı Yapılandırması (PostgreSQL Örneği)
Eğer PostgreSQL kullandıysanız, Rails’in veritabanına bağlanabilmesi için bazı yapılandırmalar yapmanız gerekebilir. Varsayılan olarak Rails, mevcut kullanıcı adınızla aynı adı taşıyan bir PostgreSQL kullanıcısının varlığını bekler. Bu kullanıcıyı oluşturmak için:
sudo -u postgres createuser -s $(whoami)
Bu komut, mevcut Ubuntu kullanıcınızla aynı ada sahip bir PostgreSQL kullanıcısı oluşturur ve bu kullanıcıya süper kullanıcı hakları verir. Bu, geliştirme ortamı için yeterlidir.
Ardından, Rails uygulamanızın veritabanlarını oluşturun:
rails db:create
Bu komut, config/database.yml dosyasındaki bilgilere göre geliştirme ve test veritabanlarını oluşturacaktır.
Uygulamayı Çalıştırma
Her şey hazır olduğuna göre, Rails sunucusunu başlatabilir ve uygulamanızı tarayıcınızda görüntüleyebilirsiniz:
rails server
Sunucu varsayılan olarak http://localhost:3000 adresinde çalışacaktır. Web tarayıcınızı açın ve bu adrese gidin. “Yay! You’re on Rails!” mesajını görmelisiniz. Bu, Rails uygulamanızın başarıyla çalıştığı anlamına gelir.
Sonuç ve Sıkça Sorulan Sorular (SSS)
Bu rehberde, Ubuntu 16.04 üzerinde rbenv kullanarak Ruby on Rails geliştirme ortamını adım adım kurduk. Sistem güncellemelerinden başlayarak, gerekli bağımlılıkları, rbenv’i, Ruby’yi, Node.js’i, Yarn’ı ve son olarak Rails’i kurduk. Ardından, yeni bir Rails uygulaması oluşturup çalıştırarak kurulumun doğruluğunu test ettik. Artık kendi Rails uygulamalarınızı geliştirmeye hazırsınız!
Sıkça Sorulan Sorular (SSS)
Neden rbenv kullanmalıyım?
rbenv, farklı Ruby projeleri için farklı Ruby sürümlerini kolayca yönetmenizi sağlar. Bu, bağımlılık çakışmalarını önler ve projeler arasında geçiş yaparken esneklik sunar. Örneğin, bir proje Ruby 2.7.x, başka bir proje ise Ruby 3.0.x gerektirebilir. rbenv ile bu durum sorun olmaktan çıkar.
Ruby’nin farklı bir sürümünü nasıl kurarım?
rbenv install komutunu kullanarak istediğiniz Ruby sürümünü kurabilirsiniz. Örneğin, rbenv install 3.0.6. Kurduktan sonra, rbenv global ile varsayılanı ayarlayabilir veya bir proje dizininde rbenv local ile o dizine özel bir sürüm belirleyebilirsiniz.
Rails uygulamam çalışmıyor, ne yapmalıyım?
İlk olarak, terminaldeki hata mesajlarını kontrol edin. En yaygın sorunlar şunlardır:
- Bağımlılıklar:
bundle installkomutunu projenizin kök dizininde çalıştırarak tüm gem’lerin kurulu olduğundan emin olun. - Veritabanı:
rails db:createverails db:migratekomutlarını çalıştırarak veritabanının doğru yapılandırıldığından emin olun. - JavaScript Runtime: Node.js ve Yarn’ın kurulu ve güncel olduğundan emin olun.
- rbenv:
rbenv rehashkomutunu çalıştırmayı unutmayın.
“JavaScript runtime not found” hatası alıyorum.
Bu hata, sisteminizde Node.js’nin kurulu olmadığını veya Rails’in onu bulamadığını gösterir. Node.js’nin kurulu olduğundan (node -v ile kontrol edin) ve PATH’inizde olduğundan emin olun. Yukarıdaki “JavaScript Runtime (Node.js) Kurulumu” bölümündeki adımları tekrar gözden geçirin.
Rails’in belirli bir sürümünü nasıl kurarım?
gem install rails -v komutunu kullanarak istediğiniz Rails sürümünü kurabilirsiniz. Örneğin, gem install rails -v 5.2.8. Birden fazla Rails sürümüne ihtiyacınız varsa, her proje için Gemfile dosyasında istediğiniz sürümü belirtebilirsiniz.