macport で distfile がダウンロードできないとき

macport を認証 Proxy 環境で使用しているとまれに、Proxy の所為でパッケージの distfile がダウンロードできない事象が発生する。

例えば boost の場合

--->  Fetching distfiles for boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://freefr.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://heanet.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://internode.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://iweb.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://jaist.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://kent.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://liquidtelecom.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://nbtelecom.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://ncu.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://netassist.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://netcologne.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://netix.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://skylineservers.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://skylink.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://superb-dca2.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://tcpdiag.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://tenet.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://ufpr.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://vorboss.dl.sourceforge.net/project/boost/boost/1.59.0
--->  Attempting to fetch boost_1_59_0.tar.bz2 from https://distfiles.macports.org/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://aarnet.au.distfiles.macports.org/pub/macports/mpdistfiles/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://cjj.kr.distfiles.macports.org/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://fco.it.distfiles.macports.org/mirrors/macports-distfiles/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://her.gr.distfiles.macports.org/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://jnb.za.distfiles.macports.org/distfiles/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://jog.id.distfiles.macports.org/macports/distfiles/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://lil.fr.distfiles.macports.org/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://mse.uk.distfiles.macports.org/sites/distfiles.macports.org/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://nou.nc.distfiles.macports.org/pub/macports/distfiles.macports.org/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://nue.de.distfiles.macports.org/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://osl.no.distfiles.macports.org/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://sea.us.distfiles.macports.org/macports/distfiles/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://ykf.ca.distfiles.macports.org/MacPorts/mpdistfiles/boost
--->  Attempting to fetch boost_1_59_0.tar.bz2 from http://svn.macports.org/repository/macports/distfiles/boost
Error: org.macports.fetch for port boost returned: fetch failed
Error: Failed to install boost

特定のパッケージだけではない場合はネットワークとか Proxy 設定とかを疑うのが正しいのだが、特定のパッケージだけで発生する場合、一体なにが原因なのかがよくわからない事が多い(大抵 Proxy 側の問題の方が多い気がする)。

そんな場合は、取得できない distfile をブラウザで取得し、/opt/local/var/macports/distfiles/ 以下に配置してあげればすんなりインストールできる。

boost の場合は以下に配置

/opt/local/var/macports/distfiles/boost

その後は普通に

$sudo port install boost