FreeBSD ports と暮らす(2): port 作成編

2,250 views
2,161 views

Published on

K*BUG 2012年4月研究会
http://www.zusaar.com/event/264001
での発表

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,250
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

FreeBSD ports と暮らす(2): port 作成編

  1. 1. FreeBSD ports と暮らす(2) port 作成編 Hirohisa Yamaguchi @umq2012年4月21日土曜日 1
  2. 2. 発表者について • ネットエージェント株式会社 •http:// www.netagent.co.jp • プロダクト事業部 • 関西 *BSD ユーザ会 (K*BUG) •http://www.kbug.gr.jp2012年4月21日土曜日 2
  3. 3. FreeBSD ports/packages • FreeBSD でアプリケーション導入を支援するフレー ムワーク • packages = バイナリパッケージ • ports = パッケージ作成フレームワーク • 現在だいたい24,400登録されている ☆NetBSD では port といえばマシンアーキテクチャ ごとのディストリビューション2012年4月21日土曜日 3
  4. 4. 今回は略 Packages collection2012年4月21日土曜日 4
  5. 5. Ports collection2012年4月21日土曜日 5
  6. 6. パッケージ作成 フレームワーク2012年4月21日土曜日 6
  7. 7. パッケージをビルドする • ソース取得からビルドまでをガイド • Red Hat Linux の RPM でいう nosrc.rpm2012年4月21日土曜日 7
  8. 8. 野良ビルドとどこが違うの • 依存関係をパッケージを使って解決できる • バージョンアップ時に古いファイルが不用意 に残らない • パッケージにして別マシンに展開できる2012年4月21日土曜日 8
  9. 9. ports を使う • portsnap fetch extract • 特に設定をしていなければ /usr/ports 以下にツリーが展開される • portsnap fetch update • 展開したツリーを更新する • make -C /usr/ports/foo/bar build install • foo カテゴリの bar port をインストールする • pkg_version -vL ‘>=’ • 導入済パッケージそれぞれについて、ツリーの方が新しい場合 表示する2012年4月21日土曜日 9
  10. 10. ports を使ってパッケージ更新 # cd /usr/ports/foo/bar # make build # pkg_delete bar-x.x.x # make install # make clean • ports-mgmt/portmaster を使うと1行でできる2012年4月21日土曜日 10
  11. 11. port を作ってみる • 支援ツールを入れる • Porter’s Handbook を読む • わからなかったら ports/Mk/bsd.*.mk を読む2012年4月21日土曜日 11
  12. 12. 支援ツール • ports-mgmt/portaudit • ports-mgmt/portmaster • ports-mgmt/porttools • ports-mgmt/portlint • ports-mgmt/distilator • ports-mgmt/portscout2012年4月21日土曜日 12
  13. 13. Porter’s Handbook http://www.freebsd.org/doc/en/books/porters-handbook/2012年4月21日土曜日 13
  14. 14. port skeleton • Makefile • pkg-descr • pkg-plist • distinfo2012年4月21日土曜日 14
  15. 15. Makefile • 基本情報 • ソース取得先 • ビルド関連情報 • ライセンス情報(*)2012年4月21日土曜日 15
  16. 16. pkg-descr • 簡単な説明 • 本家サイトの URI2012年4月21日土曜日 16
  17. 17. pkg-plist • インストールされるファイル一覧 • 生成されるディレクトリ一覧2012年4月21日土曜日 17
  18. 18. distinfo • 取得するソースの情報 • サイズ • sha256 チェックサム2012年4月21日土曜日 18
  19. 19. port 作成 step-by-step • cd /usr/ports/foo • port create bar • cd bar • vi Makefile pkg-descr • make fetch -DNO_CHECKSUM • make makesum • FreeBSD porter’s Handbook の ``Automated Package List Creation’’ http://www.freebsd.org/doc/en/books/porters-handbook/plist- autoplist.html に従って pkg-plist を作る • portlint -abt2012年4月21日土曜日 19
  20. 20. ports ツリーに取込んでもらう(1/4) • アーカイブを作成 $ cd /usr/ports $ shar `find foo/bar` > /tmp/foo_bar.shar • send-pr(1) • emacs を使っている場合は # cd /usr/src/gnu/usr.bin/send-pr # make send-pr.el2012年4月21日土曜日 20
  21. 21. ports ツリーに取込んでもらう(2/4) • Category: ports • Class: change-request • Synopsis には、追加する port 名を • Description には追加するアプリケーションの説明を • Fix: の部分に作ったアーカイブを貼る • e-mail で送る場合、アーカイブを添付する場合は text/* もしくは application/shar にする2012年4月21日土曜日 21
  22. 22. ports ツリーに取込んでもらう(3/4) • send-pr が正しく行われたらgnats番号がアサ インされる ports/xxxxxx • freebsd-ports-bugs ML に流れる • http://www.freebsd.org/cgi/query-pr.cgi? pr=ports/xxxxxx2012年4月21日土曜日 22
  23. 23. ports ツリーに取込んでもらう(4/4) • 誰か ports committer が拾ってくれて問題なければ取り込んでくれる • 問題があれば指摘を受けてなおす • pr に更新がある場合は、gnats からきたメールの返信として、 bug-followup@ に送る • Subject: ports/xxxxxx: から始まる文を保持すると正しく自動 処理される • freebsd-gnats-submit@ や freebsd-ports-bugs@ に同報する必要 はない • すぐに拾ってもらえなくても気にしない2012年4月21日土曜日 23
  24. 24. まとめ • FreeBSD ports collection の使い方を説明した • 自分だけで使うアプリケーションも port に すると、楽2012年4月21日土曜日 24

×