polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
polidog に RPM の
作り方を教える
polidogと学ぶサーバに関する技術
2015-11-28
となか
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
自己紹介
名前: となかふみひさ✓
ID: @ftnk✓
インフラエンジニア
Solaris✓
✓
最近 Ruby で REST 叩く何か書
いてます
✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
agenda
RPM とは✓
なぜ RPM を作るのか✓
RPM の作り方✓
YUM repository の作り方✓
spec file を読む✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
RPM とは
RPM Package Manager (RPM)
以前は RedHat Package Manager✓
✓
http://www.rpm.org/✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
なぜ RPM を作るのか
本番環境でビルドするのは面倒✓
本番環境以外でビルドしても、
tarball じゃ面倒
✓
依存関係の管理が面倒✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
RPM の作り方
ビルド環境を作る✓
spec file を書く✓
rpmbuild でビルド✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
ビルド環境を作る
GCC などのビルド関連パッケー
ジをインストール
yum groupinstall 'Development
tools'
✓
✓
~/.rpmmacros を用意
%_topdir の設定✓
✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
SRPM からビルドしてみる
$ wget http://vault.centos.org/6.6/os/Source/SPackages/less-436-13.el6.src.rpm
$ rpmbuild --rebuild less-436-13.el6.src.rpm
%{_topdir}/RPMS/x86_64/
less-436-13.el6.x86_64.rpm がで
きる。
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
spec file を読む
SRPM をインストールして
spec file を取り出す
rpm -ivh less-436-13.el6.src.rpm✓
%{_topdir}/SPECS/less.spec ができ
る
✓
✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
section
spec file は以下の 6 個のセクションからなる。
introduction section: パッケージ名などの
情報
✓
prep section: ソースの展開など✓
build section: configure && make など✓
install section: make install など✓
clean section: ビルドしたファイルの削除な
ど
✓
files section: パッケージに含めるファイル
の指定
✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
spec file から build して
みる
$ rpmbuild -ba %{_topdir}/SPECS/less.spec
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
基本は
ここまで
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
PHP
編
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
PHP の何をビルドする?
PHP CLI✓
PHP CGI✓
Apache module (mod_php)✓
PHP-FPM✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
全部
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
REMI の SRPM を読む
http://rpms.famillecollet.com/SRPMS/✓
http://rpms.famillecollet.com/SRPMS/
php-7.0.0-0.12.RC8.remi.src.rpm
✓
http://rpms.famillecollet.com/SRPMS/
php-5.6.16-1.remi.src.rpm
✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
yum repository の作り方
repository サーバは単なる
web server。
✓
createrepo コマンドでメタデ
ータを生成しておけばよい。
✓
polidog に RPM の作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8
まとめ
Linux で RPM を作るのは簡単

Polidog に RPM の作り方を教える

  • 1.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 polidog に RPM の 作り方を教える polidogと学ぶサーバに関する技術 2015-11-28 となか
  • 2.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 自己紹介 名前: となかふみひさ✓ ID: @ftnk✓ インフラエンジニア Solaris✓ ✓ 最近 Ruby で REST 叩く何か書 いてます ✓
  • 3.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 agenda RPM とは✓ なぜ RPM を作るのか✓ RPM の作り方✓ YUM repository の作り方✓ spec file を読む✓
  • 4.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 RPM とは RPM Package Manager (RPM) 以前は RedHat Package Manager✓ ✓ http://www.rpm.org/✓
  • 5.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 なぜ RPM を作るのか 本番環境でビルドするのは面倒✓ 本番環境以外でビルドしても、 tarball じゃ面倒 ✓ 依存関係の管理が面倒✓
  • 6.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 RPM の作り方 ビルド環境を作る✓ spec file を書く✓ rpmbuild でビルド✓
  • 7.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 ビルド環境を作る GCC などのビルド関連パッケー ジをインストール yum groupinstall 'Development tools' ✓ ✓ ~/.rpmmacros を用意 %_topdir の設定✓ ✓
  • 8.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 SRPM からビルドしてみる $ wget http://vault.centos.org/6.6/os/Source/SPackages/less-436-13.el6.src.rpm $ rpmbuild --rebuild less-436-13.el6.src.rpm %{_topdir}/RPMS/x86_64/ less-436-13.el6.x86_64.rpm がで きる。
  • 9.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 spec file を読む SRPM をインストールして spec file を取り出す rpm -ivh less-436-13.el6.src.rpm✓ %{_topdir}/SPECS/less.spec ができ る ✓ ✓
  • 10.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 section spec file は以下の 6 個のセクションからなる。 introduction section: パッケージ名などの 情報 ✓ prep section: ソースの展開など✓ build section: configure && make など✓ install section: make install など✓ clean section: ビルドしたファイルの削除な ど ✓ files section: パッケージに含めるファイル の指定 ✓
  • 11.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 spec file から build して みる $ rpmbuild -ba %{_topdir}/SPECS/less.spec
  • 12.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 基本は ここまで
  • 13.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 PHP 編
  • 14.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 PHP の何をビルドする? PHP CLI✓ PHP CGI✓ Apache module (mod_php)✓ PHP-FPM✓
  • 15.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 全部
  • 16.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 REMI の SRPM を読む http://rpms.famillecollet.com/SRPMS/✓ http://rpms.famillecollet.com/SRPMS/ php-7.0.0-0.12.RC8.remi.src.rpm ✓ http://rpms.famillecollet.com/SRPMS/ php-5.6.16-1.remi.src.rpm ✓
  • 17.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 yum repository の作り方 repository サーバは単なる web server。 ✓ createrepo コマンドでメタデ ータを生成しておけばよい。 ✓
  • 18.
    polidog に RPMの作り方を教える - polidogと学ぶサーバに関する技術2015-11-28 Powered by Rabbit 2.1.8 まとめ Linux で RPM を作るのは簡単