ブラウザは SOCKS 経由で動きます。通常の SSH セッションも同様です。ところが MacPorts は ports tree の同期で止まります。さらに SSH の選択肢を足す前に、ソース URI を確認してください。

rsync://host/module は rsync デーモンのサービスを指します。rsync -e ssh user@host:path を使う例はリモートシェルを用い、そのホスト上の適切なアカウントへのアクセスを必要とします。公開 rsync ミラーは、クライアントに ProxyCommand があるからといって SSH ログインを得られるわけではありません。

前提条件が異なる 3 つの経路

経路何が必要か
HTTP または HTTPS による ports tree スナップショット対応するスナップショット元と動作する HTTP プロキシ設定
Web プロキシ経由の rsync デーモンRSYNC_PROXY を使う rsync クライアントと、デーモンのポートへの CONNECT を許可するプロキシ
SSH 上の rsyncSSH エンドポイント、アカウント、リモート側の rsync 構成

MacPorts は sources.conf に HTTP と HTTPS の tarball ソースを、通常の同期トランスポートが使えない場合の代替として記しています。インストール済みリリースに対してプロジェクトが対応するソースを選んでください。URI スキームの変更は、任意のアーカイブを指してよいという許可ではありません。

rsync の RSYNC_PROXY は Web プロキシの仕組みであり、汎用の SOCKS URL 設定ではありません。デーモン経由の経路は通常 873 番ポートを必要とし、それ以外は正常な Web プロキシが意図的に拒否することがあります。別個の RSYNC_CONNECT_PROG の仕組みは直接のデーモンソケットを補助プログラムに置き換えられますが、その補助は想定どおりのバイト列を流す必要があります。

最後に、MacPorts のどの段階が失敗したのかを確認してください。ports tree の更新、アーカイブの取得、port のソースファイルのダウンロードは、同じトランスポートを使うとは限りません。最初の経路を直しても、他の経路が同じプロキシを共有している証明にはなりません。

関連記事