From: Jim Greer Date: 2003-05-07T22:27:50+09:00 Subject: Re: A wishlist for a "Ruby Standard Library" [ I've had my morning coffee and I'm feeling a bit verbose... bear with me. ] * Aredridel (aredridel@nbtsc.org) [030506 12:50]: > > 1. I do favor a "relatively lean and mean" Ruby installation. > > Some of the "extras" should be included, but most should not. > > I agree here -- have a way to strip the distribution to minimal size, > for a project/area where that's neccesary. In PHP, that's with > --disable=all to ./configure; to Ruby, that might be downloading a small > package or a similar situation as PHP. Just out of curiousity: anybody else here running ruby on Debian? I run both Debian and some RPM based distros. One of the things that Debian seems to do a better job of, IMO, is splitting up packages and arranging access to stable and development versions simultaneously. On Debian Unstable I currently have access to: # apt-cache search ruby | grep ruby dpkg-ruby - ruby interface for dpkg drb - distributed ruby eruby - Embedded Ruby Language libalgorithm-diff-ruby - Ruby conversion of the Perl's Algorithm::Diff libamstd-ruby - AMbitious STanDard library for Ruby libapache-mod-ruby - Embedding Ruby in the Apache web server libart-ruby - Ruby binding of libart libbsearch-ruby - a binary search library for Ruby libcsv-ruby - Ruby library to parse or generate data in CSV format libcurses-ruby - Curses interface for Ruby libcurses-ruby1.7 - Curses interface for Ruby. libdb-ruby - An interface to Berkeley DB for Ruby libdb2-ruby - Interface to Berkeley DB for Ruby libdb3-ruby - Interface to Berkeley DB for Ruby libdb4.1-ruby - Interface to Berkeley DB for Ruby libdbd-mysql-ruby - Ruby/DBI driver for MySQL libdbd-pg-ruby - Ruby/DBI driver for PostgreSQL libdbi-ruby - Database Independent Interface for Ruby libdbm-ruby - DBM interface for Ruby libdbm-ruby1.7 - DBM interface for Ruby. libdebconf-client-ruby - uses debconf from Ruby libdevel-logger-ruby - log dumping utility for ruby libeb-ruby - EB library interface for the Ruby liberuby - Library for eruby liberuby-dev - Development files for liberuby libexif-ruby - EXIF tag parsing Library for ruby libfam-ruby - FAM extension module for programming language Ruby libfilesystem-ruby - Ruby extension for file-system information libgd-ruby - An extension library to use gd graphics library from Ruby libgdbm-ruby - GDBM interface for Ruby libgdbm-ruby1.7 - GDBM interface for Ruby. libgdk-imlib-ruby - Gtk+ and gdkimlib interface for Ruby libgdk-pixbuf-ruby - Gtk+ and gdkpixbuf interface for Ruby libglade-ruby - Libglade wrapper for Ruby libgnome-ruby - Gnome interface for Ruby libgtk-ruby - Gtk+ interface for Ruby libhtml-parser-ruby - HTML parser library for Ruby libhtml-template-ruby - A Ruby Class to use HTML Templates libhttp-access2-ruby - HTTP accessing library for ruby libiconv-ruby - A Wrapper class of iconv for the Ruby libiconv-ruby1.7 - A Wrapper class of iconv for the Ruby libimlib2-ruby - Imlib2 extension module for programming language Ruby libintl-gettext-ruby - A simple wrapper of GNU gettext for ruby. libjttui-ruby - Jakub Travnik's textmode user interface (JTTui) for Ruby libkakasi-ruby - KAKASI interface for scripting language Ruby. libldap-ruby - Ruby/LDAP module providing an interface to OpenLDAP library libmutexm-ruby - yet another mutex library for Ruby libmysql-ruby - mysql module for Ruby libnet-acl-ruby - Simple Access Control Class for Ruby libnet-irc-ruby - a Ruby library for IRC (Internet Relay Chat) libopenssl-ruby - OpenSSL interface for Ruby liboptparse-ruby - A command line option parser class for Ruby. libpcap-ruby - libpcap interface for scripting language Ruby. libpgsql-ruby - PostgreSQL extension module for programming language Ruby libprogressbar-ruby - A Text Progress Bar Library for Ruby libpty-ruby - pseudo tty interface for Ruby libpty-ruby1.7 - pseudo tty interface for Ruby. libracc-runtime-ruby1.7 - Runtime library for parser which is generated by Racc. librd-ruby - library for RD document libreadline-ruby - Readline interface for Ruby libreadline-ruby1.7 - Readline interface for Ruby. librexml-ruby - pure Ruby non-validating XML parser supporting Namespaces, XPath librmail-ruby - lightweight mail library for Ruby libromkan-ruby - a Romaji <-> Kana conversion library for Ruby libruby - Libraries necessary to run Ruby libruby-dbg - Debugging libraries for Ruby libruby1.7 - Libraries necessary to run the Ruby. libsdbm-ruby - SDBM interface for Ruby libsdbm-ruby1.7 - SDBM interface for Ruby. libsdl-ruby - Ruby/SDL interface for Ruby libshadow-ruby - Interface of shadow password for the scripting language ruby. libsqlrelay-ruby - SQL Relay Ruby API libstrscan-ruby - Fast string scanning library for Ruby libstrscan-ruby1.7 - Fast string scanning library for Ruby. libsufary-ruby - Ruby module for SUFARY. libsyslog-ruby - UNIX syslog(3) interface for Ruby libsyslog-ruby1.7 - UNIX Syslog extension for Ruby libtcltk-ruby - Tcl/Tk interface for Ruby libtcltk-ruby1.7 - Tk interface for Ruby. libtest-unit-ruby - unit-testing framework for the Ruby language libtest-unit-ruby1.7 - unit-testing framework for the Ruby language libtk-ruby - Tk interface for Ruby libtk-ruby1.7 - Tk interface for Ruby. libtmail-ruby - mail class library for Ruby libuconv-ruby - Encoding translation module for Ruby supported Unicode and EUC-JP libvorbisfile-ruby - Ogg Vorbis support library for Ruby libwebrick-ruby - Simple HTTP Server Toolkit for Ruby libwidestudio-ruby - Ruby module for WideStudio libwrap-ruby - TCP wrappers library for Ruby libxml-parser-ruby - The interface of expat for the scripting language Ruby. libxmms-ruby - XMMS extension module for programming language Ruby libyaml-ruby - YAML for Ruby libzlib-ruby - An extension library to use zlib from Ruby quantlib-ruby - Ruby bindings for the Quantlib Quantitative Finance library rdoc - Generate documentation from ruby source files ruby - An interpreter of object-oriented scripting language Ruby ruby-dev - Header files for compiling extension modules for the Ruby ruby-elisp - Emacs-lisp ruby-mode for Ruby ruby-eserver - Generic multi-threaded e-service server in Ruby ruby-examples - Examples about Ruby ruby-manual - Manual for the scripting language Ruby. ruby1.7 - An interpreter of object-oriented scripting language Ruby. ruby1.7-dev - Header files for compiling extension modules for the Ruby. ruby1.7-elisp - Emacs-lisp ruby-mode for Ruby. ruby1.7-examples - Examples for Ruby. rubybook - the "Programming Ruby" book rubymagick - Ruby interface for ImageMagick rubyunit - Simple testing framework for Ruby vim-ruby - Vi IMproved, with ruby scripting support libhonyaku-damashii-ruby - Honyakudamashii client library for Ruby libssl-ruby - OpenSSL interface for scripting language Ruby. I'm not necessarily advocating the use of .deb's as a distribution method anymore than I advocate RPMs as a general purpose method. I do think, though, that Debian offers useful clues as to how to separate and bundle bits o' ruby. As another example of packaging of language/extensions/libraries, see http://www.jpackage.org/ A project which packages Java. They have an interesting problem; how to produce packages for which they do not have the right to distribute the underlying source or .jar. To solve it, they produce source packages the require the user to download the associated source tar ball. They then automate the building of binary packages based on the source. Sounds good in practice, though there are still rough edges. They are currently in the midst of some kind of packaging transition (versioning??), which has inteferred with one's ability to install some packages (e.g. tomcat4). [ And, they use an apt-like mechanism to manage RPMS, but do not produce debs..... makes you want to go "huh?" ] > > 3. I also think that the contents of the RAA should be kept > > on the RAA site itself, instead of (in addition to?) keeping > > pointers to other sites. > > Yes. And mirrors. (And I'm not talking about emulating > prdownloads.sourceforge.net here, which is the /worst/ way to do it) Again, apt-get provides a useful example here. By default, the normal apt-get sources round-robin DNS to a set of mirrors, so that the user is unaware of this issue. Thanks for reading, Jim G -- Must I hold a candle to my shames? -- William Shakespeare, "The Merchant of Venice" James B. Greer [expires: 2004-12-27] 7F49 3D20 03C6 E859 E4F9 0735 E1F9 B259 21FA 1494