ラベル MacPorts の投稿を表示しています。 すべての投稿を表示
ラベル MacPorts の投稿を表示しています。 すべての投稿を表示

2011-01-08

MacportsのPython2.7

MacPorts をアップグレードしたら,

To fully complete your installation and make python 2.7 the default,  please run:
        sudo port install python_select
        sudo python_select python27

と表示された.

inactive にされた python26 はアンインストールしてもいいのだろうか?と思ったが,アンインストールして,上のガイドに従って問題なかった.python26 に戻したければ,

$ sudo python_select python26

で問題ない.

2010-09-07

MacPortsのPortfile開発

構成

  • オレオレ MacPorts リポジトリ www.example.com:/srv/www/macports (Linux サーバ)
  • ローカル開発マシン (Mac)
    • 開発中パッケージ置き場 : ~/proj/macports/work
    • オレオレリポジトリのミラー : ~/proj/macports/mirror

準備

決めること

  • パッケージの名前 : example-app
  • バージョン : 0.1.0
  • パッケージのカテゴリ : sysutils

リポジトリミラーの準備

$ cd ~/proj/macports/mirror
$ rsync -az --delete www.example.com:/srv/www/macports/ .

パッケージの準備

$ cd ~/proj/macports/work
$ git clone http://www.upstream.com/example-app.git
$ cd example-app
$ git checkout -b macports
$ mkdir macports
$ vi macports/Portfile
# vim: set ft=tcl et sw=4 ts=4 sts=4 :
PortSystem          1.0
name                example-app
version             0.1.0
categories          sysutils
maintainers         metalglue@example.com
description         example-app
long_description    example-app
master_sites        http://www.example.com/macports/distfiles/
$ git add macports
$ git commit

最初のアップロード

tar アーカイブファイルに固めて,チェックサムを計算し,Portfile に記述する.

$ cd ~/proj/macports/work
$ tar zcf ~/proj/macports/mirror/distfiles/example-app-0.1.0.tar.gz example-app
$ md5sum ~/proj/macports/mirror/distfiles/example-app-0.1.0.tar.gz
236aaec0cd680a4d254d26fd6820043d
$ vi example-app/macports/Portfile
checksums md5 236aaec0cd680a4d254d26fd6820043d

それらをミラーディレクトリにコピーして,portindex コマンドでインデックスを作り,アップロードする.

$ mkdir ~/proj/macports/mirror/portfiles/sysutils/example-app
$ cp example-app/macports/Portfile ~/proj/macports/mirror/portfiles/sysutils/example-app
$ cd ~/proj/macports/mirror/portfiles
$ portindex
$ cd ..
$ rsync -av --delete ./ www.example.com:/srv/www/macports

テスト

$ sudo port sync
$ port clean --all example-app
$ port -v install example-app

2010-07-10

MacPorts でどのバリアントでインストールしたかを調べる方法

MacPorts でインストールしたときにどの variants を指定したかを調べるには installed コマンドを用いる.

$ port installed
git-core @1.7.1.1_0+bash_completion+doc+gitweb+svn (active)

2010-04-12

MacPorts 用のオレオレリポジトリの運用例

ホスト www.exapmle.com の /srv/www/example/macports (http://www.example.com/macports/, rsync://www.example.com/macports/) にセットアップすると仮定する.ディストリビューションは debian を用いる.まずディレクトリを準備する.

deb$ mkdir /srv/www/example/macports
deb$ cd /srv/www/example/macports
deb$ mkdir portfiles distfiles

/srv/www/example/macports/portfiles を rsync プロトコルでアクセスできるようにする.

deb# vi /etc/default/rsync
RSYNC_ENABLE=inetd
deb# vi /etc/inetd.conf
rsync  stream tcp  nowait  root  /usr/bin/rsync rsyncd --daemon
deb# cp /usr/share/doc/rsync/examples/rsyncd.conf /etc
deb# vi /etc/rsyncd.conf
[macports]
    path = /srv/www/example/macports
deb# /etc/init.d/openbsd-inetd restart
deb# /etc/init.d/rsync restart

Portfile を更新する.

osx$ rsync -avzh www.example.com:/srv/www/example/macports .
osx$ cd macports/portfiles
osx$ mkdir -p sysutils/samplepackage
osx$ cp somewhere/Portfile sysutils/samplepackage
osx$ portindex
osx$ rsync -avzh ./ www.example.com:/srv/www/example/macports/portfiles

パッケージ本体を更新する.

osx$ rsync samplepackage-1.2.3.tar.gz www.example.com:/srv/www/example/macports/distfiles

ports クライアントを設定する.

osx# vi /opt/local/etc/macports/sources.conf
rsync://www.example.com/macports/portfiles/
rsync://rsync.macports.org/release/ports/ [default]
osx# port -v sync
osx# port install samplepackage

Portfile の準備のしかた

osx$ rsync samplepackage-1.2.3.tar.gz www.example.com:/srv/www/example/macports/distfiles
osx$ mkdir temp; cd temp
osx$ vi Portfile
...
master_sites        http://www.example.com/macports/distfiles/
...
osx$ port -d checksum
...
checksums           md5     3b55d5016728cfb4e76b0af952b73fff \
                    sha1    51c9e64d720732a016f39475f00ca939c6bfd512 \
                    rmd160  cd74cc78de6adedb3278aa435b374695c70d92d9
...
osx$ vi Portfile
( paste above checksums )
osx$ port -d build

2010-04-01

MacPorts の portfile 開発のためのリファレンス

総合/ポータル

詳細

2010-03-30

proxy 越しの MacPorts

基本的にはシステム環境設定の「ネットワーク→詳細→プロキシ」で設定した proxy が用いられるが,port sync は rsync を用いて行われるので rsync 用の proxy を設定する必要がある.これは環境変数 RSYNC_PROXY で設定する.まず,

$ sudo visudo
...
Defaults        env_keep += "RSYNC_PROXY"
...

として sudo 時に環境変数が継承されるようにして,

$ RSYNC_PROXY=hostname:8080 sudo port sync

のようにする(あるいはシェルの初期設定ファイルに export RSYNC_PROXY=hostname:8080 を設定する).

 

もう一つの問題は,ミラーサイトからのソースのダウンロードが止まってしまうことがままあることである.例えば subversion のインストール中に cyrus-sasl2 のダウンロードで止まってしまったとしよう.このときには Ctrl-C を押して一度止めてから,以下のようにする.

$ MASTER_SITE_LOCAL=http://distfiles.macports.org/cyrus-sasl2/ sudo port install subversion

もちろん,事前に sudo を設定しておく必要がある.

$ sudo visudo
...
Defaults        env_keep += "MASTER_SITE_LOCAL"
...

2008-09-21

MacPorts のルーチンワーク

$ sudo port -d selfupdate
$ sudo port -d sync
$ port outdated
$ sudo port -d upgrade installed

active でないものを消す

$ sudo port -uf uninstall