この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
こんにちは、たろちゃんです。MacPortsで/opt/local/bin/perlが無くなってしまってImageMagickがインストールできないという現象が起きたので対処してみました。
MacPortsは便利ですが、たまに依存関係などで問題が起きるケースがあります。
本日MacPortsをアップデートしたところ、ImageMagickがインストールできないというエラーが発生しました。
行ったコマンドは以下の通りです。
$ sudo port selfupdate
$ sudo port upgrade outdated
たったこれだけでエラーになりました。ログを確認すると”/opt/local/bin/perl”が存在しないため、ImageMagickのインストールに失敗しているようです。
Perlの変更点を確認したところ、“Changeset 76485”にて以下の修正があったのが原因のようでした。
change perl5.* ports to do +mangle_names by default
change perl5 to link perl5.x pieces to their non-mangled names
change perl5 to default to perl5.12
この修正点でperl5.12がデフォルトになるのですが、perl5.12側のアップデートの歳にperl5を消してしまうように動いてしまうため、/opt/local/bin/perlが消えてしまったようです。
なので、以下のようにしてperl5を再インストールしました。
$ sudo port install perl5
あとは先ほど失敗したupgradeをやり直してあげます。
$ sudo port upgrade outdated
これで無事ImageMagickがインストールされました。
なお、perl5はデフォルトでperl5.12を使うようになりますが、これはperl5のvariantsで設定された値がデフォルトで5.12ということになります。
Wisp:~ btm$ port variants perl5
perl5 has the variants:
perl5_10: use perl 5.10 instead of perl 5.8 or perl 5.12
* conflicts with perl5_12 perl5_8
[+]perl5_12: use perl 5.12 instead of perl 5.8 or perl 5.10
* conflicts with perl5_10 perl5_8
perl5_8: use perl 5.8 instead of perl 5.10 or perl 5.12
* conflicts with perl5_10 perl5_12
perl5.8やperl5.10を使いたい場合は、variantsに指定してperl5をインストールすれば良いでしょう。