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