How to improve the Ruby on Rails experience for next Ubuntu release ?

There have been some discussions during the last two Ubuntu Developer Summits about improving the Ruby on Rails experience in Ubuntu. Thoughts have been collected in a blueprint and preliminary work has been outlined in the RubyOnRailsStack wiki page. The content deals primarily with hosting RoR applications and is based around apache2 configured as a reverse proxy for Mongrel.

A higher level issue is related to deployment workflow. The question is how can Ubuntu be improved to streamline RoR application deployment ? Every system administrator has its own scripts to deploy Rails applications – are there any patterns there ? Could these be integrated into Ubuntu ? How do you manage the development-testing-production cycle of Rails application deployment ?

The Ubuntu Server Team is looking for input of Rails users. Add your feedback to the discussion section on the RubyOnRailsStack page and help us shaping out a rock-solid RoR experience for Intrepid Ibex.

14 Responses to “How to improve the Ruby on Rails experience for next Ubuntu release ?”


  1. 2 Tim Tuesday, 8 July 2008 at 6:39 am

    Rails is under rapid development. The version that shipped with Hardy is already outdated. Rails web hosting stacks are plentiful and rapidly evolving themselves (mongrels behind nginx/Apache, thin behind nginx/Apache, mod-rails/Apache, etc.).

    Mongrel behind Apache sounds like a good choice for getting a development machine up & running, or running a small web site. As long as the different stack options are battling it out you will find that every rails developer has a different stack that they prefer.

    I would like to see Ubuntu improve their gem support or take the gems package out entirely. Right now it runs into weird issues when you run ‘gem update –system’ for example, and I wish I had just installed gems from the tar installer instead of apt.

    Nginx support is important for many people running production rails web servers. I was very happy to see it as part of the standard repositories in 8.04 but unfortunately the version shipped with Hardy is also quite a bit behind already.

  2. 3 garg Tuesday, 8 July 2008 at 12:35 pm

    An option would be nice just like there is an option for LAMP

  3. 4 ralph Tuesday, 8 July 2008 at 8:40 pm

    1. include phusion in the stack
    2. include monit in the stack

  4. 5 Phil Tuesday, 8 July 2008 at 10:12 pm

    It’s already pretty easy if you use nginx instead of apache and use a manually-installed rubygems instead of apt-get.

    The biggest hiccup has been the fact that the debian-packaged rubygems puts things in places that aren’t on users’ PATHs, so “gem install rails” doesn’t work as expected because the “rails” executable is not available without adding to your PATH.

    As I understand it this is just due to an insistence from Debian that rubygems be packaged in a way that is contrary to users’ expectations but compliant with LSB. I don’t know if anything can be done about this by Ubuntu except packaging a pristine rubygems instead of using Debian’s. Everyone I know installs rubygems from source instead of relying on apt-get precisely because of this issue. It would be great if Ubuntu chose to be more useful (dare I say… human?) at the expense of being LSB-compliant.

    As a ruby library maintainer, I’ve come to accept the fact that even the debs shipped with an up-to-date distro like Ubuntu will be out of date and that rubygems is often the only way to get the versions you need. Ruby libraries are developed at a very fast pace; it’s even increasing with github-distributed gems. If I were working on Ubuntu, I would simply come to embrace this and focus on making rubygems work great out of the box with Ubuntu servers rather than duplicating effort by double-packaging libraries. Being able to rely on “apt-get install rubygems” would be a great first step.

    See https://bugs.launchpad.net/ubuntu/+source/ruby1.8/+bug/145267

  5. 6 Tom Wednesday, 9 July 2008 at 5:52 am

    Please don’t. Many developers would prefer to use Merb, Ramaze, Camping, or one of the other twenty Ruby Web frameworks.

    Do the best you can to have solid Ruby support; do not favor one Ruby Web tool over others.

  6. 7 Leonardo Faria Wednesday, 9 July 2008 at 2:02 pm

    my suggests:

    include mod_rails, rails and main gems.

    and if possible, nginx and mongrel.

  7. 8 Ninh Thursday, 10 July 2008 at 4:13 pm

    @Tom:
    Well, if the Ubuntu guys choose to go with Phusion Passenger(tm) (a.k.a. mod_rails/mod_rack), then those developers should be just fine seeing as it also supports Rack and even WSGI ;-) . Through Rack, developers should be able to use any Ruby framework that has a Rack adapter available for it, which among many others, include Merb and Camping. The same goes for WSGI with regards to Python frameworks, which for one, allows you to deploy Django apps as well. All with the same ease of use :-) For more information on the features of Phusion Passenger, please see: http://www.modrails.com/ and http://phusion.nl/assets/phusion_rubyenrails2008.swf

    Cheers,
    Ninh
    – Phusion.nl

    P.s. Thanks PeterC for the heads-up :-)

  8. 9 mathew Saturday, 12 July 2008 at 3:33 am

    The best thing you could do would be to fix Ruby in general; however, that would require diverging significantly from Debian. Unfortunately, the Debian packagers were utterly unwilling to compromise and work with the Ruby developers to achieve a packaging of Ruby that actually worked properly out of the box.

  9. 10 Neil Wilson Sunday, 13 July 2008 at 7:22 am

    I have to say I’m somewhat surprised about this sort of response, when the Passenger package is already in Ubuntu REVU. https://bugs.edge.launchpad.net/ubuntu/+bug/246719

    To get that in the archive you need to be lobbying the MOTUs to get them to review the package.

  10. 11 Neil Wilson Sunday, 13 July 2008 at 7:30 am

    At Brightbox we obviously deliver Rails to customers using Ubuntu Server, and we’re quite happy for that technology to be fed back into the main release LAMP style.

    We’re working on the main problems at the moment which are

    - Rubygems not activating gems by defaults. (Already kicked off: https://bugs.edge.launchpad.net/ubuntu/+source/libgems-ruby/+bug/145267)
    - Gems standing on apt packages and vice versa
    - Lack of Phusion Passenger support.
    - Poor to non-existent mongrel cluster support.
    - Difficulty of generating apt packages from Gems
    - Which causes a general lack of packaged gems.
    - Lack of effective Rails packaging.
    - Inability to switch Ruby backends easily – again due to bad packaging support.

  11. 12 David P Sunday, 13 July 2008 at 4:30 pm

    Im the author of the original spec, and wiki pages, We’ve recently decided to go with passenger/rack/apache, anyone wishing to contribute should subscribe to the spec, and shoot me an email. Thanks to the author of this for getting it out in the blogsphere.

  12. 13 Joran Sunday, 21 December 2008 at 7:12 am

    Phil has a great point. That’s an instant win. Otherwise, I’ve tried Nginx/Thin, Apache/Mongrel, Apache/Passenger, and Passenger is certainly ahead of the pack. I would prefer Nginx to Apache but for the use of Passenger, the switch to Apache is justified. Passenger is much simpler, much easier to maintain. And memory usage is certainly less. Less leaks.


  1. 1 Ubuntu Server Team Needs Help With Rails Experience Trackback on Monday, 7 July 2008 at 11:56 pm

Leave a Reply




The Ubuntu Server Team

RSS Dustin Kirkland’s Ubuntu Server posts

  • Results of the Ubuntu Virtualization Survey
    A big thanks to everyone that participated in the Ubuntu Virtualization Survey. I am pleased to share the results with you now.ResultsAnswersI will provide a few of my own observations, but we are very interested in your own conclusions!There were a total of 354 responses -- excellent feedback!Nearly 2/3 of all responders use virtualization on Ubuntu every d […]
  • Introducing Testdrive!
    I'm pleased to introduce a new package I have created for Ubuntu called testdrive!Testdrive makes it simple to run any Ubuntu release in a virtual machine, safely, and without affecting your current Ubuntu installation.This is a great way to "try out" the Ubuntu release beyond your current version, before upgrading. For example, if you're […]
  • Ubuntu 9.10 Byobu and OpenWeek Session
    I thought I would provide a brief set of highlights about Byobu accomplishments during the Karmic development cycle, now that we have released Ubuntu 9.10. Also, I'd like to promote my Ubuntu Open Week Presentation on Byobu, which is scheduled for 18:00 UTC, tomorrow, Tuesday November 3, 2009. It will included a live demonstration, in Amazon EC2. Be pre […]

RSS Kees Cook’s Ubuntu Server posts

  • install from official repositories only
    As quickly pointed out by Rick, don’t install random software that isn’t in the official distribution archive unless you really know what you’re doing (and copy/pasting commands from a website doesn’t count). You’re just asking to be made part of a botnet.
  • karmic and log rotation
    In Ubuntu’s Karmic and and Debian’s Lenny, sysklogd was replaced with rsyslog. This is fine, since rsyslog will have converted your /etc/syslog.conf to /etc/rsyslog.d/50-default.conf. However, if you modified the (maddeningly strange sysklogd-specific) log file rotation in /etc/cron.daily/sysklogd or /etc/cron.weekly/sysklogd, you’ll want t […]
  • TPM as RNG
    I was reminded about some TPM coding I’d done to get random bytes from the pRNG on my TPM-enabled system from Matt Domsch’s recent post. I’m not fully convinced that the pRNG of the TPM is an appropriate source of entropy, but it does pass my simple FIPS-140-2 test. I had to find the Intel TPM docs to figure out how to enable TPM on my syst […]

RSS Mathias Gug’s Ubuntu Server posts

  • RFP: packages to promote to main and demote to universe for Lucid Lynx LTS
    The Ubuntu Server team is requesting feedback on the list of packages to be promoted to main and demoted to universe during this release cycle. Lucid being an LTS release we wanna make sure that packages in main are maintainable for 5 years.  Useful packages should be promoted to main while packages that provide duplicated functionalities or are not maintain […]
  • Sep 20 – Sep 25 Wrap-up
    Spent most of my week in Portland to attend conferences. Conferences Attended LDAPCon 2009 and published report. Attended LinuxCon 2009. Image Store Proxy Updated image-store-proxy to 1.0. This version brings support for gpg signed images. Still need testing against the real-world Canonical Image Store infrastructure.
  • A summary of LDAPCon 2009
    On Sunday, September 20th and Monday, September 21st I attended LDAPCon 2009 in Portland, OR. Most of the open source projects were there – with the notable absence of Port 389 (Redhat) – as well as some vendors (Apple and UnboundID). Most of the slides are available online. Apache Directory project The Apache Directory folks gave several present […]

RSS Thierry Carrez’s Ubuntu Server posts

  • UDS Lucid
    This week, Dallas hosts the Ubuntu Developer Summit for the Lucid Lynx release. This is the key moment where we define what will be done for Ubuntu 10.04 LTS, and discuss how it will be done. There will be plenty of interesting sessions in all the tracks, and sometimes I wish I could attend two sessions at the same time. In the server track, Monday will have […]
  • Run your own Ubuntu Enterprise Cloud, part 3
    In part 1 and part 2 of this series, we saw how to set up a minimal cloud infrastructure and bundle a basic image (and test it). In this final article, we’ll play with our cloud from an end-user perspective. Setting up the web UI First of all, before accepting end users, as the administrator of the cloud you will have to setup a few things on the web U […]
  • Run your own Ubuntu Enterprise Cloud, part 2
    In part 1 of this series, we saw how to install the cloud infrastructure. In this article, we’ll bundle and upload an EMI (Eucalyptus Machine Image), based on Ubuntu Server 9.10 Beta, and validate that we can run an instance of it. Download required elements Go to the cloud/cluster controller and download the required items. For a 64-bit image: $ URL= […]

RSS Jamie Strandboge’s Ubuntu Server Posts

RSS Soren Hansen’s Ubuntu Server Posts

  • What Ubuntu Server *could* be
    I'm glad Thierry started this discussion. About six months ago when we were first beginning to talk about what to do in Jaunty, I sat down and wrote a bunch of notes that I meant to turn into a blog post, but it never made it farther than an e-mail to a few people, but now that we're sharing visions, I thought I'd post it. Disclaimer: These ar […]
  • gtk-vnc and virt-viewer mozilla plugins
    Another cool thing that's new in Jaunty that I've never gotten around to bloggin about is the fact that the virt-viewer and gtk-vnc packages in Ubuntu now provide mozilla-virt-viewer and mozilla-gtk-vnc, respectively. This means you can now put something like or this: in a web page and have access to virtual machines or other VNC servers directly i […]
  • Announcing Eucalyptus
    I'm very pleased to announce the availability of Eucalyptus in Ubuntu Jaunty Jackalope! From the package description: EUCALYPTUS is an open source service overlay that implements elastic computing using existing resources. The goal of EUCALYPTUS is to allow sites with existing clusters and server infrastructure to co-host an elastic computing service th […]

 

July 2008
M T W T F S S
« Jun   Aug »
 123456
78910111213
14151617181920
21222324252627
28293031