その他
    ホーム 技術発信 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をインストールすれば良いでしょう。

    記事を共有