GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RedHatで独自のスクリプト用のRPMを作成する方法

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

%packager YOUR_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 Kumar  1.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の作成に役立つことを願っています。


Cent OS
  1. CentOS6でMySQLルートパスワードをリセットする方法

  2. CentOS / Fedora / RedHat(RHEL)のキックスタートファイルを作成する方法

  3. Linux / Centos/RedhatでYUMリポジトリを設定する方法| Linux / Centos/RedhatのYUM

  1. CentOS6にNtopngをインストールする方法

  2. CentOS7にHabariをインストールする方法

  3. あなたのウェブサイトのサブドメインを作成する方法

  1. CentOSでSudoユーザーを作成する方法

  2. CentOSバージョンを確認する方法

  3. Debianでパッケージ用の独自のリポジトリを作成する方法