1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

rpmのパッケージを作ってファイル配置する

Posted at

リリース作業など複数のサーバにファイルを配置する際、色々な手段がありますが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}

配信ファイル作成

kusakari-1.0/test.sh
#! /bin/sh
echo "test"
kusakari-1.0/date.sh
#! /bin/sh
date

配信ファイルのアーカイブ

tar -zcvf kusakari-1.0.tar.gz kusakari-1.0
mv kusakari-1.0.tar.gz rpmbuild/SOURCES/.

SPECファイルの作成

SPECS/kusakari.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経由で配置しました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?