FreeBSD ports と暮らす(1): github 編
-
Upload
hirohisa-yamaguchi -
Category
Documents
-
view
2.203 -
download
2
description
Transcript of FreeBSD ports と暮らす(1): github 編
FreeBSD ports と暮らす(1)github 編
Hirohisa Yamaguchi@umq
2012-02-181
発表者について• ネットエージェント株式会社
•http://www.netagent.co.jp
• 研究開発部
• 関西 *BSD ユーザ会 (K*BUG)
•http://www.kbug.gr.jp
2
FreeBSD ports
•<略>
•一部後述3
github
• An SNS site for us
4
FreeBSD もあるgithub.com/freebsd/
5
github で公開されている○○をFreeBSD portsに入れたい
6
通常はリリース済ソースアーカイブを対象にしている
7
どうするか
8
commit revision で取得
• https://github.com/<user>/<project>/tarball/<revision>/<project>-<revision>.tar.gz
10
サンプル
• tinytinyhttpdgithub.com/mattn/tinytinyhttpd
• www/tinytinyhttpd として ports tree に存在
11
mattn 氏日本を代表するvim hacker「Vimテクニックバイブル」
http://gihyo.jp/book/2011/978-4-7741-4795-6
12
やってみた
https://gist.github.com/185769113
MASTER_SITES=!\ https://github.com/${GITHUB_USER}/\ ${PORTNAME}/tarball/${GITREVISION}/
あとで定義あとで定義
14
DISTNAME=!\${PORTNAME}-${GITREVISION}
15
FETCH_ARGS=!-RprGITHUB_USER=!mattnGITREVISION=!3a3a10bWRKSRC=!!\ ${WRKDIR}/${GITHUB_USER}-\ ${PORTNAME}-${GITREVISION}
commit revisionの先頭7文字
リダイレクト先のファイルをその名前で取得
16
pre-configure:!cd ${WRKSRC} ; \!${SH} ./autogen.sh
モノによってはビルド前に処理が必要な場合があるので記述
17
最新版でやってみたい
18
最新版でやってみたい
• https://github.com/<user>/<project>/tarball/master
19
やってみた 1/2
(ちょと違うけど) https://gist.github.com/1857700
20
やってみた 2/221
MASTER_SITES=!\ https://github.com/${GITHUB_USER}/\ ${PORTNAME}/tarball/
22
NO_CHECKSUM= yes
都度取得なので、チェックサムを確認しない
23
取得
ls-remote でリビジョン情報取得ssh鍵を登録しておけばローカルにclone 不要
heads/master の revesion id を切り出す。awk(1) でなく cut(1) を使って ${CUT} -f1 でもよい
latest という名前で symlink を作る
25
展開
symlink した tarba( を展開
26
注意
portlint かけると FATAL が2つも本家のツリーに入れようと思わないこと
ports-mgmt/potupgrade-devel がやってるのは例外
27
まとめ
• github で公開されているプログラムを ports に入れる方法を紹介した
• local portをこれで気軽に作れる
• happy hacking
28