Ruby on Rails’i FreeBSD 10.1 Üzerine RVM ile Kurulum Rehberi
Ruby on Rails, hızlı ve etkili web uygulamaları geliştirmek için tercih edilen güçlü bir framework’tür. FreeBSD ise kararlılığı, güvenliği ve performansı ile sunucu ortamlarında sıkça kullanılan bir işletim sistemidir. Bu rehberde, FreeBSD 10.1 sunucunuza Ruby on Rails’i, Ruby sürümlerini kolayca yönetmenizi sağlayan RVM (Ruby Version Manager) kullanarak nasıl kuracağınızı adım adım anlatacağız. Bu kurulum, farklı Rails projeleri için farklı Ruby sürümlerini sorunsuzca kullanmanıza olanak tanıyacak esnek bir geliştirme ortamı sağlayacaktır.
1. Sistem Hazırlığı ve Ön Gereksinimler
Kuruluma başlamadan önce FreeBSD sisteminizin güncel olduğundan ve gerekli temel geliştirme araçlarına sahip olduğundan emin olmalıyız. Bu adımlar, RVM ve Ruby’nin sorunsuz bir şekilde derlenip kurulması için hayati öneme sahiptir.
1.1. FreeBSD Sistemini Güncelleme
İlk olarak, sistem paket dizinini güncelleyin ve yüklü paketleri yükseltin. Bu, olası bağımlılık sorunlarını önleyecektir.
sudo pkg update
sudo pkg upgrade -y
Sistem çekirdeği ve temel sistem bileşenlerini de güncellediğinizden emin olun (eğer uzun süredir yapılmadıysa).
sudo freebsd-update fetch
sudo freebsd-update install
1.2. Temel Geliştirme Araçlarını Kurma
RVM ve Ruby’nin kaynak koddan derlenmesi için çeşitli araçlara ve kütüphanelere ihtiyacımız var. pkg komutu ile bunları kolayca kurabiliriz. bash kabuğu RVM tarafından yaygın olarak kullanıldığı için onu da kurmanızı tavsiye ederiz.
sudo pkg install -y git curl autoconf automake bash bison gmake libtool patch readline openssl gdbm libyaml libffi ncurses
Bu paketler arasında git (RVM ve Rails kaynak kodları için), curl (RVM kurulum betiğini indirmek için), autoconf, automake, gmake (derleme araçları), openssl, libyaml, libffi (Ruby’nin bağımlılıkları) bulunmaktadır.
1.3. Kullanıcı Ortamı Ayarları
bash kabuğunu varsayılan olarak kullanmıyorsanız, RVM’in düzgün çalışması için bash‘e geçmeniz veya gerekli ortam değişkenlerini mevcut kabuğunuza (örneğin csh veya zsh) eklemeniz gerekebilir. Bu rehberde bash kullandığınızı varsayarak ilerleyeceğiz. Eğer kullanıcınız için varsayılan kabuk bash değilse, değiştirebilirsiniz:
chsh -s /usr/local/bin/bash
Ardından oturumu kapatıp tekrar açın.
2. RVM Kurulumu
RVM (Ruby Version Manager), farklı Ruby sürümlerini ve her sürüm için ayrı “gemset”leri (gem kümeleri) yönetmenize olanak tanıyan güçlü bir araçtır. Bu, farklı Rails projelerinin farklı Ruby ve gem bağımlılıklarına sahip olduğu durumlarda karmaşıklığı önler.
2.1. RVM GPG Anahtarını Ekleme
RVM kurulum betiğinin güvenilirliğini doğrulamak için RVM’in GPG anahtarını sisteminize eklemeniz gerekir.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Bu komut, RVM geliştiricilerinin genel anahtarlarını PGP anahtar sunucusundan alır ve yerel GPG anahtar halkınıza ekler.
2.2. RVM’i Kurma
Şimdi curl kullanarak RVM kurulum betiğini indirebilir ve çalıştırabilirsiniz. autolibs=enable seçeneği, RVM’in ihtiyaç duyduğu sistem kütüphanelerini otomatik olarak kontrol etmesini ve kurmasını sağlar.
curl -sSL https://get.rvm.io | bash -s stable --autolibs=enable
Bu işlem biraz zaman alabilir. Kurulum tamamlandığında, RVM’i kabuğunuzun ortamına yüklemeniz gerekir. Bunun için genellikle ~/.bashrc dosyasına eklenen bir source komutunu çalıştırmanız gerekir.
source /usr/local/rvm/scripts/rvm
Bu komutu her yeni terminal oturumunda çalıştırmak yerine, ~/.bashrc dosyanızın sonuna eklemeniz önerilir.
echo "source /usr/local/rvm/scripts/rvm" >> ~/.bashrc
Ardından, değişikliklerin etkili olması için terminali kapatıp yeniden açın veya manuel olarak source ~/.bashrc komutunu çalıştırın.
2.3. RVM Kurulumunu Doğrulama
RVM’in doğru kurulup kurulmadığını kontrol etmek için sürümünü sorgulayabilirsiniz:
rvm -v
Çıktı olarak RVM sürüm numarasını görmeniz gerekir.
3. Ruby Kurulumu ve Yönetimi
RVM kurulduktan sonra, Rails projeleriniz için belirli bir Ruby sürümünü kurabilir ve yönetebilirsiniz. FreeBSD 10.1 gibi daha eski bir işletim sistemi kullandığımız için, çok yeni Ruby sürümlerinin derlenmesinde sorunlar yaşanabilir. Bu rehberde, FreeBSD 10.1 ile uyumlu ve Rails 6.x ile iyi çalışan Ruby 2.7.x sürümünü kuracağız.
3.1. Ruby Sürümünü Kurma
RVM ile Ruby kurmak oldukça basittir. Örneğin, Ruby 2.7.8 sürümünü kuralım:
rvm install ruby-2.7.8
Bu komut, Ruby 2.7.8’in kaynak kodunu indirir, derler ve RVM ortamınıza kurar. Bu işlem sisteminizin performansına bağlı olarak biraz zaman alabilir.
3.2. Varsayılan Ruby Sürümünü Ayarlama
Kurulum tamamlandıktan sonra, bu Ruby sürümünü geçerli terminal oturumunuzda kullanmaya başlayabilir ve aynı zamanda tüm yeni terminal oturumları için varsayılan olarak ayarlayabilirsiniz:
rvm use ruby-2.7.8 --default
Şimdi hangi Ruby sürümünü kullandığınızı kontrol edin:
ruby -v
Çıktı olarak ruby 2.7.8p... görmelisiniz.
3.3. Gemset Oluşturma ve Kullanma
Gemset’ler, her projenin kendi gem bağımlılıklarına sahip olmasını sağlayarak bağımlılık çakışmalarını önler. Her proje için ayrı bir gemset oluşturmak iyi bir pratiktir. Örneğin, Rails 6.x projeleriniz için bir gemset oluşturalım:
rvm gemset create rails6
rvm use ruby-2.7.8@rails6
Artık bu gemset içinde kuracağınız tüm gem’ler, diğer gemset’lerden veya Ruby sürümlerinden bağımsız olacaktır.
3.4. Bundler Gem’ini Kurma
Rails projelerinin bağımlılıklarını yönetmek için bundler gem’ine ihtiyacımız var. Bu gem’i yeni oluşturduğumuz rails6 gemset’ine kuralım:
gem install bundler
4. Rails Kurulumu ve İlk Uygulama
Şimdi sıra Ruby on Rails framework’ünü kurmaya ve ilk Rails uygulamanızı oluşturmaya geldi.
4.1. Rails Gem’ini Kurma
Ruby 2.7.x ile uyumlu olan Rails 6.1.x sürümünü kurabiliriz. Eğer farklı bir Rails sürümüne ihtiyacınız varsa, --version bayrağını kullanabilirsiniz.
gem install rails -v ~>6.1.0
Bu komut, Rails framework’ünü ve tüm bağımlılıklarını (oluşturduğumuz rails6 gemset’ine) kuracaktır.
4.2. Yeni Bir Rails Uygulaması Oluşturma
Rails’i kurduktan sonra, yeni bir proje oluşturabiliriz. Bu örnekte, veritabanı olarak PostgreSQL kullanacağımızı varsayarak bir uygulama oluşturacağız. PostgreSQL, üretim ortamları için genellikle daha iyi bir seçenektir.
rails new myapp --database=postgresql
Bu komut myapp adında yeni bir Rails projesi oluşturacak, gerekli dosyaları indirecek ve postgresql veritabanı adaptörünü yapılandıracaktır.
4.3. Veritabanı Hazırlığı (PostgreSQL Örneği)
Eğer PostgreSQL kullanmayı seçtiyseniz, sisteminize PostgreSQL istemcisini kurmanız ve veritabanı kullanıcı/veritabanı oluşturmanız gerekir.
4.3.1. PostgreSQL İstemcisini Kurma
sudo pkg install -y postgresql12-client
Bu, PostgreSQL veritabanı ile etkileşim kurmak için gerekli olan istemci araçlarını kurar. Sunucuyu ayrı bir makinede çalıştırıyorsanız, sadece istemci yeterlidir. Eğer aynı makinede çalıştıracaksanız, postgresql12-server paketini de kurmanız ve servisi başlatmanız gerekebilir.
4.3.2. Veritabanı Ayarları ve Oluşturma
Uygulamanızın dizinine gidin:
cd myapp
config/database.yml dosyasını düzenleyerek PostgreSQL bağlantı bilgilerinizi girmeniz gerekebilir. Varsayılan olarak username: gibi bir yapı olabilir. Kendi kullanıcı adınızı ve şifrenizi ayarlayın. Örneğin:
# config/database.yml (bir kısmı)
development:
adapter: postgresql
encoding: unicode
database: myapp_development
pool: 5
username: your_db_user
password: your_db_password
host: localhost
test:
adapter: postgresql
encoding: unicode
database: myapp_test
pool: 5
username: your_db_user
password: your_db_password
host: localhost
PostgreSQL Kullanıcısı ve Veritabanı Oluşturma:
Eğer your_db_user ve your_db_password ile bir PostgreSQL kullanıcınız yoksa, psql komut satırı aracını kullanarak bir tane oluşturmanız gerekir. Önce postgres kullanıcısına geçin:
sudo -u postgres createuser --pwprompt your_db_user
sudo -u postgres createdb -O your_db_user myapp_development
sudo -u postgres createdb -O your_db_user myapp_test
Bu komutlar, your_db_user adında bir kullanıcı ve bu kullanıcıya ait myapp_development ile myapp_test adında veritabanları oluşturacaktır.
Son olarak, uygulamanızın bağımlılıklarını kurun ve veritabanını oluşturun:
bundle install
rails db:create
rails db:migrate
4.4. Uygulamayı Çalıştırma
Artık Rails uygulamanızı çalıştırabilirsiniz:
rails server -b 0.0.0.0
-b 0.0.0.0 seçeneği, uygulamanızın sadece localhost yerine tüm ağ arayüzlerinden erişilebilir olmasını sağlar. Bu, başka bir makineden (örneğin kendi bilgisayarınızdan) FreeBSD sunucunuza erişmek istediğinizde gereklidir.
Tarayıcınızda http://:3000 adresine giderek Rails uygulamanızın varsayılan karşılama sayfasını görmelisiniz.
5. Sonuç ve Sıkça Sorulan Sorular
Bu rehberle birlikte FreeBSD 10.1 sisteminizde RVM kullanarak Ruby on Rails geliştirme ortamınızı başarıyla kurmuş oldunuz. Artık kendi web uygulamalarınızı geliştirmeye başlayabilirsiniz. Unutmayın ki FreeBSD 10.1 eski bir sürüm olduğu için, çok yeni Ruby veya Rails özelliklerini kullanırken uyumluluk sorunları yaşayabilirsiniz. Genellikle stabil ve biraz daha eski sürümleri tercih etmek daha güvenli bir yaklaşımdır.
Sıkça Sorulan Sorular (SSS)
H3.1. Neden RVM kullanmalıyım?
RVM, farklı projeler için farklı Ruby sürümlerini ve gemset’lerini izole etmenizi sağlar. Bu, bir projenin Ruby 2.7.x ve Rails 6.x gerektirirken, başka bir projenin Ruby 3.0.x ve Rails 7.x gerektirdiği durumlarda bağımlılık çakışmalarını önler. Geliştirme ortamınızın temiz ve düzenli kalmasına yardımcı olur.
H3.2. Hangi Ruby sürümünü kurmalıyım?
Genellikle en son stabil Ruby sürümü tavsiye edilir. Ancak FreeBSD 10.1 gibi eski bir işletim sistemi kullanıyorsanız, daha yeni Ruby sürümleri için gereken derleyici (GCC) ve sistem kütüphaneleri güncel olmayabilir. Bu rehberde kullanılan Ruby 2.7.x ve Rails 6.1.x, bu tür ortamlar için daha güvenli ve uyumlu bir seçenektir.
H3.3. FreeBSD’de performans ipuçları nelerdir?
* JEMalloc Kullanımı: Bellek yöneticisi olarak jemalloc kullanmak, Ruby uygulamalarının bellek performansını artırabilir. RUBY_GC_HEAP_INIT_SLOTS=200000 RUBY_GC_HEAP_FREE_SLOTS=100000 gibi ortam değişkenleri ile Garbage Collector ayarlarını optimize edebilirsiniz.
* CPU ve RAM: Yeterli CPU çekirdeği ve RAM, Rails uygulamaları için kritik öneme sahiptir.
* Disk Hızı: SSD kullanmak, özellikle bundle install gibi disk yoğun işlemler sırasında performansı artırır.
* Web Sunucusu: Üretimde, puma veya unicorn gibi Ruby tabanlı bir web sunucusunu, nginx veya apache gibi bir ters proxy’nin arkasında çalıştırmak standart bir yaklaşımdır.
H3.4. Veritabanı seçimi (SQLite vs PostgreSQL)?
* SQLite: Geliştirme ve küçük ölçekli projeler için kurulumu kolay ve hızlıdır. Tek bir dosya olarak depolandığı için yönetimi basittir. Ancak üretim ortamları için ölçeklenebilirlik, eşzamanlılık ve güvenlik açısından genellikle uygun değildir.
* PostgreSQL: Üretim ortamları için güçlü, güvenilir ve ölçeklenebilir bir veritabanı yönetim sistemidir. Gelişmiş özelliklere sahiptir ve büyük ölçekli uygulamalar için idealdir. Kurulumu ve yönetimi SQLite’a göre daha karmaşıktır. Bu rehberde PostgreSQL tercih edilmiştir.
H3.5. Rails uygulamam çalışmıyor, nasıl sorun gideririm?
* Logları Kontrol Edin: log/development.log (veya log/production.log) dosyasındaki hataları inceleyin.
* Bağımlılıklar: bundle install komutunun başarıyla çalıştığından emin olun. Eksik gem’ler veya bağımlılıklar sorunlara neden olabilir.
* Veritabanı Bağlantısı: config/database.yml dosyasındaki veritabanı bağlantı bilgilerini ve PostgreSQL kullanıcısı/veritabanı ayarlarını kontrol edin. rails db:create ve rails db:migrate komutlarının hatasız çalıştığından emin olun.
* Port Çakışmaları: Başka bir uygulamanın 3000 portunu kullanıp kullanmadığını kontrol edin. lsof -i :3000 komutu ile kontrol edebilirsiniz.
* Ortam Değişkenleri: RVM ortam değişkenlerinin doğru şekilde yüklendiğinden emin olun (source /usr/local/rvm/scripts/rvm).
* Firewall: FreeBSD sunucunuzda bir firewall (örneğin pf) çalışıyorsa, 3000 portunun dışarıdan gelen bağlantılara açık olduğundan emin olun.
