Ruby/Usage

From ALT Linux Wiki

Usage

You have to use system ruby generally for several purposes, so you have to:

  1. use application, which strictly requires ruby, like: foreman, gem-alexandria-book-collection-manager;
  2. use ruby for development only purposes on your local machine;

Usage system ruby for any other cases along with the specific production case is UNSUPPORTED.

Installation

You have to install ruby for use just type in console as root:

# apt-get install ruby

Post install

Our ruby uses rvm even for both build process and for usage. To use custom gems in userspace, to install an additional ruby gems or side modules, you have to add a user into ruby group:

# usermod [USER] -aG ruby

or

$ sudo bash -c "usermod \$SUDO_USER  -aG ruby"

And then relogin as the user. From time of relogin, additional gems will be installed for the user in the default $GEM_HOME folder /var/cache/ruby/gemie.

for root

Of course you still able to install custom gems as root user, so then treat all the calls to ruby executables as roots at all, like:

# gem server


For development

Development package for ruby is called as the libruby-devel, it contains all the prepequisites to build an other ruby with rvm or without, along with the development headers. Just install it as follows:

# apt-get install libruby-devel

Then you have to use either embedded system rvm, or cumtomized user version. To install user version rvm just download it, by running:

$ \curl -sSL https://get.rvm.io | bash -s stable

Then relogin and mount systems' or install required ruby as follows:

$ rvm install ruby-3.3.0

Cloning a custom project

With rvm and ruby you are able to both developing a custom project and even running it in production. For example to run redmine project in production you have to just execute the steps:

 $ git clone https://github.com/redmine/redmine.git
 $ cd redmine
 $ bundle
 $ yarn install

Then edit config/database.yml file properly according your requirements, and set the necessary database user/role for corresponding DB engine, run creation, migration procedures for the database, and seeding if any.

 $ RAILS_ENV=production rake db:create db:migrate db:seed

And run application.

 $ RAILS_ENV=production rails s