目次
rpmbuild
rpmbuild 環境を整える
$ sudo dnf install rpm-build rpm-sign gcc-c++ $ sudo dnf groupinstall "Development Tools" $ sudo dnf install fedora-packager
rpmbuild を行うためのディレクトリ構造を作成
必ず root 以外で作業すること。
$ rpmdev-setuptree
ホームディレクトリに以下の構造が作成される。
rpmbuild +-- BUILD +-- BUILDROOT +-- RPMS +-- SOURCES +-- SPECS +-- SRPMS
rpm マクロの修正(パッケージ署名の準備)
gpg2 の準備については GnuPG - GNU Privacy Guard の「自分の鍵の作成」 を参照。
$ vi ~/.rpmmacros
- ~/.rpmmacros
%_topdir %(echo $HOME)/rpmbuild %__arch_install_post \ [ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \ case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \ /usr/lib/rpm/check-buildroot # gpg2 による署名 %_signature gpg # 鍵の名前 or ID %_gpg_name FAA46609A58CD8A812E75B21D7382E77DC52FC64 # gpg2 のパス %_gpgbin /usr/bin/gpg2 # パッケージ作成者 %packager TomoYan <tomoyan@tomoyan.net>
ビルドとパッケージの署名
$ rpmbuild --sign -ba ~/rpmbuild/SPECS/tomoyan-release.spec
パッケージの署名のみ
$ rpm --addsign ruby* ruby-2.6.1-112.fc29.x86_64.rpm: ruby-debuginfo-2.6.1-112.fc29.x86_64.rpm: ruby-debugsource-2.6.1-112.fc29.x86_64.rpm: ruby-devel-2.6.1-112.fc29.x86_64.rpm: ruby-libs-2.6.1-112.fc29.x86_64.rpm: ruby-libs-debuginfo-2.6.1-112.fc29.x86_64.rpm: rubygem-bigdecimal-1.4.1-112.fc29.x86_64.rpm: rubygem-bigdecimal-debuginfo-1.4.1-112.fc29.x86_64.rpm: rubygem-io-console-0.4.7-112.fc29.x86_64.rpm: rubygem-io-console-debuginfo-0.4.7-112.fc29.x86_64.rpm: rubygem-json-2.1.0-112.fc29.x86_64.rpm: rubygem-json-debuginfo-2.1.0-112.fc29.x86_64.rpm: rubygem-openssl-2.1.2-112.fc29.x86_64.rpm: rubygem-openssl-debuginfo-2.1.2-112.fc29.x86_64.rpm: rubygem-psych-3.1.0-112.fc29.x86_64.rpm: rubygem-psych-debuginfo-3.1.0-112.fc29.x86_64.rpm:
パッケージ署名の確認
$ rpm --checksig ruby-2.6.1-112.fc29.src.rpm ruby-2.6.1-112.fc29.src.rpm: digests signatures OK $ rpm -qi ruby-2.6.1-112.fc29.src.rpm Name : ruby Version : 2.6.1 Release : 112.fc29 Architecture: x86_64 Install Date: (not installed) Group : Unspecified Size : 12057116 License : (Ruby or BSD) and Public Domain and MIT and CC0 and zlib and UCD Signature : RSA/SHA256, 2019年02月16日 02時31分03秒, Key ID d7382e77dc52fc64 Source RPM : (none) Build Date : 2019年02月08日 18時07分53秒 Build Host : black-vps001.tomoyan.local Relocations : (not relocatable) URL : http://ruby-lang.org/ Summary : An interpreter of object-oriented scripting language Description : Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in Perl). It is simple, straight-forward, and extensible.