- 1. 結局 ports や pkg のモジュールバージョンを変更する話なのだ
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 するやらで一件落着。
|