Ruby on Rails, Android এ

Ruby on Rails on Android

Featured image

আমরা একটি রুবি অন রেলস ভিত্তিক ওয়েব এপ বানাতে চাই কিন্তু সমস্যা হল এটা করতে লিনাক্সের এনভায়রনমেন্ট লাগে বা সহজ করে বলতে গেলে একটি লিন্যাক্স অপারেটিং সিস্টেম সহ কম্পিউটার প্রয়োজন পড়ে অথবা উইন্ডোজ এর সাথে বিশেষ কিছু অ্যাপ্লিকেশন এর ব্যবহার প্রয়োজন পড়ে। কিন্তু মূল সমস্যা হয় যাদের কোন কম্পিউটারই নেই তারা কী করবে? এই সমস্যা সমাধানের জন্য রয়েছে টারমাক্স। তাদের অফিসিয়াল ওয়েবসাইটে বলেছে:

টার্মাক্স একটি অ্যান্ড্রয়েড টার্মিনাল এমুলেটর এবং লিনাক্স এনভায়রনমেন্ট অ্যাপ্লিকেশন যা কোনও রুটিং বা সেটআপের প্রয়োজন ছাড়া সরাসরি কাজ করে। একটি বেস সিস্টেম স্বয়ংক্রিয়ভাবে ইনস্টল হয় - অতিরিক্ত প্যাকেজ পাওয়া যায় “pkg” package manager ব্যবহার করে।

আর অবশ্যই তাদের অনেক প্যাকেজ রয়েছে যার মধ্যে রয়েছে আপডেটেড ভার্সন এর রুবি। তাদের প্যাকেজ গুলো দেখতে পাবেন গিটহাব এর রিপসিটরীতে

এখন আমরা যে কাজ করব তা হলো টারমাক্স এ আমরা নিচের কমান্ডগুলো লিখব এবং বিষয়টা সহজ রাখতে আমরা কেবল এখন রুবি ইন্সটল করব এবং এর ভার্সন চেক করবো নিচের কমান্ড দুইটি ব্যবহার করে।

pkg install ruby
ruby -v

রুবির ভার্সন আমরা এরকম format এ পেতে পারি:

ruby x.x.xpxxx (yyyy-mm-dd revision xxxxxxxxxx) [aarch64-linux-android]

এখন আমরা চেক করব রুবিতে প্রোগ্রাম লিখলে আউটপুট পাচ্ছে কিনা তার জন্য আমরা প্রথমে কমান্ডে লিখব:

irb

তারপর নিচের প্রোগ্রামের লাইনটির লেখবো:

puts "Hello World!"

এতে আমরা যে আউটপুট পাবো:

Hello World!

আউটপুট পেলে বুঝবো রুবি প্যাকেজটি টারমাক্সে ভালোভাবে কাজ করছে।

এবার আমরা আমাদের ডিভাইস স্টোরেজে একটি ফোল্ডার তৈরি করবো যার মধ্যে আমাদের রুবি অন রেলস ওয়েব অ্যাপ টারমাক্স এর সাহায্যে তৈরি করব। মূলত আমার স্টোরেজে প্রবেশ করে একটি ফোল্ডার তৈরি করব টারমাক্স থেকেই যার নাম দিব webdev

cd /storage/emulated/0
mkdir  webdev && cd webdev

আমরা Android এ কোনও Rails App চালাতে পারি কিনা তা আসুন দেখি।

প্রথম ধাপ: bundler install করা। এর জন্য নিচের কমান্ড টারমাক্সে লেখবো!

gem install bundler

এরপর আমাদেরকে রুবির জন্য nokogiri এর নির্ভরতা বা dependencies লাগবে যেটা অ্যান্ড্রয়েডে সরাসরি প্যাকেজ ইন্সটল করার আগে কিছু অন্যান্য প্রয়োজনীয় প্যাকেজ দরকার।

pkg install clang make pkg-config libxml2 libxslt binutils

এরপর নিচের Gem ইনস্টল করবো!

gem install pkg-config

এখন আমাদের Ruby এর জন্য প্রয়োজনীয় Gem “Nokogiri” ইনস্টল করার জন্য দরকার টারমাক্সের জন্য Bundle platform Ruby সেট করা যার জন্য নিচের কমান্ড লেখবো:

bundle config set force_ruby_platform true

এবার স্রষ্টার নাম নিয়ে নিচের লাইনটি টারমাক্সে লিখে ফেলুন:

gem install nokogiri --platform=ruby -- --use-system-libraries

মূলত এই কাজটুকুর জন্যই আমাকে অনেক সময় ব্যয় করতে হয়েছে সব কিছু করার জন্য। অ্যান্ড্রয়েডে রুবি ইন্সটল করতে গেলে nokogiri প্রয়োজনীয় যেটা সরাসরি ইন্সটল করা সম্ভব হয়ে ওঠেনা পূর্বের ওই প্যাকেজগুলো ইনস্টল করা থাকে না বলে।

এখন আমাদের প্রোগ্রামের জন্য ডাটাবেজ ইন্সটল করতে হবে যেটা মূলত sqlite database নামে পরিচিত। কিন্তু অ্যান্ড্রয়েডের জন্য কিছু নির্ভরতা বা dependencies প্যাকেজ ইন্সটল করা লাগে যেগুলো আমরা নিচের লাইন থেকে ইন্সটল করব।

pkg install libffi libsqlite

এখন আমরা মূলত Nodejs, yarn & curn ইন্সটল করব ওয়েব অ্যাপটির জন্য যাতে আমাদের সামনে JavaScript নিয়ে কাজ করতে সুবিধা হয়।

pkg install nodejs yarn curl

এবার পালা আমাদের রুবিতে রেইলস সফলভাবে ইন্সটল করার!

এখন নিচের কমান্ড দিয়ে রেইলস জেম ইনস্টল করবো।

gem install rails

এবার নিচের রেলস কমান্ড দিয়ে যে নামের ওয়েব এপ বানাবো তার নাম লেখবো! এখানে আপাতত blog নামটা ব্যবহার করবো!

rails new blog

এখন নতুন ডাইরেক্টরিতে প্রবেশ করবো।

cd blog

এবার আমাদের একটি কোড এডিটরের সাহায্যে Gemfile নামক ফাইলটি তে নিচের দুটো লাইন শেষে অ্যাড করতে হবে। এবং এর কোনোটি উপস্থিত থাকলে অন্যটি অ্যাড করতে হবে বুঝে শুনে।

gem 'tzinfo'
gem 'tzinfo-data'

এখন কাজ Gemfile ফাইলটি ইনস্টল করা নিচের কমান্ডের সাহায্যে:

bundle install

এবার পালা ওয়েব অ্যাপসটির টারমাক্স এ লোকাল সার্ভার তৈরি করে চেক করা একটি মোবাইলে ওয়েবসাইট আকারে ব্রাউজার এ show করে কিনা! Rails এপটার Local Server তৈরি করতে টারমাক্স এ লিখব নিচের কমান্ডটি:

rails server

ইয়েস অ্যাপটি এখন ব্রাউজারে শো করছে এভাবে!!

রুবি লোকাল হোস্ট

এটা ছিল আমাদের সফল অভিযান! আপনার এখানে কোনো সমস্যা দেখা দিলে নিচে কমেন্ট করুন! ধন্যবাদ