コンテンツに飛ぶ | ナビゲーションに飛ぶ

パーソナルツール
セクション
現在位置: ホーム rsyncが使えない環境でのMacPortsの設定

rsyncが使えない環境でのMacPortsの設定

ネットワーク外部にセキュリティなどの理由でrsyncのポートが開いていない環境でのMacPortsの設定方法を説明します.

追記(2017年1月4日)

HTTPS越しにGitでアップデートできるようになり, 下記のSubversionによるアップデートは
できなくなりました(レポジトリの更新が止まりました). Gitによるアップデート方法は, 次の
webページに記載されています.

 How to sync your ports tree using Git over HTTPS

上のページに記載されている設定を一通りしたのち,
sudo port -v sync
sudo port upgrade outdated
を実行することでアップデートできるはずです.
(以上, 2017年1月4日の追記)


MacPortsのselfupdateやsyncができない場合の対処は, ネットを探せばMacWikiやいくつかのウェブサイトで
見つけることができますが, 私の環境で必要な対処が一つのページにまとめられているサイトは見つけられなかった
ので, 一応まとめておきます.


問題となったこと

  • 学内から学外へrsyncが通らないので, rsync越しでのMacPortsの利用ができない.
  • Mac OS X Lion 以降, subversion (svn)が入っていないので, rsyncの代わりにsvnを利用する対処ができない.


Xcodeのインストール

まずMacPortsのインストールに必要なXcodeをインストールします。
お金はかかりませんが, Developerの登録(無料)が必要です.Developer登録が済んでいれば, Apple Developerから
Xcodeをダウンロードしてインストールして下さい.


Xcodeのコマンドラインツールをインストールする

学内から学外にrsyncが通らないので代わりにsvnを使います. Mac OS X 10.7 Lion 以降, svnが同梱されていないので,
Xcodeのコマンドラインツールを利用します. 具体的な手順はXcodeを起動した後,
Xcode → Preferences → Downloads → Command Line Tools → Install
でインストールすることができます.


MacPortsのインストール

MacPortsのウェブサイトからpkgファイルをダウンロードしてインストールします.


MacPortsの設定

MacPortsにrsyncを使わないことを教えるため, /opt/local/etc/macportsにあるsources.confを編集します.
編集にはroot権限が必要です. `su -'か`sudo vi'などでsources.confを編集して下さい.
(root権限の持たせかたが分からない場合は"Mac root権限"などでググって下さい.)

sources.confの行末にある,
rsync://rsync.macports.org/release/tarballs/ports.tar [default]
をコメントアウトして(行頭に"#"を追加する), 代わりに,
file:///opt/local/var/macports/sources/dports/ [default]
を追加して下さい.

次にMacPortsにsvnの場所を教えるために, sources.confと同じディレクトリにあるmacports.confをやはり
root権限で開いて, コメントアウトされている`binpath'を有効にします(行頭の"#"を消去する).


subversionの設定

proxy経由でsvnを使うための設定をします. ホームディレクトリから.subversionディレクトリに入り,
その中のserversファイル(~/.subversion/servers)を編集します.
ファイルの下の方に, [global]という項目があって, そこの
http-proxy-host
http-proxy-port
を設定して, 設定を有効にします(やはり行頭の"#"を消去する). 設定は例えば,
http-proxy-host=http://proxy.univ.ac.jp
http-proxy-port=1080
のようになります. プロキシサーバ名やポート番号は実際の環境に合わせて設定して下さい.
ホームディレクトリの.profileにもプロキシサーバの設定をしておきます. 上の例であれば,
export http_proxy=http://proxy.univ.ac.jp:1080
を追記します.
最後に, sudoしても環境変数"http_proxy"が引き継がれるように, visudoでsudoersファイルを編集します.
viでsudoersが開かれた後, "Defaults env_keep..."が続いている記述の末尾に続けて,
Defaults env_keep += "http_proxy"
を追記してファイルを保存して下さい.


MacPortsの更新

これでMacPortsを使う環境ができたので, MacPortsのソースをsvnで取ってきて, MacPorts自身の更新
(firewallなどがない環境では"port selfupdate"で済むもの)を以下のように実行します.
cd /opt/local/var/macports/sources
sudo svn co http://svn.macports.org/repository/macports/trunk/dports
cd dports
sudo portindex
sudo port -f install macports


MacPortsの更新(追記)

rsyncが通らない環境ではport selfupdateできません.
古いMacPortsのバージョンでは上述した方法でMacPortsの更新ができたのですが, 新しいバージョン
では, portコマンドによるMacPortsの更新ができなくなってます.
MacPorts.orgからMacPortsのインストーラをダウンロードして, 上書きインストールをして下さい.

古いバージョンではportのupdateもportコマンドから実行できていたのですが, 新しいバージョンでは
portのupdateをしようとするとエラーが出て, updateがそこで止まります. この場合,
sudo port uninstall MacPorts
を実行して, 古いMacPortsを消して下さい. MacPortsについて複数のバージョンが表示される場合には,
一つずつバージョンを指定して消して下さい. 全てのMacPortsを消したあと, インストーラを起動して,
新しいMacPortsを入れて下さい.


Port Treeの更新

上の手順で取得したPort Treeも時間が経てば古くなります. Port Treeの更新方法は以下の通り,
cd /opt/local/var/macports/sources/dports
sudo svn update
sudo portindex
インストール済みのパッケージを更新するには,
sudo port upgrade installed
を実行します.


パッケージの検索とインストール

蛇足ですが, 一応書いておくと, たとえばgnuplotを探してインストールしたい場合,
sudo port search gnuplot
sudo port install gnuplot


参考にしたウェブサイト