メンテナンス・トラブルシュート - pkg・ports アップデート関連 - pkg - reinstall

 クラウディア
1. 概要
1. 解決

1. 概要

 ちょっとした事情があって、「perl5.34」をインストールしている環境で、他の「pkg」をインストールすることによって「perl5.32」がインストールされちゃった・・・。  それで、「perl5.34」にアップグレードするときに

$ make install
===>  Installing for perl5-5.34.1_2
===>  Checking if perl5 is already installed
===>   Registering installation for perl5-5.34.1_2
Installing perl5-5.34.1_2...
pkg-static: perl5-5.34.1_2 conflicts with perl5.34-5.34.1_2 (installs files into the same place).  Problematic file: /usr/local/bin/perl5.34.1
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/lang/perl5.34
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/perl5.34
 とまぁ、実体がおる。  「make deinstall」もしたんだがな・・・。  「pkg」上は、インストールしておることになっている。  「pkg」でアップグレードしたことにしようと

$ pkg upgrade perl5.34
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
Your packages are up to date.
 これ以上、上がらんですと。  では、「reinstall」だなと

$ pkg reinstall perl5.34
pkg: unknown command: reinstall

For more information on available commands and options see 'pkg help'.
 わはは、そんなオプションはないものね。  本ページは、下記のサイトを参考にさせていただきました。
FreeBSD 8.4: pkg-static: perl5.16-5.16.3_12 conflicts with p5-CPAN-Meta-2.142690」
「pkg install / upgrade unable to reinstall existing packages · Issue #1339 · freebsd/pkg · GitHub

2. 解決

 これは

pkg upgrade -f perl5.34
 なのだ。  なるほどね、強制的アップグレードで、「reinstall」的な動きをさせるわけね。  とやって、「pkg upgrade」はエラーにならなかったものの、元々の根本的な問題は解決しない。  「perl5.34」が、インストールできないってことね。  で、下記で解決。

portupgrade -fr lang/perl5.34
 なるほど、これも「-f」で強制するわけね。