- 1. 概要
- 2. バージョンの変更
- 3. アップグレード
- 4. 再インストール
- 5. Redmine の対応
1. 概要
現在、2024年5月1日です。
「FreeBSD 14.0 RELEASE」と「FreeBSD 13.3 RELEASE」を運用しています。
「FreeBSD 13.2 RELEASE」「FreeBSD 14.0 RELEASE」の時期に、「ruby32」はリリースされていたかと思いますが、「portupgrade」が「ruby32」に対応していなかったので、あえて「ruby31」を使っていました。
「FreeBSD 13.3 RELEASE」では、デフォルトの「ruby」が「ruby32」のようで。
/etc/make.conf
には。
DEFAULT_VERSIONS+=ruby=3.1
と書いちょって。
$ ls -lah /usr/local/bin/ruby*
lrwxr-xr-x 1 root wheel 6 5月 1 08:59 /usr/local/bin/ruby -> ruby31
-rwxr-xr-x 1 root wheel 6.1K 5月 1 08:59 /usr/local/bin/ruby31
という状況なのですが。
/usr/local/bin/asciidoctor
ちゅう、ファイル(「ruby」のスクリプト)の中身は。
#!/usr/local/bin/ruby32
で、始まっちょる。
困ったもんです。
2. バージョンの変更
$ portupgrade -f ruby31 -o lang/ruby32
[Reading data from pkg(8) ... - 129 packages found - done]
$ pkg set -o lang/ruby31:lang/ruby32
Change origin from lang/ruby31 to lang/ruby32 for ruby-3.1.5,1? [y/N]:
最後の行は、y Enter を入力します。
vi /etc/make.conf
DEFAULT_VERSIONS+=ruby=3.1
の行を下記へ変更します。
DEFAULT_VERSIONS+=ruby=3.2
3. アップグレード
cd /usr/ports/lang/ruby32
make config
いままでの経験で、「DOCS」のオプションだけ、はずします。
アップグレード。
ここは、依存関係なし、強制アップグレードにします。
portupgrade -f ruby
これが、途中でこけました。
「make」が通って、インストールの箇所ですな。
===> Cleaning for ruby-3.2.4,1
---> Cleaning out obsolete shared libraries
/usr/local/lib/ruby/site_ruby/3.1/pkgtools/pkgtools.rb:487:in '__system': Command failed [exit code 127]: /usr/local/sbin/pkgdb -aFOQ (CommandFailedError)
from /usr/local/lib/ruby/site_ruby/3.1/pkgtools/pkgtools.rb:510:in '__sudo'
from /usr/local/lib/ruby/site_ruby/3.1/pkgtools/pkgtools.rb:516:in 'xsudo'
from /usr/local/lib/ruby/site_ruby/3.1/pkgtools/pkgdb.rb:1062:in 'autofix!'
from /usr/local/lib/ruby/site_ruby/3.1/pkgtools/pkgdb.rb:1058:in 'autofix'
from /usr/local/sbin/portupgrade:519:in 'block (2 levels) in main'
from /usr/local/sbin/portupgrade:855:in 'block in main'
from /usr/local/lib/ruby/3.1/optparse.rb:1102:in 'initialize'
from /usr/local/sbin/portupgrade:238:in 'new'
from /usr/local/sbin/portupgrade:238:in 'main'
from /usr/local/sbin/portupgrade:2380:in '<main>'
仕方ないなぁ。
cd /usr/ports/lang/ruby32
make
make reinstall
これで、「ruby」は、アップグレードできました。
4. 再インストール
本体は、アップグレードできましたが、依存するモジュールで、再インストールが必要です。
ってことで、依存の前の方からインストールやアップグレードを行っていきます。
「ruby-gems」の更新。
pkg delete ruby31-gems
で、いったん「ruby31-gems」を削除して再インストール。
cd /usr/ports/devel/ruby-gems
make clean
make
make reinstall
同じ要領で、「ruby-bdb」
pkg delete ruby31-bdb
cd /usr/ports/databases/ruby-bdb
make clean
make
make reinstall
「rubygem-rdoc」を再インストール。
cd /usr/ports/devel/rubygem-rdoc
make clean
make
make reinstall
「portupgrade」を再インストール。
cd /usr/ports/ports-mgmt/portupgrade
make clean
make
make reinstall
これで、「portupgrade」が動作するようになりました。
5. Redmine の対応
安心していたら、1台のマシンでは「apache」がこけておりました。
service apache24 configtest
すると、こんなエラーに。
Performing sanity check on apache24 configuration:
httpd: Syntax error on line 543 of /usr/local/etc/apache24/httpd.conf: Syntax error on line 7 of /usr/local/etc/apache24/Includes/redmine.conf: Cannot load /usr/local/lib/ruby/gems/3.1/gems/passenger/buildout/apache2/mod_passenger.so into server: Cannot open "/usr/local/lib/ruby/gems/3.1/gems/passenger/buildout/apache2/mod_passenger.so"
このマシンでは、「Redmine」をインストールしているので、「rubygem-passenger」を再インストールする必要があったのでした。
さらに「rubygem-passenger」は、「rubygem-etc」を必要としているらしいので・・・。
cd /usr/ports/devel/rubygem-etc
make clean
make
make reinstall
cd /usr/ports/www/rubygem-passenger
make clean
make
make reinstall
それから、「Redmine」のサイト定義を編集します。
vi /usr/local/etc/apache24/Includes/ファイル名.conf
下記のように記述している箇所がありますので。「3.1」を「3.2」へ「ruby31」を「ruby32」へと置換します。
LoadModule passenger_module /usr/local/lib/ruby/gems/3.1/gems/passenger/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/3.1/gems/passenger
PassengerRuby /usr/local/bin/ruby31
これで、「apache」を再起動したら、正常に動作するようになりました。
|