Ruby Enterprise Edition is a server-oriented friendly branch of Ruby which includes various enhancements:
* A copy-on-write friendly garbage collector. Phusion Passenger uses this, in combination with a technique called preforking, to reduce Ruby on Rails applications’ memory usage by 33% on average.
* An improved memory allocator called tcmalloc, which improves performance quite a bit.
* The ability to tweak garbage collector settings for maximum server performance, and the ability to inspect the garbage collector’s state. (RailsBench GC patch)
* The ability to dump stack traces for all running threads (caller_for_all_threads), making it easier for one to debug multithreaded Ruby web applications.
More on Ruby Enterprise Edition’s website:
http://www.rubyenterpriseedition.com/
Download source rpm:
ruby-enterprise-1.8.7-1.el5.src.rpm
Build rpm package using rpmbuild:
[vitalie@silver SRPMS]$ rpmbuild --rebuild --define 'dist el5' ruby-enterprise-1.8.7-1.el5.src.rpm Installing ruby-enterprise-1.8.7-1.el5.src.rpm Executing(%prep): /bin/sh -e /home/vitalie/rpmbuild/tmp/rpm-tmp.89437 + umask 022 + cd /home/vitalie/rpmbuild/BUILD + LANG=C + export LANG + unset DISPLAY + cd /home/vitalie/rpmbuild/BUILD + rm -rf ruby-enterprise-1.8.7-20090928 + /bin/gzip -dc /home/vitalie/rpmbuild/SOURCES/ruby-enterprise-1.8.7-20090928.tar.gz + tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd ruby-enterprise-1.8.7-20090928 ++ /usr/bin/id -u + '[' 500 = 0 ']' ++ /usr/bin/id -u + '[' 500 = 0 ']' + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /home/vitalie/rpmbuild/tmp/rpm-tmp.89437 + umask 022 + cd /home/vitalie/rpmbuild/BUILD + cd ruby-enterprise-1.8.7-20090928 + LANG=C + export LANG + unset DISPLAY + ./installer --auto /usr/local --dont-install-useful-gems --destdir /home/vitalie/rpmbuild/tmp/ruby-enterprise-1.8.7-20090928-root-vitalie [...] Provides: ruby-enterprise(rubygems) = 1.3.2 Requires(interp): /bin/sh Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(VersionedDependencies) <= 3.0.3-1 Requires(pre): /bin/sh Requires: /usr/local/bin/ruby ruby-enterprise >= 1.8 Processing files: ruby-enterprise-debuginfo-1.8.7-1.el5 Provides: bigdecimal.so.debug()(64bit) bubblebabble.so.debug()(64bit) cparse.so.debug()(64bit) curses.so.debug()(64bit) dbm.so.debug()(64bit) digest.so.debug()(64bit) dl.so.debug()(64bit) etc.so.debug()(64bit) fcntl.so.debug()(64bit) gdbm.so.debug()(64bit) iconv.so.debug()(64bit) libtcmalloc_minimal.so.0.0.0.debug()(64bit) md5.so.debug()(64bit) nkf.so.debug()(64bit) openssl.so.debug()(64bit) pty.so.debug()(64bit) readline.so.debug()(64bit) rmd160.so.debug()(64bit) sdbm.so.debug()(64bit) sha1.so.debug()(64bit) sha2.so.debug()(64bit) socket.so.debug()(64bit) stringio.so.debug()(64bit) strscan.so.debug()(64bit) syck.so.debug()(64bit) syslog.so.debug()(64bit) thread.so.debug()(64bit) wait.so.debug()(64bit) zlib.so.debug()(64bit) Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/vitalie/rpmbuild/tmp/ruby-enterprise-1.8.7-20090928-root-vitalie Wrote: /home/vitalie/rpmbuild/RPMS/x86_64/ruby-enterprise-1.8.7-1.el5.x86_64.rpm Wrote: /home/vitalie/rpmbuild/RPMS/x86_64/ruby-enterprise-rubygems-1.3.2-1.el5.x86_64.rpm Wrote: /home/vitalie/rpmbuild/RPMS/x86_64/ruby-enterprise-debuginfo-1.8.7-1.el5.x86_64.rpm Executing(%clean): /bin/sh -e /home/vitalie/rpmbuild/tmp/rpm-tmp.76776 + umask 022 + cd /home/vitalie/rpmbuild/BUILD + cd ruby-enterprise-1.8.7-20090928 + rm -rf /home/vitalie/rpmbuild/tmp/ruby-enterprise-1.8.7-20090928-root-vitalie + exit 0 Executing(--clean): /bin/sh -e /home/vitalie/rpmbuild/tmp/rpm-tmp.76776 + umask 022 + cd /home/vitalie/rpmbuild/BUILD + rm -rf ruby-enterprise-1.8.7-20090928 + exit 0
Alternatively you can download just spec file and grab sources from the REE’s website:
ruby-enterprise.spec
1 comment so far ↓
Hey,
I’m looking into building this with the latest tarball of REE source. When I was doing so I hit
installer.rb:428:in `chdir’: No such file or directory – /var/tmp/ruby-enterprise-1.8.7-2010.02-root-afairley/usr/local/lib/ruby/gems/1.8/gems (Errno::ENOENT)
from installer.rb:428:in `install_useful_libraries’
from installer.rb:66:in `start’
from installer.rb:696
error: Bad exit status from /var/tmp/rpm-tmp.59788 (%build)
It looks to me like the problem is a missing if guard
+if @install_useful_gems
Dir.chdir(”#{@destdir}#{@prefix}/lib/ruby/gems/1.8/gems”) do
if !Dir["sqlite3-ruby*"].empty?
# The sqlite3-ruby gem installs files with wrong
# permissions. We fix this.
sh “chmod -R g+r,o+r,o-w sqlite3-ruby*”
end
end
+end
Leave a Comment