Mac Ports

981 views

Published on

About Mac Ports (Japanese).

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
981
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mac Ports

  1. 1. Naoya NAKAZAWA 2008.04.24
  2. 2. Agenda • MacPortsとは何か • インストール方法と使い方 • Portfileの作り方 • プロジェクトへの参加方法
  3. 3. MacPortsとは何か
  4. 4. http://www.macports.org/
  5. 5. MacPorts is an easy to use system for compiling, installing, and managing open source software. オープンソースソフトウェアを コンパイルしてインストールできるシステム
  6. 6. Similar to ... http://www.finkproject.org/
  7. 7. Similar to ... http://www.freebsd.org/ports/
  8. 8. Number of Packages MacPorts 4,675 Flink 8,461 FreeBSD Ports 18,361 ※2008.04.23時点
  9. 9. History
  10. 10. 2002 - DarwinPorts http://darwinports.com/
  11. 11. Part of OpenDarwin Project http://web.archive.org/web/20070507105243/http:// www.opendarwin.org/
  12. 12. 2006 - Update DarwinPorts MacPorts
  13. 13. インストール方法
  14. 14. 1. XCode Tools をインストールする ADCに登録が必要 2. MacPorts Download Directoryから MacPorts-1.x.x.dmgをダウンロード 3. MacPorts-1.x.x.pkgをインストール 4. portsツリーを最新にする % sudo port -d selfupdate % sudo port -d sync
  15. 15. 使い方
  16. 16. /opt/local/bin/port % sudo /opt/local/bin/port -h Usage: port [-bcdfiknopqRstuvx] [-D portdir] [-F cmdfile] action [privopts] [actionflags] [[portname|pseudo-portname|port-url] [@version] [+-variant]... [option=value]...]...
  17. 17. よく使うコマンド
  18. 18. • リポジトリを最新にする % sudo /opt/local/bin/port <-d> selfupdate % sudo /opt/local/bin/port <-d> sync
  19. 19. • portをインストールする % sudo /opt/local/bin/port <-v> install foo % sudo /opt/local/bin/port install zsh-devel screen emacs • Leopard(10.5)の場合、zshが古いのでzsh-devel を使う
  20. 20. • インストールされているportをすべてアップ デートする % sudo /opt/local/bin/port upgrade outdated • emacsだけアップデートする % sudo /opt/local/bin/port upgrade emacs
  21. 21. その他のオプション
  22. 22. • selfupdate: リポジトリと同期する • sync: 新しいportだけ取得する • list: 利用可能なportを一覧表示する • search: port名から部分一致検索する
  23. 23. • info: port情報を表示する • deps: 依存しているportを表示する • variants: インストールするときに利用可 能なオプションを表示する
  24. 24. • install: portをインストールする • clean: 中間ファイルを削除する • uninstall: portをアンインストールする % sudo /opt/local/bin/port uninstall <port_name> @version • contents: インストールされているportに 含まれているファイル一覧を表示する
  25. 25. • installed: インストールされているportを 表示する • outdated: アップデートされているportを 表示する • upgrade: portをアップグレードする
  26. 26. • dependents: インストールされているport の依存関係を表示する • livecheck: 開発者のサイトでアップデー トされているか調べる • activate: portを使えるように設定する(複 数のバージョンをインストールすると きに使う)
  27. 27. PortVariants
  28. 28. • インストールオプションを表示する % sudo /opt/local/bin/port variants postfix postfix has the variants: universal pcre: add pcre support tls: add tls supporti via openssl sasl: add sasl support via cyrus-sasl2
  29. 29. • インストールオプションを指定する % sudo /opt/local/bin/port <-v> postfix +sasl • インストールオプションを明示的には ずす % sudo /opt/local/bin/port <-v> postfix -sasl
  30. 30. Binary Archives
  31. 31. • アーカイブモードを有効にする /opt/local/etc/macports/macports.conf portarchivemode yes
  32. 32. • バイナリパッケージを作る % sudo /opt/local/bin/port <-d> archive port_name % sudo /opt/local/bin/port <-d> archive zsh /opt/local/var/macports/packages/darwin/ i386/zsh-4.2.7_0.i386.tgz
  33. 33. Portfileの作り方
  34. 34. • TCLスクリプトでPortFileを書く
  35. 35. Portfileの例(抜粋) % cat /opt/local/var/macports/sources/rsync.macports.org/release/ ports/sysutils/screen/Portfile
  36. 36. # $Id $ PortSystem 1.0 name screen version 4.0.3 homepage http://www.gnu.org/software/screen/ description Screen manager withVT100/ANSI terminal emulation long_description Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells). Each virtual terminal provides the functions of a DECVT100 terminal and, in addition, several control functions from the ANSI X3.64 (ISO 6429) and ISO 2022 standards (e.g. insert/delete line and support for multiple character sets).There is a scrollback history buffer for each virtual terminal and a copy-and-paste mechanism that allows moving text regions between windows. categories sysutils platforms darwin maintainers digdog@macports.org master_sites http://fresh.t-systems-sfr.com/unix/src/misc/ ftp://ftp.uni-erlangen.de/pub/utilities/screen/ http://www.cis.nctu.edu.tw/~is85005/dports/screen/:encoding
  37. 37. • Subversion IDのタグ # $Id$ • Portfileの最初の行に書くおまじない PortSystem 1.0 • Port名 name foo
  38. 38. • バージョン version 1.23.45 • リビジョン revision 1 • オプションキーワード(バージョンを区 別するときに使われる) epoch 20080424
  39. 39. • 所属するカテゴリ categories net security • メンテナー maintainers naoya cocoitiban • 説明文 description A classic hoge program
  40. 40. • 詳しい説明文 long_description A long description ... • ホームページ homepage http://www.example.com/foo • プラットフォーム platforms darwin freebsd
  41. 41. GlobalVariants
  42. 42. prefix インストール場所 binpath 実行ファイルを探すパス libpath TCLライブラリのパス portpath PortFileのフルパス filesdir ファイルディレクトリの相対パス workpath 作業ディレクトリのパス worksrcpath ソースコードを展開するフルパス destroot ソフトウェアの配布パス distpath ソフトウェアのダウンロードパス
  43. 43. install.user インストールユーザ install.group インストールグループ os.platform プラットフォームの 識別子 os.arch ハードウェアの種類 os.version OSのバージョン os.endian プロセッサのエンディアン os.major OSのメジャーバージョン x11prefix X11への相対パス
  44. 44. Installation Phases
  45. 45. 1 fetch ソースコードのダウンロード 2 checksum チェックサム 3 extract ソースコードを展開 4 patch パッチをあてる 5 configure configureを実行 6 build makeを実行 7 test portに付属しているテストを実行 8 destroot make installを実行 9 archive バイナリアーカイブを作る 10 install インストールされた配布ファイルをコピーする 11 activate ハードリンクを作成する
  46. 46. さっそく作ってみる
  47. 47. • ローカルPortfileリポジトリを準備する % sudo emacs /opt/local/etc/macports/sources.conf file:///Users/Shared/macports rsync://rsync.macports.org/release/ports/
  48. 48. • ディレクトリを作る % cd /Users/Shared % mkdir -p ports/misc/bat % cd ports/misc/bat
  49. 49. • Portfileを作る # $Id$ PortSystem 1.0 name bat version 0.0.1 categories misc maintainers bto description bat long_description bat homepage http://labs.unoh.net/2006/10/global_standard_programming_wi.html html platforms darwin master_sites http://labs.unoh.net/misc/autotools checksums md5 dd15d8257a84d8d9cc4edadf5dec4b4a sha1 67d95834dff4776175798d03553e3574c4fd2e61 rmd160 41c93ce881e62563b210f29131f5ae011c81a652
  50. 50. • checksumを計算する % md5 bat-0.0.1.tar.gz % openssl sha1 bat-0.0.1.tar.gz % openssl rmd160 bat-0.0.1.tar.gz
  51. 51. • Portインデックスを更新する % cd /Users/Shared/ports % sudo /opt/local/bin/portindex % ls PortIndex misc/
  52. 52. • Portをインストーしてみる % sudo /opt/local/bin/port search bat bat misc/bat 0.0.1 bat % sudo /opt/local/bin/port bat install ---> Unpacking tgz archive for bat 0.0.1_0 ---> Installing bat 0.0.1_0 ---> Activating bat 0.0.1_0 ---> Cleaning bat
  53. 53. プロジェクトへの 参加方法
  54. 54. MacOS forge Trac + Wordpress
  55. 55. http://trac.macports.org/projects/macports/report/1
  56. 56. Tracでチケットを切る
  57. 57. 決まり事
  58. 58. • Summary BUG: <port_name> 簡単な説明 • Type defect: ビルドに失敗する問題など enhancement: パッチがあるとき
  59. 59. • Full Description {{{ 詳しい説明 }}} • Priority High / Normal / Low / Not set • Component base / guide / ports / server / website / wiki
  60. 60. • Keywords チケットを検索するときのキーワード • Cc チケットを切った人とメンテナの連絡先 macports-tickets@lists.macosforge.org, maintainer@example.com
  61. 61. • Milestone Port Bugs など • Version 対象のMacPortバージョン • Assign To アサインする人
  62. 62. 新しいportを追加
  63. 63. • チケットを切る • Typeをenhancementにする • MilestoneをPort Submissionsにする • PortFileをチケットに添付する
  64. 64. • コミット権限がほしいときは、PortMgr チームにメールする
  65. 65. • PortMgr Team James D. Berry Juan Manuel Palacios Markus W. Weissman
  66. 66. Thank you!

×