Submit Search
Upload
Custom Package Building with Poudriere
•
Download as ODP, PDF
•
1 like
•
873 views
Y
Yuichiro Naito
Follow
building my own FreeBSD packages
Read less
Read more
Software
Report
Share
Report
Share
1 of 27
Download now
Recommended
Programming under capability mode
Programming under capability mode
Yuichiro Naito
誰得コマンド&オプション35連発
誰得コマンド&オプション35連発
Yozo SATO
Firefox OS + Raspberry Pi
Firefox OS + Raspberry Pi
EnsekiTT
SSH Tips & Tricks
SSH Tips & Tricks
Nobutoshi Ogata
Elastic searchをrailsから使ってみた
Elastic searchをrailsから使ってみた
Yoichi Toyota
hiding
hiding
cookies 146
pbuilder, cowbuilder, lxcで作るお手軽サンドボックス
pbuilder, cowbuilder, lxcで作るお手軽サンドボックス
Tsuyoshi Yamada
Ec2でのdisk拡張方法
Ec2でのdisk拡張方法
Takamasa Sakai
Recommended
Programming under capability mode
Programming under capability mode
Yuichiro Naito
誰得コマンド&オプション35連発
誰得コマンド&オプション35連発
Yozo SATO
Firefox OS + Raspberry Pi
Firefox OS + Raspberry Pi
EnsekiTT
SSH Tips & Tricks
SSH Tips & Tricks
Nobutoshi Ogata
Elastic searchをrailsから使ってみた
Elastic searchをrailsから使ってみた
Yoichi Toyota
hiding
hiding
cookies 146
pbuilder, cowbuilder, lxcで作るお手軽サンドボックス
pbuilder, cowbuilder, lxcで作るお手軽サンドボックス
Tsuyoshi Yamada
Ec2でのdisk拡張方法
Ec2でのdisk拡張方法
Takamasa Sakai
データベースのお話
データベースのお話
Hidekazu Tanaka
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
TrinityT _
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内
Takuto Matsuu
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
Tsuyoshi Yamada
U boot-for-zynqberry
U boot-for-zynqberry
Akihiro Amagai
エンジニアのための痔の話
エンジニアのための痔の話
Kouhei Maeda
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
monochrojazz
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
弘毅 露崎
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
Takuto Matsuu
Gentoo Linuxの紹介
Gentoo Linuxの紹介
University of Tsukuba Linux User Group
Hostsの活用
Hostsの活用
Yoshitaka KATO
S2s websrv201011-presen
S2s websrv201011-presen
Kouhei Maeda
仕事で使えるシェルスクリプト
仕事で使えるシェルスクリプト
bsdhack
Redis速習会@Wantedly
Redis速習会@Wantedly
Yoshinori Kawasaki
Linuxの基礎勉強会
Linuxの基礎勉強会
優之 田中
3-1
3-1
Atsushi Hara
ベンチマーク勉強会#03
ベンチマーク勉強会#03
milk hanakara
R以外の研究ツール
R以外の研究ツール
弘毅 露崎
Redisととあるシステム
Redisととあるシステム
Takehiro Torigaki
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
Kenichiro MATOHARA
FreeBSDで行こう for small server
FreeBSDで行こう for small server
Tatsumi Naganuma
Osc2013 tokyospring
Osc2013 tokyospring
Masataka Tsukamoto
More Related Content
What's hot
データベースのお話
データベースのお話
Hidekazu Tanaka
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
TrinityT _
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内
Takuto Matsuu
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
Tsuyoshi Yamada
U boot-for-zynqberry
U boot-for-zynqberry
Akihiro Amagai
エンジニアのための痔の話
エンジニアのための痔の話
Kouhei Maeda
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
monochrojazz
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
弘毅 露崎
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
Takuto Matsuu
Gentoo Linuxの紹介
Gentoo Linuxの紹介
University of Tsukuba Linux User Group
Hostsの活用
Hostsの活用
Yoshitaka KATO
S2s websrv201011-presen
S2s websrv201011-presen
Kouhei Maeda
仕事で使えるシェルスクリプト
仕事で使えるシェルスクリプト
bsdhack
Redis速習会@Wantedly
Redis速習会@Wantedly
Yoshinori Kawasaki
Linuxの基礎勉強会
Linuxの基礎勉強会
優之 田中
3-1
3-1
Atsushi Hara
ベンチマーク勉強会#03
ベンチマーク勉強会#03
milk hanakara
R以外の研究ツール
R以外の研究ツール
弘毅 露崎
Redisととあるシステム
Redisととあるシステム
Takehiro Torigaki
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
Kenichiro MATOHARA
What's hot
(20)
データベースのお話
データベースのお話
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
U boot-for-zynqberry
U boot-for-zynqberry
エンジニアのための痔の話
エンジニアのための痔の話
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
Gentoo Linuxの紹介
Gentoo Linuxの紹介
Hostsの活用
Hostsの活用
S2s websrv201011-presen
S2s websrv201011-presen
仕事で使えるシェルスクリプト
仕事で使えるシェルスクリプト
Redis速習会@Wantedly
Redis速習会@Wantedly
Linuxの基礎勉強会
Linuxの基礎勉強会
3-1
3-1
ベンチマーク勉強会#03
ベンチマーク勉強会#03
R以外の研究ツール
R以外の研究ツール
Redisととあるシステム
Redisととあるシステム
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
Similar to Custom Package Building with Poudriere
FreeBSDで行こう for small server
FreeBSDで行こう for small server
Tatsumi Naganuma
Osc2013 tokyospring
Osc2013 tokyospring
Masataka Tsukamoto
「おれのクラウド」今日から始めるオブジェクトストレージ
「おれのクラウド」今日から始めるオブジェクトストレージ
Masahito Zembutsu
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
Etsuji Nakai
Building production server on docker
Building production server on docker
Hiroshi Miura
Building production server on docker
Building production server on docker
Hiroshi Miura
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
AutoDock_Raccoon_japanese_ver.1.0
AutoDock_Raccoon_japanese_ver.1.0
Satoshi Kume
fdコマンドを使おう
fdコマンドを使おう
Hideaki Miyake
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto
initramfsについて
initramfsについて
Kazuhiro Nishiyama
Docker handson
Docker handson
koda3
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
OSSラボ株式会社
Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)
Kimiyuki Yamauchi
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
Atsushi Odagiri
ベンチマーク勉強会#02
ベンチマーク勉強会#02
milk hanakara
Symfony2からdoctrine mongo db odmを使ってみる
Symfony2からdoctrine mongo db odmを使ってみる
Koji Iwazaki
今日から使い始めるChef
今日から使い始めるChef
Masahiro NAKAYAMA
A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0
Satoshi Kume
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
VirtualTech Japan Inc.
Similar to Custom Package Building with Poudriere
(20)
FreeBSDで行こう for small server
FreeBSDで行こう for small server
Osc2013 tokyospring
Osc2013 tokyospring
「おれのクラウド」今日から始めるオブジェクトストレージ
「おれのクラウド」今日から始めるオブジェクトストレージ
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:ハンズオンNo1
Building production server on docker
Building production server on docker
Building production server on docker
Building production server on docker
Docker Compose 徹底解説
Docker Compose 徹底解説
AutoDock_Raccoon_japanese_ver.1.0
AutoDock_Raccoon_japanese_ver.1.0
fdコマンドを使おう
fdコマンドを使おう
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
initramfsについて
initramfsについて
Docker handson
Docker handson
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
ベンチマーク勉強会#02
ベンチマーク勉強会#02
Symfony2からdoctrine mongo db odmを使ってみる
Symfony2からdoctrine mongo db odmを使ってみる
今日から使い始めるChef
今日から使い始めるChef
A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
More from Yuichiro Naito
Reporting AsiaBSDCon 2024 in Taipei for FreeBSD NetBSD
Reporting AsiaBSDCon 2024 in Taipei for FreeBSD NetBSD
Yuichiro Naito
Bmd
Bmd
Yuichiro Naito
WireGurad in the FreeBSD kernel
WireGurad in the FreeBSD kernel
Yuichiro Naito
FreeBSD Capsicum
FreeBSD Capsicum
Yuichiro Naito
Xrdp
Xrdp
Yuichiro Naito
Bhyve debug-server
Bhyve debug-server
Yuichiro Naito
Tramp mode
Tramp mode
Yuichiro Naito
HandBrake with QSV
HandBrake with QSV
Yuichiro Naito
FreeBSD 12.1 RELESE
FreeBSD 12.1 RELESE
Yuichiro Naito
Modern fonts
Modern fonts
Yuichiro Naito
FreeBSD 12.0 RELEASE!
FreeBSD 12.0 RELEASE!
Yuichiro Naito
Psql & proctitle
Psql & proctitle
Yuichiro Naito
Iocage
Iocage
Yuichiro Naito
FreeBSD 11.2 RELEASE!
FreeBSD 11.2 RELEASE!
Yuichiro Naito
How to use PTI & IBRS patch
How to use PTI & IBRS patch
Yuichiro Naito
FreeBSD Desktop
FreeBSD Desktop
Yuichiro Naito
FreeBSD Ports Flavors
FreeBSD Ports Flavors
Yuichiro Naito
Bsdtw repo
Bsdtw repo
Yuichiro Naito
How to use blacklistd
How to use blacklistd
Yuichiro Naito
Ruby build
Ruby build
Yuichiro Naito
More from Yuichiro Naito
(20)
Reporting AsiaBSDCon 2024 in Taipei for FreeBSD NetBSD
Reporting AsiaBSDCon 2024 in Taipei for FreeBSD NetBSD
Bmd
Bmd
WireGurad in the FreeBSD kernel
WireGurad in the FreeBSD kernel
FreeBSD Capsicum
FreeBSD Capsicum
Xrdp
Xrdp
Bhyve debug-server
Bhyve debug-server
Tramp mode
Tramp mode
HandBrake with QSV
HandBrake with QSV
FreeBSD 12.1 RELESE
FreeBSD 12.1 RELESE
Modern fonts
Modern fonts
FreeBSD 12.0 RELEASE!
FreeBSD 12.0 RELEASE!
Psql & proctitle
Psql & proctitle
Iocage
Iocage
FreeBSD 11.2 RELEASE!
FreeBSD 11.2 RELEASE!
How to use PTI & IBRS patch
How to use PTI & IBRS patch
FreeBSD Desktop
FreeBSD Desktop
FreeBSD Ports Flavors
FreeBSD Ports Flavors
Bsdtw repo
Bsdtw repo
How to use blacklistd
How to use blacklistd
Ruby build
Ruby build
Custom Package Building with Poudriere
1.
パッケージサーバの作り方 カスタムビルドパッケージ の作成と公開について 2017年4月28日 (株)創夢 内藤 祐一郎
2.
はじめに ● FreeBSD のバイナリパッケージは とっても便利ですが ●
オプションがデフォルト ● DEFAULT_VERSIONS もデフォルト ● make.conf もデフォルト → 自分好みにカスタマイズしたパッケージを作りたい
3.
パッケージビルドツール ● Poudriere – プドゥリエル:仏語で火薬庫の意 –
AsiaBSDCon2017 でたくさん言及されてました – 調べると日本語の記事もたくさんありました ● FreeBSD ハンドブック ● Qiitaの記事 ● CBUGの資料 ● その他、Blog記事多数
4.
Poudriere ● これら多数の情報とっても参考になりました。 ありがとうございます。 ● これらの情報を踏まえつつ、実際に使ってみた 感じをまとめたいと思います。
5.
Poudriereとは ● Ports ツリーのビルドを
jail 環境で行い pkgで利用できるパッケージリポジトリを 作ってくれる shell script です ● ports/ports-mgmt/poudriere から make install ● または pkg install poudriere で インストールできます
6.
Ports のビルドに必要なもの 1. どの
Ports ツリーを使うのか? 2. どの jail 環境でビルドするのか? 3. どのオプションでビルドするのか? 4. どの make.conf を使うのか? 5. どの src.conf を使うのか? 6. どの port をビルドするのか?
7.
1. Ports ツリーの取得 poudriere
では次の方法でツリーを取得します。 A) portsnap B) svn C) git 取得したツリーそれぞれに名前をつけて管理しま す。 $ poudriere ports -c -p <ツリー名> -m portsnap | svn | git
8.
1. Ports ツリーの取得 svn,
git リポジトリのデフォルトは ● svn://svn.freebsd.org/ports ● git://github.com/freebsd/freebsd-ports.git 変更するには poudriere.conf に SVN_HOST に svn サーバのホスト名を GIT_URL に git リポジトリのURLを書きます。
9.
1. Ports ツリーの取得 ブランチのデフォルトは ●
svn : head ● git : master 変更するには poudriere ports に -B <ブランチ名> を渡します (svnでは branches/2017Q2など) 従って svn では必ず次のような URL になります “svn://${SVN_HOST}/ports/<ブランチ名>”
10.
1. Ports ツリーの一覧 ●
Poudriere で管理されている Ports ツリーの一覧 $ poudriere ports -l ● Poudriere で管理されている Ports ツリーの更新 $ poudriere ports -u -p <ports名> ● Poudriere で管理されている Ports ツリーの削除 $ poudriere ports -d -p <ports名>
11.
2. jail 環境の作成 ●
jail 環境にもそれぞれ名前をつけて管理します ● jail を作成するには以下のコマンドを使います $ poudriere jail -c -j <jail名> -v <バージョン: 11.0-RELEASE など> -a <アーキテクチャ: amd64 など>
12.
2. jail 環境の取得先 ●
デフォルトでは ftp://ftp.freebsd.org からです ● poudriere.conf に FREEBSD_HOST=ftp://ftp.jp.freebsd.org とすると変えることができます。
13.
2. jail 環境の一覧 ●
jail 環境の一覧を表示するには $ poudriere jail -l ● jail 環境を更新 (freebsd-update) するには $ poudriere jail -u -j <jail名> ● jail 環境を削除するには $ poudriere jail -d -j <jail名>
14.
3. オプションの設定 まず、 make
config-recursive を実行する対象の パッケージリストを作成します。 例)$ echo “editor/emacs” > pkglist このリストを元にオプションを設定します。 オプションのまとまりを「セット」と呼び、名前 をつけて管理します。
15.
3. オプションの設定 オプションは Ports
ツリー、jail 環境に依存する ため、それぞれを指定した上で設定します $ poudriere options -p <ports名> -j <jail名> -z <セット名> -f <パッケージリストファイル> poudriereが make config を実行し、対話的にオプ ションを設定します。
16.
3. オプションの設定 オプションの保存形式は既存の make
config と全 く同じですので、/var/db/ports 以下を poudriere の管理領域にコピーすることもできます。 例) cp -r /var/db/ports /usr/local/etc/poudriere.d/<jail名>-<ports名>-<セット名 >-options
17.
4. make.conf の設定 poudriere
が使用する make.conf は次の順に読み込みます。 /usr/local/etc/poudriere.d/make.conf /usr/local/etc/poudriere.d/<セット名>-make.conf /usr/local/etc/poudriere.d/<ports名>-make.conf /usr/local/etc/poudriere.d/<jail名>-make.conf /usr/local/etc/poudriere.d/<jail名>-<ports名>-make.conf /usr/local/etc/poudriere.d/<jail名>-<セット名>-make.conf /usr/local/etc/poudriere.d/<jail名>-<ports名>-<セット名>-make.conf
18.
6. src.conf の設定 poudriere
が使用する src.conf は次の順に読み込 みます。 /usr/local/etc/poudriere.d/src.conf /usr/local/etc/poudriere.d/<セット名>-src.conf /usr/local/etc/poudriere.d/<jail名>-src.conf
19.
パッケージビルド poudriere が build
するパッケージのリストを指定 して poudriere bulk を呼び出します。 $ poudriere bulk -p <ports名> -j <jail名> -z <セット名> -f <パッケージリストファイル>
20.
パッケージビルド 出来上がったパッケージは /usr/local/poudriere/data/packages/ <jail名>-<ports名>-<セット名> に pkg repo
した状態で書き込まれます。 →ここをhttpで公開します。
21.
パッケージの署名 公開するに当たって署名したい場合には まず、RSA鍵ペアを作成します。 例) $ openssl genrsa
-out repo.key $ openssl rsa -in repo.key -pubout -out repo.pub repo.key が秘密鍵で repo.pub が公開鍵です。
22.
パッケージの署名 poudriere.conf に PKG_REPO_SIGNING_KEY=/root/repo.key と指定しておくとビルド時に署名してくれます
23.
パッケージの署名検証 署名を検証する側にはRSA公開鍵をインストールし ておき、次のような pkg.conf を作成します。 myrepo:
{ url: "<公開URL>", mirror_type: "http", signature_type: "pubkey", pubkey: "/root/repo.pub", enabled: yes }
24.
パッケージの署名検証 poudriereは署名検証方式としてfingerprintはサ ポートしていないようです。 FreeBSDのパッケージリポジトリと異なり poudriereで作成したリポジトリのメタデータに RSA 公開鍵が含まれないためです。
25.
パッケージビルドの並列度 デフォルトではホストのCPUコア数分、jail環境 をコピーし依存関係のない Port が並列ビルドさ れます。 一つ一つの
jail では make -j 1 でビルドされま す。 poudriere.conf の以下の設定で変えられます。 PARALLEL_JOBS=<jail数> ALLOW_MAKE_JOBS= no | yes
26.
ZFSを使う zfs を使うと jail環境をコピーではなく
clone して くれるため、圧倒的に前処理が速くなります。 poudriere.conf に使いたいプール名とpoudriere用 のルートファイルシステムを指定します。 例) ZPOOL=tank ZROOTFS=/poudriere
27.
おまけ poudriereはportを作成している人にとっても複数 の環境でビルドをテストできとても魅力的です。 $ poudriere testport
-j <jail名> -p <ports名> -z <セット名> -f <パッケージリストファイル> で該当パッケージのビルドログを全て表示してく れます。依存関係の不足なども表示されますの で、ぜひご活用ください!
Download now