Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
FreeBSD ports と暮らす(2)                     port 作成編                     Hirohisa Yamaguchi                           @umq20...
発表者について                • ネットエージェント株式会社                 •http://                  www.netagent.co.jp                 • プロダク...
FreeBSD ports/packages            • FreeBSD でアプリケーション導入を支援するフレー                ムワーク                • packages = バイナリパッケージ ...
今回は略                Packages collection2012年4月21日土曜日                         4
Ports collection2012年4月21日土曜日                      5
パッケージ作成                フレームワーク2012年4月21日土曜日             6
パッケージをビルドする            • ソース取得からビルドまでをガイド            • Red Hat Linux の RPM でいう nosrc.rpm2012年4月21日土曜日                     ...
野良ビルドとどこが違うの            • 依存関係をパッケージを使って解決できる            • バージョンアップ時に古いファイルが不用意                に残らない            • パッケージにして...
ports を使う            •   portsnap fetch extract                 •   特に設定をしていなければ /usr/ports 以下にツリーが展開される            •   po...
ports を使ってパッケージ更新            # cd /usr/ports/foo/bar            # make build            # pkg_delete bar-x.x.x            ...
port を作ってみる            • 支援ツールを入れる            • Porter’s Handbook を読む            • わからなかったら ports/Mk/bsd.*.mk を読む2012年4月21...
支援ツール            • ports-mgmt/portaudit            • ports-mgmt/portmaster            • ports-mgmt/porttools            • ...
Porter’s Handbook      http://www.freebsd.org/doc/en/books/porters-handbook/2012年4月21日土曜日                                 ...
port skeleton            • Makefile            • pkg-descr            • pkg-plist            • distinfo2012年4月21日土曜日       ...
Makefile            • 基本情報            • ソース取得先            • ビルド関連情報            • ライセンス情報(*)2012年4月21日土曜日                   ...
pkg-descr            • 簡単な説明            • 本家サイトの URI2012年4月21日土曜日                     16
pkg-plist            • インストールされるファイル一覧            • 生成されるディレクトリ一覧2012年4月21日土曜日                   17
distinfo            • 取得するソースの情報                • サイズ                • sha256 チェックサム2012年4月21日土曜日                       18
port 作成 step-by-step            •   cd /usr/ports/foo            •   port create bar            •   cd bar            •   ...
ports ツリーに取込んでもらう(1/4)            •   アーカイブを作成                $ cd /usr/ports                $ shar `find foo/bar` > /tmp/...
ports ツリーに取込んでもらう(2/4)            • Category: ports            • Class: change-request            • Synopsis には、追加する port ...
ports ツリーに取込んでもらう(3/4)            • send-pr が正しく行われたらgnats番号がアサ                インされる ports/xxxxxx            • freebsd-por...
ports ツリーに取込んでもらう(4/4)            •   誰か ports committer が拾ってくれて問題なければ取り込んでくれる                •   問題があれば指摘を受けてなおす         ...
まとめ            • FreeBSD ports collection の使い方を説明した            • 自分だけで使うアプリケーションも port に                すると、楽2012年4月21日土曜日...
Upcoming SlideShare
Loading in …5
×

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

2,476 views

Published on

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

  • Be the first to comment

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

×