Author: Dan Langille
Date: 10-12-01 21:11
The following notes were provided by Akinori MUSHA after he read the article.
Here is some background stories:
- Prior to 4.4-STABLE, the regular ruby binary that's installed from
the lang/ruby port used to install its dynamic modules under a
directory with a full (major and minor) system version.
("i386-freebsd4.3" for example)
- So, if you try to upgrade portupgrade, ruby and its modules,
portupgrade fails to load dynamic modules during the upgrading
process if the system was upgraded after the last time ruby and the
friends were installed.
- To cope with the problem, portupgrade and the friends were made to
restart itself with ruby_s[*] whenever it fails to load dynamic
[*] ruby_s is a statically linked version of the ruby interpreter
binary which you can install from the lang/ruby_static port.
At the same time, the runtime dependency to ruby_s was added to the
portugprade port to keep users away from this trouble.
- At some point of 4.4-STABLE, after the 4.4-RELEASE was released, the
ruby ports are changed to install dynamic modules under a directory
with only a system major version without a minor
version (i386-freebsd4 for example), so that one would not bother
having to rebuild and reinstall all the ruby modules.
- Then it was no loger unnecessary to have ruby_s unless one does
a major upgrade of the system, the ruby_s runtime dependency was
So, the only case where one bothers with ruby_s is when upgrading
portupgrade that was installed prior to the 4.4-RELEASE (before
4.3-STABLE) or the prevous major OS version to what is currently
installed (like when upgrading 4.4->5.0).
Since portupgrade became really popular after the 4.4-RELEASE, I
didn't particularly mention the above complex matters in the
I'll probably add some hack to automatically suggest installing ruby_s
as necessary in future, but for now, a piece of advice I can tell is
"install lang/ruby_static before using portupgrade if you have
upgraded your system across versions". I'd also like to emphasize
that it should be safe in theory to upgrade ruby, ruby-* and
portupgrade using portupgrade.