RPM(RedHat Package Manager) RHELベースのシステム用のパッケージ管理システムです。 Redhatベースのシステムのすべてのパッケージの拡張子が.rpmであることに気付いたかもしれません。 。このチュートリアルは、独自のスクリプト用のRPMを作成する方法を説明します
データベースのバックアップを取るためのスクリプトを作成しました。今日、そのスクリプトのRPMファイルを作成しました。これは初めて作成したRPMです。以下は、私がそれを行うために従う手順です。
ステップ1-必要なパッケージをインストールする
まず、rpmファイルを作成するために必要なパッケージをシステムにインストールする必要があります。
$ yum install rpm-build rpmdevtools
ステップ2–ディレクトリ構造を作成する
ユーザーのホームディレクトリに移動し、以下のコマンドを使用して必要なディレクトリ構造を作成します。
$ rpmdev-setuptree
上記のコマンドは、以下のようなディレクトリ構造を作成します。
$ ls -l rpmbuild drwxr-xr-x 2 root root 6 Oct 25 03:09 BUILD drwxr-xr-x 2 root root 6 Oct 25 03:09 RPMS drwxr-xr-x 2 root root 6 Oct 25 03:09 SOURCES drwxr-xr-x 2 root root 6 Oct 25 03:09 SPECS drwxr-xr-x 2 root root 6 Oct 25 03:09 SRPMS
rpmdev-setuptreeの場合 コマンドで構造を作成できませんでした。手動で作成できます
$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,tmp}
ステップ3–rpmmacroファイルを作成する
次に、次の内容の〜/.rpmmacrosファイルを作成します。赤く強調表示された名前の値を変更します
〜/ .rpmmacros
%packagerYOUR_NAME %_topdir %(echo $HOME)/rpmbuild %_smp_mflags %( \ [ -z "$RPM_BUILD_NCPUS" ] \\\ && RPM_BUILD_NCPUS="`/usr/bin/nproc 2>/dev/null || \\\ /usr/bin/getconf _NPROCESSORS_ONLN`"; \\\ if [ "$RPM_BUILD_NCPUS" -gt 16 ]; then \\\ echo "-j16"; \\\ elif [ "$RPM_BUILD_NCPUS" -gt 3 ]; then \\\ echo "-j$RPM_BUILD_NCPUS"; \\\ else \\\ echo "-j3"; \\\ fi ) %__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
ステップ4–SOURCESディレクトリの下にファイルをコピーする
〜/ rpmbuild / SOURCES内のすべてのファイルとスクリプトフォルダをコピーします ディレクトリ。rpmファイルに追加する必要があります。このチュートリアルでは、チュートリアルAdvance Bash ScriptforMySQLで作成されたすべてのファイルを使用しました。
$ cd ~/rpmbuild/SOURCES $ ls -l mydumpadmin-1 -rw-r--r-- 1 root root 125 Oct 25 03:54 credentials.txt -rw-r--r-- 1 root root 4693 Oct 25 03:54 mysql-dump.sh -rw-r--r-- 1 root root 1008 Oct 25 03:54 README.md -rw-r--r-- 1 root root 3445 Oct 25 03:54 settings.conf
コードのtarballを作成します。
$ tar czf mydumpadmin-1.0.tar.gz mydumpadmin-1
ステップ5–SPECファイルを作成する
スペックファイルを作成する〜/ rpmbuild / SPECS / mydumpadmin.spec 以下のコンテンツを使用します。
〜/ rpmbuild / SPECS / mydumpadmin.spec
Name: mydumpadmin Version: 1 Release: 0 Summary: An Advance Bash Script for MySQL Database Backup Group: TecAdmin BuildArch: noarch License: GPL URL: https://github.com/tecrahul/mydumpadmin.git Source0: mydumpadmin-1.0.tar.gz %description Write some description about your package here %prep %setup -q %build %install install -m 0755 -d $RPM_BUILD_ROOT/etc/mydumpadmin install -m 0600 credentials.txt $RPM_BUILD_ROOT/etc/mydumpadmin/credentials.txt install -m 0755 mysql-dump.sh $RPM_BUILD_ROOT/etc/mydumpadmin/mysql-dump.sh install -m 0644 README.md $RPM_BUILD_ROOT/etc/mydumpadmin/README.md install -m 0644 settings.conf $RPM_BUILD_ROOT/etc/mydumpadmin/settings.conf %files /etc/mydumpadmin /etc/mydumpadmin/credentials.txt /etc/mydumpadmin/mysql-dump.sh /etc/mydumpadmin/README.md /etc/mydumpadmin/settings.conf %changelog * Tue Oct 24 2017 Rahul Kumar1.0.0 - Initial rpm release
必要に応じて、パッケージ名、スクリプトパス、アーカイブ名、説明などを変更します。
ステップ6–RPMを構築する
上記の手順を完了したら、次のコマンドを実行してrpmをビルドします。
$ cd ~/rpmbuild $ rpmbuild -ba SPECS/mydumpadmin.spec
正常にビルドされると、〜/ rpmbuild / RPMS / noarch / mydumpadmin-1-0.noarch.rpmのようなrpmファイルが作成されます。
以下のコマンドを使用してrpmをインストールします。インストールチェック後、ファイルは定義された場所として正しくインストールされます。
$ rpm -ivh mydumpadmin-1-0.noarch.rpm
この記事をご利用いただきありがとうございます。上記の手順が、独自のrpmの作成に役立つことを願っています。