FreeBSD ports と暮らす(1): github 編

28
FreeBSD ports と暮らす(1) github Hirohisa Yamaguchi @umq 2012-02-18 1

description

K*BUG 2012年2月研究会 http://www.zusaar.com/event/209002 での発表 補足情報を吹き出しで追加

Transcript of FreeBSD ports と暮らす(1): github 編

Page 1: FreeBSD ports と暮らす(1): github 編

FreeBSD ports と暮らす(1)github 編

Hirohisa Yamaguchi@umq

2012-02-181

Page 2: FreeBSD ports と暮らす(1): github 編

発表者について• ネットエージェント株式会社

•http://www.netagent.co.jp

• 研究開発部

• 関西 *BSD ユーザ会 (K*BUG)

•http://www.kbug.gr.jp

2

Page 3: FreeBSD ports と暮らす(1): github 編

FreeBSD ports

•<略>

•一部後述3

Page 4: FreeBSD ports と暮らす(1): github 編

github

• An SNS site for us

4

Page 5: FreeBSD ports と暮らす(1): github 編

FreeBSD もあるgithub.com/freebsd/

5

Page 6: FreeBSD ports と暮らす(1): github 編

github で公開されている○○をFreeBSD portsに入れたい

6

Page 7: FreeBSD ports と暮らす(1): github 編

通常はリリース済ソースアーカイブを対象にしている

7

Page 8: FreeBSD ports と暮らす(1): github 編

どうするか

8

Page 9: FreeBSD ports と暮らす(1): github 編

魔法のエイリアス

• https://github.com/<user>/<project>/tarball

9

Page 10: FreeBSD ports と暮らす(1): github 編

commit revision で取得

• https://github.com/<user>/<project>/tarball/<revision>/<project>-<revision>.tar.gz

10

Page 11: FreeBSD ports と暮らす(1): github 編

サンプル

• tinytinyhttpdgithub.com/mattn/tinytinyhttpd

• www/tinytinyhttpd として ports tree に存在

11

Page 12: FreeBSD ports と暮らす(1): github 編

mattn 氏日本を代表するvim hacker「Vimテクニックバイブル」

http://gihyo.jp/book/2011/978-4-7741-4795-6

12

Page 13: FreeBSD ports と暮らす(1): github 編

やってみた

https://gist.github.com/185769113

Page 14: FreeBSD ports と暮らす(1): github 編

MASTER_SITES=!\ https://github.com/${GITHUB_USER}/\ ${PORTNAME}/tarball/${GITREVISION}/

あとで定義あとで定義

14

Page 15: FreeBSD ports と暮らす(1): github 編

DISTNAME=!\${PORTNAME}-${GITREVISION}

15

Page 16: FreeBSD ports と暮らす(1): github 編

FETCH_ARGS=!-RprGITHUB_USER=!mattnGITREVISION=!3a3a10bWRKSRC=!!\ ${WRKDIR}/${GITHUB_USER}-\ ${PORTNAME}-${GITREVISION}

commit revisionの先頭7文字

リダイレクト先のファイルをその名前で取得

16

Page 17: FreeBSD ports と暮らす(1): github 編

pre-configure:!cd ${WRKSRC} ; \!${SH} ./autogen.sh

モノによってはビルド前に処理が必要な場合があるので記述

17

Page 18: FreeBSD ports と暮らす(1): github 編

最新版でやってみたい

18

Page 19: FreeBSD ports と暮らす(1): github 編

最新版でやってみたい

• https://github.com/<user>/<project>/tarball/master

19

Page 20: FreeBSD ports と暮らす(1): github 編

やってみた 1/2

(ちょと違うけど) https://gist.github.com/1857700

20

Page 21: FreeBSD ports と暮らす(1): github 編

やってみた 2/221

Page 22: FreeBSD ports と暮らす(1): github 編

MASTER_SITES=!\ https://github.com/${GITHUB_USER}/\ ${PORTNAME}/tarball/

22

Page 23: FreeBSD ports と暮らす(1): github 編

NO_CHECKSUM= yes

都度取得なので、チェックサムを確認しない

23

Page 25: FreeBSD ports と暮らす(1): github 編

取得

ls-remote でリビジョン情報取得ssh鍵を登録しておけばローカルにclone 不要

heads/master の revesion id を切り出す。awk(1) でなく cut(1) を使って ${CUT} -f1 でもよい

latest という名前で symlink を作る

25

Page 26: FreeBSD ports と暮らす(1): github 編

展開

symlink した tarba( を展開

26

Page 27: FreeBSD ports と暮らす(1): github 編

注意

portlint かけると FATAL が2つも本家のツリーに入れようと思わないこと

ports-mgmt/potupgrade-devel がやってるのは例外

27

Page 28: FreeBSD ports と暮らす(1): github 編

まとめ

• github で公開されているプログラムを ports に入れる方法を紹介した

• local portをこれで気軽に作れる

• happy hacking

28