1. メンテナンス・トラブルシュート - ruby - ruby20 conflicts

 
1.1 結局 ports や pkg のモジュールバージョンを変更する話なのだ

1.1 結局 ports や pkg のモジュールバージョンを変更する話なのだ

 きっかけは ports のアップグレード中に発生しました。  いつものように ports のデータベースを更新して

> pkg version -vl "<"
vim-7.4.640                        <   needs updating (index has 7.4.648)
 vim のアップグレードが必要だな・・・と。

> portupgrade -vR vim
 すると

====> Compressing man pages (compress-man)
===>  Installing for ruby-2.1.5_2,1
===>  Checking if ruby already installed
===>   An older version of ruby is already installed (ruby-2.0.0.598_2,1)
      You may wish to ``make deinstall'' and install this port again
      by ``make reinstall'' to upgrade it properly.
      If you really wish to overwrite the old port of ruby
      without deleting it first, set the variable "FORCE_PKG_REGISTER"
      in your environment or the "make install" command line.
*** Error code 1

Stop in /usr/ports/lang/ruby21.
*** Error code 1

Stop in /usr/ports/lang/ruby21.
*** Error code 1

Stop in /usr/ports/editors/vim.
*** Error code 1
 ということで、vim は ruby-2.1.5_2,1 に依存していて ruby-2.1.5_2,1 をインストールしようとしているんだが ruby-2.0.0.598_2,1 があるために ruby-2.1.5_2,1 をインストールできないんだな・・・と。  ruby-2.0 を deinstall しようとして

> cd /usr/ports/lang/ruby20
> make deinstall
===>  Deinstalling for ruby20
===>   ruby20 not installed, skipping
 あれ? ruby20 がインストールされていない?

> pkg info | grep ruby
ruby-2.0.0.598_2,1             Object-oriented interpreted scripting language
ruby20-bdb-0.6.6_4             Ruby interface to Oracle Berkeley DB revision 2 or later
 はいってる・ぞ・と。よくわからないので、ruby20 を reinstall して deinstall しようと

> cd /usr/ports/lang/ruby20
> make reinstall
===>  Installing for ruby20-2.0.0.598_2,1
===>   ruby20-2.0.0.598_2,1 depends on package: libffi>=0 - found
===>   ruby20-2.0.0.598_2,1 depends on package: readline>=0 - found
===>   ruby20-2.0.0.598_2,1 depends on shared library: libyaml.so - found (/usr/local/lib/libyaml-0.so.2.0.4)
===>   ruby20-2.0.0.598_2,1 depends on shared library: libexecinfo.so - found (/usr/local/lib/libexecinfo.so.1)
/usr/local/lib/libyaml-0.so.2.0.4
/usr/local/lib/libexecinfo.so.1
===>   Registering installation for ruby20-2.0.0.598_2,1
Installing ruby20-2.0.0.598_2,1...
pkg-static: ruby20-2.0.0.598_2,1 conflicts with ruby-2.0.0.598_2,1 (installs files into the same place).  Problematic file: /usr/local/bin/erb20
*** Error code 70

Stop in /usr/ports/lang/ruby20.
*** Error code 1

Stop in /usr/ports/lang/ruby20.
*** Error code 1

Stop in /usr/ports/lang/ruby20.
 ruby20-2.0.0.598_2,1 と ruby-2.0.0.598_2,1 の間で conflict が発生しているぞ?なんか ports として別ものになっているようで。  しかし、ruby-2.0.0.598_2,1 というのがどこにあるのかわからない・・・!?  しかたないので、pkg delete することにしました。

> pkg delete ruby-2.0.0.598_2,1
Updating database digests format: 100%
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 4 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        ruby-2.0.0.598_2,1
        ruby20-bdb-0.6.6_4
        portupgrade-2.4.13_1,2
        vim-7.4.640

The operation will free 62 MiB.

Proceed with deinstalling packages? [y/N]:
 他のものはともかく portupgurade や vim がなくなるそうで、もともと vim はアップグレードの予定があったからよいようなものの、仕方ないですね。インストールすることを念頭にいれて、「y」

[1/4] Deinstalling portupgrade-2.4.13_1,2...
[1/4] Deleting files for portupgrade-2.4.13_1,2: 100%
[2/4] Deinstalling ruby20-bdb-0.6.6_4...
[2/4] Deleting files for ruby20-bdb-0.6.6_4: 100%
[3/4] Deinstalling vim-7.4.640...
[3/4] Deleting files for vim-7.4.640: 100%
[4/4] Deinstalling ruby-2.0.0.598_2,1...
[4/4] Deleting files for ruby-2.0.0.598_2,1: 100%
 ということで
/usr/ports/ports-mgmt/portupgrade
/usr/ports/editors/vim
 を reinstall やら install するやらで一件落着。