パーソナルツール
現在位置: ホーム / LyXの導入 / Mac OS Xへの導入 / プロキシ経由でMacPortsを使用するには

プロキシ経由でMacPortsを使用するには

外部から遮断されているネットワークからプロキシ経由でMacPortsを使用する方法を解説します。

MacPorts がソースツリーの取得や各ソフトウェアのソースの取得に使用しているrsyncは、HTTPプロクシを通過することができません。このため以下の作業を行って、rsync の代わりに、HTTPプロキシを通過できる svn を MacPorts に使わせるようにします。

  1. svn (Subversion)がシステムにあることを確認します(svn のなかった方はSubversionのページからバイナリをダウンロードするか、ソースを入手して svn をコンパイルしてください)。
  2. /opt/local/etc/macports/sources.conf に以下の行を加え、rsync:// で始まる行をコメントアウトします。
    file:///opt/local/var/macports/sources/dports/ [default]
    (通常、root 権限が必要と思われるので、ターミナルから sudo vi /opt/local/etc/macports/sources.conf などとして編集してください。vi が苦手な方は他のエディタを使ってください。)
  3. /opt/local/etc/macports/macports.conf の "binpath" で始まる行に、svn がインストールされたディレクトリが含まれていることを確認します(コマンドラインから「which svn」を実行して出力されるパスと同じものが書かれていればOK)。行頭に「#」があるとその行はコメントとして扱われるので、「#」を外します。
  4. ホームディレクトリの .profile に
    export http_proxy=http://プロキシサーバアドレス:ポート番号
    なる行を書き加えます。
  5. 上記で修正した .profile を読み込みなおすために、あたらしくターミナルを開きます。
  6. 以下のコマンドを実行して、svn でソースを取得(チェックアウト)します。
    cd /opt/local/var/macports/sources
    sudo svn co http://svn.macports.org/repository/macports/trunk/dports
  7. 爾後「sudo port -d sync」を実行すれば、rsync の代わりに svn をプロキシ経由で使ってソースツリーの更新がなされるようになります(ソースツリーは定期的に更新してください)。各ソフトウェアソースの取得の際も、http_proxy 環境変数が設定されているおかげで、プロキシ経由でなされます。
    なお、一定時間毎に自動的にソースツリーを更新させるには、/etc/crontabに「ports -d sync」コマンドを登録します(ただし、crontab ファイルで port へのパスを通しておくか、port  コマンドへのフルパスを指定すること)。たとえば、4時間ごと定時にソースツリーを更新するには、このファイルにroot権限で
    http_proxy=http://プロキシサーバアドレス:ポート番号
    0    */6    *    *    *    root    /opt/local/bin/port -d sync
    

    という行を書き加えます。

  8. 「Mac OS Xへの導入」の「ソースからのインストール」の3.から作業を続けてください。
  • 【註】port selfupdate は rsync を固定して使用するようになっているので、プロキシの背後では使用することができません。代わりに
    sudo port -f install macports
    

    を使用してください。

  • 【註】実行中のsvnをctl-Cなどで中断してしまうと、以下のように、lockファイルが残って次のsvnが実行できなくなることがあります。
    svn: Working copy '/opt/local/var/macports/sources/dports' locked
    svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
    
    この場合には、
    cd /opt/local/var/macports/sources/dports
    sudo svn cleanup
    と実行してください。