Linux ruby Ruby on Rails: console irb Linux passenger production Rails ruby enterprise edition rubygems ubuntu
by bseanvt
leave a comment
Ruby Enterprise Edition and Passenger ./script/console production fails and instead returns Loading production environment (Rails 2.3.5) Rails requires RubyGems >= 1.3.2. Please install RubyGems and try again: http://rubygems.rubyforge.org
After installing Ruby Enterprise Edition, REE, and Passenger on Ubuntu you may see this error message when you run script/console for the first time
./script/console production # => Loading production environment (Rails 2.3.5) Rails requires RubyGems >= 1.3.2. Please install RubyGems and try again: http://rubygems.rubyforge.org
You then scratch your head and run
which gem which ruby which rails
to find that all appears to be in order. You have rubygems installed , ruby is installed and so is rails. You also find that each are pointing to the correct location, which is something like /usr/bin/gem -> /opt/ruby-enterprise-x.x.x.x/bin/gem, where x.x.x.x is the version of REE.
The problem isn’t however, with any of the above. The issue is with the location of irb. If you installed (like me) irb with apt-get install irb, then irb isn’t aware of your shiny new REE and ruby gems. It’s a simple fix however, unlink irb and symlink the /usr/bin/irb to REE’s irb like so…
rm /usr/bin/irb
And symlink it to the irb that REE has in bin
ln -s /opt/ruby-enterprise-x.x.x.x/bin/irb /usr/bin/irb
Now cd into your rails app and run
./script/console production
How Many Gigs of RAM Are On My Server?
How much memory is on my linux server? Run the free command
free -g total used free shared buffers cached Mem: 2 1 0 0 0 1 -/+ buffers/cache: 0 1 Swap: 3 0 3
Which will tell you memory in Gigs. You can pass other flags, such as, -m or -k, which will give you the number in megs and kilobytes respectively.
The man page is as follows
man free
FREE(1) Linux User's Manual FREE(1)
NAME
free - Display amount of free and used memory in the system
SYNOPSIS
free [-b | -k | -m | -g] [-o] [-s delay ] [-t] [-V]
DESCRIPTION
free displays the total amount of free and used physical and swap memory in the system, as well as the buffers used by the kernel. The shared memory column should be
ignored; it is obsolete.
Options
The -b switch displays the amount of memory in bytes; the -k switch (set by default) displays it in kilobytes; the -m switch displays it in megabytes; the -g switch
displays it in gigabytes.
The -t switch displays a line containing the totals.
The -o switch disables the display of a "buffer adjusted" line. If the -o option is not specified, free subtracts buffer memory from the used memory and adds it to
the free memory reported.
The -s switch activates continuous polling delay seconds apart. You may actually specify any floating point number for delay, usleep(3) is used for microsecond resolu-
tion delay times.
The -V displays version information.
FILES
/proc/meminfo
memory information
SEE ALSO
ps(1), slabtop(1), vmstat(8), top(1)
Git: adduser developers development groupadd Linux mac os x repo shared ssh
by bseanvt
1 comment
Setting Up Users, Permissions and Groups for SSH Access to a Shared Git Repository
If you are having permission problems using git, such as
error: insufficient permission for adding an object to repository database ./objects
There are a couple thing you can do to remedy the situation, before moving to a full on git server like gitosis.
Create your users and add them to a group. Create (if you haven’t already) your git repo on the server and change permission and ownship and set the git config sharedRepository to true.
Here are all the commands, quick and dirty!
adduser sean adduser jackson groupadd developers adduser sean developers adduser jackson developers mkdir -p /git/dev/app.git cd /git/dev/app.git git --bare init vim description #edit this file (mac os x complains otherwise) chmod -R g+ws * chgrp -R developers * git repo-config core.sharedRepository true
Found from: http://mapopa.blogspot.com/2009/10/git-insufficient-permission-for-adding.html
Setting up a new ubuntu server with apache2, php, ruby on rails, rubygems, mysql, and git
Here are a list of commands to get up and running with Apache2 with Phussion Passenger for Rails, PHP5, MySQL5, Ruby on Rails with Gems, and the source control software Git. I think that this is a pretty ideal environment for a development box and even production if you need to run apps that are written in both PHP and Ruby.
I’m using Ubuntu 8, Hardy Heron in this example.
Login to your server as root, sudo su, if you’re on the box already as another user. You can optionally enter the sudo command before each of the following commands but I don’t in this example. If you get a permission denied error, try the same command again with sudo in front of it.
The following will update where Ubuntu looks for packages, upgrade to the latest stable build and also install build tools like gcc and make.
apt-get update apt-get upgrade apt-get install build-essential
Now that the server is up to date and has the necessary tools to build and compile the software we’re about to install, let’s intstall our basic LAMP (Linux, Apache2, MySQL and PHP) stack. You can list different packages to install sequentialy if you separate them with a space.
apt-get install apache2 apache2-prefork-dev apt-get install mysql-client mysql-server apt-get install php5 php5-mysql
Lets get Ruby installed next. We will want to use Ruby Gems to manage our Ruby packages rather than apt-get. The reason is because apt-get doesn’t keep up with the latest stable for all Ruby packages and Gems is really a great way to manage Ruby libraries. Think of Ruby Gems as apt-get but for Ruby. Rails for example is a Ruby library that we will download and install using Gems. However, to install Gems we need Ruby and we get Ruby using apt-get.
apt-get install ruby ruby1.8-dev libopenssl-ruby ri rdoc
This should download and install Ruby with a couple of other packages for documentation and SSL support. To get Gems we need to download either a zip or tgz. The best way and easiest way is to navigate to http://rubyforge.org and search for rubygems(one word).
Here is a link to the exact package that I have downloaded and used for this information.
http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
However, this could change in the future or when Gems gets an upgrade.
You need to get it on your server. You can either download it to your local machine and ftp or scp it to your remote server or you can use a tool like wget to download directly to your server.
wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
If you don’t have wget installed, which would be odd, just type apt-get install wget
After it has finished downloading unpack it and cd into it *the name below will be different .
tar xzvf <rubygems-dowloaded-file.tgz>
After you cd into the folder type
ruby setup.rb
You’ll install new Gems with the command gem install package-name. However, now you need to link the program you just downloaded to /usr/bin/gem. The reason is that Gems was installed but with a version number suffix like /usr/bin/gem1.8 or whatever version it’s at. The reason for this is so that you can switch between different versions of Gems without having to uninstall anything. Just override the old link and you can use the new Gem. So to link the file you’ll need to find the path that it was installed under, most likely /usr/bin/gem1.8. Once you have the path type in the terminal
ln -s /usr/bin/<your gem version> /usr/bin/gem
Where <your gem version> is something like gem1.8
Type gem –version to verify that it works. You’ll get a readout of the version of the Gem you are using. Next let’s get it up to date and install the Rails framework. That is two dashes for the system flag below.
gem update --system gem install rails
Once that is done we’ll want to install Phusin Passenger which will let us deploy our Rails application in a similar fashion to any PHP based application. Just point a VirtualHost DocumentRoot to the location of your Rails_Root/public directory and your’re good to go!
gem install passenger
Next we’ll build and compile the module for Apache. This is why we needed to run apt-get install build-essential, installing passenger requires make and gcc development tools. When you execute the next command it will spit a lot of stuff to the screen. This is normal, it is building and linking the module for you. When it is done it will tell you what to copy and paste. I will too, but your configuration could be slightly different. Just follow the prompts that follow.
passenger-install-apache2-module
Passenger will tell you where to put the configuration options. It will look something like this
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5/ext/apa$ PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.5 PassengerRuby /usr/bin/ruby1.8
I placed the code above into the /etc/apache2/mods-available/passenger.conf then I linked them to the mods available directory like so ln -s /etc/apache2/mods-available/passenger.conf /etc/apache2/sites-enables/passenger.conf
Next create a VirtualHost
<VirtualHost *> ServerName awesome.iam.com DocumentRoot /var/www/awesome.iam.com/public RailsEnv production </VirtualHost>
Remember to restart your server with
apache2ctl restart
Also, you restart your Rails application by issuing this command from the Rails_Root dir
touch tmp/restart.txt
And finally, to install Git
apt-get install git git-core


