rpmのパッケージを作ってファイル配置する
リリース作業など複数のサーバにファイルを配置する際、色々な手段がありますがrpmにパッケージして配信しておけばバージョン管理やダウングレードが簡単になります。また長い間RHELやCentOSで継続利用されている仕組みであるため、人の入れ替わりや作業を他のメンバに依頼する場合であってもコマンド体系など学習コストがより少なく済みます。
(参考)有名チュートリアルを参考にする
https://blog.packagecloud.io/rpm/rpmbuild/packaging/2015/06/29/building-rpm-packages-with-rpmbuild/
(参考)手っ取り早くRPMパッケージを作成したかった
https://qiita.com/yukihane/items/fba4929b8b9e812975c1
目的
配信ファイルとSPECファイルを作成してrpmファイルを作成する
rpmコマンド経由で指定ディレクトリにファイルを配信する
環境整備
# rootで実施
$ yum install rpm-build
$ useradd kusakari
$ passwd kusakari
$ su - kusakari
$ mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
配信ファイル作成
#! /bin/sh
echo "test"
#! /bin/sh
date
配信ファイルのアーカイブ
tar -zcvf kusakari-1.0.tar.gz kusakari-1.0
mv kusakari-1.0.tar.gz rpmbuild/SOURCES/.
SPECファイルの作成
Name: kusakari
Version: 1.0
Release: 1%{?dist}
Summary: A hello world program
License: GPLv3+
URL: https://qiita.com/kaikusakari
Source0: kusakari-1.0.tar.gz
BuildArch: noarch
%define BLDDIR %{buildroot}/home/kusakari/work
%description
A helloworld program from the packagecloud.io blog!
%prep
%setup
%build
%install
rm -rf %{BLDDIR}
mkdir -p %{BLDDIR}
install -m 0755 test.sh %{BLDDIR}/test.sh
install -m 0755 date.sh %{BLDDIR}/date.sh
%clean
rm -rf %{buildroot}
%files
/home/kusakari/work/test.sh
/home/kusakari/work/date.sh
ビルド
$ rpmbuild -ba SPECS/kusakari.spec
Wrote: /home/kusakari/rpmbuild/SRPMS/kusakari-1.0-1.el7.centos.src.rpm
Wrote: /home/kusakari/rpmbuild/RPMS/noarch/kusakari-1.0-1.el7.centos.noarch.rpm
インストール
# rootで実施
$ rpm -qa | grep kusakari
$ rpm -ivh kusakari-1.0-1.el7.centos.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:kusakari-1.0-1.el7.centos ################################# [100%]
$ rpm -qa | grep kusakari
kusakari-1.0-1.el7.centos.noarch
$ ls -l /home/kusakari/work/
-rwxr-xr-x 1 root root 16 Apr 28 14:39 date.sh
-rwxr-xr-x 1 root root 23 Apr 28 14:39 test.sh
rpm経由で配置しました。
Author And Source
この問題について(rpmのパッケージを作ってファイル配置する), 我々は、より多くの情報をここで見つけました https://qiita.com/kaikusakari/items/5e530f2c95f32d7f4816著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .