ホーム DoRuby MacPorts で /opt/local/bin/perl が無くなってしまった時の対処方法

MacPorts で /opt/local/bin/perl が無くなってしまった時の対処方法

この記事はアピリッツの技術ブログ「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をインストールすれば良いでしょう。

記事を共有

最近人気な記事