A beginners look at RVM: Installs, Upgrades and the rest

One of the most confusing things about learning rails is in dealing with the Ruby Version Manager (RVM). Being a noob myself in the Ruby world, I wanted to give some clarification on stuff that I’d wondered at the outset regarding this tool.

RVM is basically a package manager (like apt for fellow linux users); it upgrades packages, downgrades them, allows you to switch out versions, etc. The big question on my mind was “why doesn’t ruby just use apt!?” Indeed, apt had served me well for php and it seemed to be a needless complication to use some other package manager for this language.  “Why was Ruby so special that it needed its own package manager!?”  I’m still not entirely sure of the rationale behind this, but my guess is that one of the things that makes Ruby so useful is its “Gems” (Rails is one of them), for which Ruby sort of acts as a package manager in itself.  I figure this makes it much more important for users to have a more control over the versions of ruby that they’re using; either way RVM (and a few others like it) are the ways to manage ruby, so here are a few tips to make it work.

Note: These instructions might have an Ubuntu flavor to them here and there, because that’s what I use.  For the most part, they’re universal though.

To install RVM:
\curl -sSL https://get.rvm.io | bash -s stable --ruby

To check the version of ruby:
ruby -v

How can I upgrade to the latest version of ruby!?
There is no way to just upgrade ruby to the latest (whatever it happens to be). RVM seems to be all about giving control to YOU; it’s not going to make the choice for you. Here’s how I go about it.
First, I update my list of known stable ruby versions
rvm get master
Then, I check that updated list with:
rvm list known
My output looked like this:

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p598]
[ruby-]2.1.4
[ruby-]2.1[.5]
[ruby-]2.2.0
[ruby-]2.2-head
ruby-head
# for forks use: rvm install ruby-head- --url https://github.com/github/ruby.git --branch 2.1

The real output was actually a lot longer as it gives you ALL the packages you can get with RVM but I cut it off (we’re not interested in JRuby or anything like that).  Anyway, I checked out the list and saw that 2.2.0 was the latest so I entered:
rvm install 2.2.0

Managing installed versions:
RVM also allows a user to have many “Rubies” installed (versions of ruby).  To see which ones are installed:
rvm list
Mine looks like this:

rvm rubies

ruby-1.9.2-p320 [ x86_64 ]
* ruby-1.9.3-p392 [ x86_64 ]
=> ruby-2.2.0 [ x86_64 ]

# => – current
# =* – current && default
# * – default

I’m using 2.2.0. If I wanted to use the version of 1.9.3 I have, I would type
rvm use ruby-1.9.3-p392
Also my default was 1.9.3. If I wanted to change the default to 2.2.0, I would enter
rvm --default use 2.2.0

Upgrading RVM:
Every month or so it’s good to upgrade your rvm. To do so:
rvm get stable

Advertisement
A beginners look at RVM: Installs, Upgrades and the rest

How to install Open Meetings on Ubuntu 12.04

Blah blah intro: 

Openmeetings has been dramatically improved over the years, as has its documentation.  However, the documentation is still a little tricky and I found I needed to combine a couple sources to really understand what was going on.  The English in Openmeetings docs tends to be a little off, which I assume is because the software is of German origin.  Anyway, I figured I might be able to help make it more accessible.  (I’ve spent so much time using the work of others in the open source community, I might as well try to give something back for once.)

Primarily, the following is drawn from the these two pdf-documents:

  1. Installation of Apache OpenMeetings 2.x on Ubuntu 12.10 and 12.04 – 32 or 64 bits
  2. Installing OpenMeetings in Squeeze.pdf

The technical stuff (what you’re likely here for):

Note:  The following is what I used to get it working on my computer, running 64bit Ubuntu 12.04.

Flash:  Openmeetings is one great big flash application.  Everything on it is flash, the text, the video the entry boxes… everything.  Needless to say, I wasn’t so psyched about this (being a 64bit linux user) but I was happily surprised to find how stable it is and how much bitching it doesn’t do.  Really, I completely forget it’s flash…until I try to right-click something but eh, it’s not so bad.

Step 1: Install Flash on whatever computer you’ll be accessing open meetings on

I almost feel like this isn’t worth going into, there are a whole bunch of articles on it online depending on your operating system.  I figure if you have a computer and it’s hooked to the internet, you probably already have flash.

Step 2: Install oracle Java

You will need Oracle’s JDK.; substitutes such as OpenJDK won’t cut it.  For Ubuntu users, use the following steps:

    1. Add the repository:   sudo add-apt-repository ppa:webupd8team/java
    2. Update your system with the new repo: sudo apt-get update
    3. Install Oracle Java6: sudo apt-get install oracle-java6-installer

Tech note: The above will install the Java6 installer, which will (as part of its install process) run and install the Java6 JDK after it’s installed.  I don’t really know why it works this way but there you have it.  Also I’ve read that Java7 plays with Openmeetings just fine but haven’t tried it myself.

Once the installer starts going automatically it will inform you that you MUST AGREE TO THE LICENCE (hit enter for ok).  Then it will ask you DO YOU AGREE TO THE LICENSE?  Since they’ve already given you the ultimatum that you have to, I guess you don’t have much choice; arrow over to yes and hit enter…only after reading the ENTIRE agreement at the url they provide of course ;-D (oh that’s too funny).

Step 3: Install Open-Libre-Whatever Office (or make sure it’s already installed)

Openmeetings has a really sweet document upload feature where all participants can examine word documents, ppt presentations etc in real-time.  This uses OpenOffice or LibreOffice to do the conversion (either one will work).  So make sure you have a copy installed on the server.

Step 4: Install more conversion software

You’ll need the following packages to properly convert uploaded files to display during the meeting.

1.  Sudo apt-get yourself the packages: sudo apt-get install imagemagick gdebi libgif4 libjpeg62 synaptic
2.  Download and install swftools using the method below.  This will render files into .swf flash when you’re using Openmeetings.

Install this repository: sudo add-apt-repository ppa:guilhem-fr/swftools

Update your system: sudo apt-get update

Install the package: sudo apt-get install swftools

Step 5:  Install FFMPG

FFMPG is necessary for the video stuff that Openmeetings needs.  The official documentation advises that one should compile FFMPEG…which is a bit of a pain.  Being lazy and a humble student of the sacred way of the half-assed, I just used the latest version from the repositories: sudo apt-get install ffmpeg.  I’ve found this to work well enough, though apparently it can present problems when trying to record Openmeetings video feeds.  Or, to quote the official documentation in its original prose:

Now should Compile FFMPEG for video. To install the one that comes in the repositories, we would find very possibly problems with the recording video. Our compiled ffmpeg will have characteristics that do not find in the normal version.

…hey at least it reads better than the nonsense I’d have written, were I to explain this in German.

But anyway, if you don’t want to find very possibly problems with the recording video, go ahead and compile ffmpeg.  I might add in how to do this later, but the Googler yields some great tutorials on how to make this happen in Ubuntu.  I haven’t needed to record the Openmeetings feed yet on my server and so the repo version has worked just fine for me.

Step 6:  Install MYSQL

It’s quite likely that you have this going already BUT if you dont…

1) sudo apt-get install mysql-server

2) It’ll ask you for a new password for the root user.  Make up a good one and don’t forget it.

Ok, now a little work here.  We need to create a database for Openmeetings to use.  So in your terminal and….

  1. Get into mysql using: mysql -uroot -p
  2. It’ll ask you for your password… enter it.  (As per usual with the terminal and password, no characters will appear)
  3. Then enter: mysql> CREATE DATABASE open2final DEFAULT CHARACTER SET 'utf8';
    There, you have now created the database “open2final”  Of course you can enter any name for your database you wish and just adjust the configurations to follow; this is just the name the official documentation suggests.
  4. Now, with mysql still open, create the mysql user that will access the database for openmeetings: mysql> GRANT ALL PRIVILEGES ON open2final.* TO 'openmeetings'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
    • Again, the name/password are pulled directly from the official documentation; call it whatever you like and adjust the settings below accordingly.
    • “open2final” is the database we gave the user access to,
    • “openmeetings” is the database username
    • “123456” is the password for the user openmeetings

Go ahead and quit out of your mysql terminal by typing “quit” and hitting enter.

Step 7:  Finally install the software you were after the whole time

So yea, finally we get to install Openmeetings.  Here’s how:

  1. Go to openmeetings.apache.com and download the latest version ending in tar.gz.  (Zip will work too, but I’ll be doing the commands for tar.gz)
  2. $ cd /opt
  3. $ tar zxf /wherever/you/downloaded/openmeetings/to/apache-openmeetings-2.1.whatever.the.version.you.downloaded.tar.gz
  4. Now rename the Openmeetings directory: mv apache-openmeetings-version/ red52/ (I don’t know why they call it red52 but it works with the install process)
  5. To get rid of the compressed file: $ rm /wherever/you/downloaded/openmeetings/to/apache-openmeetings-2.1.whatever.the.version.you.downloaded.tar.gz
  6. Backup the original configuration file: $ mv /opt/red52/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml /opt/red52/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml-ori
  7. Create a new configuration file from template: $ mv /opt/red52/webapps/openmeetings/WEB-INF/classes/META-INF/mysql_persistence.xml /opt/red52/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml
  8. Now we need to edit that configuration file: $ sudo nano /opt/red52/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml
    1. Once in persistence.xml, we’re here to change the database settings.
    2. Look for the line that contains: Url=jdbc:mysql://localhost:3306/openmeetings
    3. Change “openmeetings” in that line to “open2final” …or whatever you ended up calling your database.
    4. Then find the line containing :  Username=root
    5. Change “root” to “openmeetings” or whatever you named your mysql user above.
    6. And add the password to the line:  Password="/> so that it reads  Password=123456"/> or whatever password you gave your msql user.

Step 8:  Connect Openmeetings to MySQL

Wait, I know what you’re thinking “didn’t I just do that?”  Nope, not yet.  We need a little java-script package so that your username and password above can actually log into the database and do their thing.  (That’s as far as I’ll go into it… because that’s possibly a bit further than I understand it.)

Anyway, carry out the following:

  1.  $ cd /opt
  2. Download the connector from here: http://dev.mysql.com/downloads/connector/j/
  3. Copy the zip file into /opt/
  4. $ unzip mysql-connector-java-5.1.23.zip
  5. $ cp /opt/mysql-connector-java-5.1.23/mysql-connector-java-5.1.23-bin.jar /opt/red52/webapps/openmeetings/WEB-INF/lib
  6. $ rm mysql-connector-java-5.1.23.zip
  7. $  rm -R mysql-connector-java-5.1.23/
  8. $ mv red52/ /usr/lib
  9. $ chown -R nobody /usr/lib/red52

Step 9: Install the JOD converter

The JOD converter is the thing that allows Openmeetings to talk with WhateverOffice.

So monkey see monkey do:

  1. $ cd /opt
  2. $ wget http://jodconverter.googlecode.com/files/jodconverter-core-3.0-beta-4-dist.zip
  3. $ unzip jodconverter-core-3.0-beta-4-dist.zip
  4. $ rm jodconverter-core-3.0-beta-4-dist.zip

Step 10: Get the Red5-OpenMeetings Script

I found this step was especially confusing in the documentation and I really didn’t understand what was going on until I did some hunting around.  Red5 is the Openmeetings install script and can be found here:

https://cwiki.apache.org/confluence/download/attachments/27838216/OpenMeetings+2.x+run+script+Ubuntu.zip?version=1&modificationDate=1360140102000

But depending on this or that, the script needs to be modified, so I’ve saved you a little hunting/typing see below:

  1. Here’s the directory that the install script (red5) needs to go to: $cd /etc/init.d/
  2. Download from one of the two links:
    1. If you are using OpenOffice: $ wget https://dl.dropboxusercontent.com/u/11993667/OpenofficeRed5/red5
    2. If you are using LibreOffice: $ wget https://dl.dropboxusercontent.com/u/11993667/LibreofficeRed5/red5
  3. Make sure it’s executable: $ chmod +x /etc/init.d/red5

Step 10: Run Openmeetings!

Ok just a few final instructions here:

  1. $ /etc/init.d/red5 start
  2. You will get some sort of message to the following effect: start-stop-daemon: --start needs --exec or --startas  Try 'start-stop-daemon --help' for more information.  Just ignore it, everything should be fine.
  3. Give it a minute, then open your browser and go to: http://localhost:5080/openmeetings/install
  4. You should see the following page: Installation
  5. Click Continue with step 1
  6. Then you’ll get this:userinfo
    1. Configure your administrator name
    2. Give your admin a password
    3. enter your email address
    4. Enter your time zone and the rest
  7. Then you should get a page presenting you with a few technical options:paths
    1. Your JOD path should be /opt/jodconverter-core-3.0-beta-4/lib
    2. Configure any other unique settings (folks who complied FFMPEG from scratch, I might be looking in your direction)
  8. Scroll down and click install.
  9. Grab a snack and come back. (Actually it only took a minute or so on mine)
  10. And you should get an affirming message in your browser.

To Get at Openmeetings

To access openmeetings for general use as an admin, go to http://localhost:5080/openmeetings/

There you should be asked for your username and password and then be free to go.

Anyway, that’s all!  Enjoy!  Openmeetings is a really great program and a lot of smart folks have apparently put a lot of work into it and are continuing to do so.

In the likely event that I screwed something up above, please do let me know.

Notice: I did pluck the pictures above from other documentation I found on the Apache Openmeetings site.  I figured they were used to promote the software and the writer wouldn’t mind me posting them to help users out.  If the owner has an issue with this, for whatever reason, please give me a shout and I’ll take them down and snap my own instead.

t http://mysql.azc.uam.mx/Downloads/Connector-J/mysql-connector-java-5.1.23.zip

How to install Open Meetings on Ubuntu 12.04

Solution: E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)

So occasionally I’ll end up closing out of an update or something else will happen and then next time I use my package manager, I’ll get an error something like this

E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)

Anyway, I’ve found a quick little trick to help this situation.  Type

sudo dpkg –install

And it usually shakes off the nonsense for me.  Don’t know why, but it does.

Solution: E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)