Gradle による rpmbuild
[履歴] [最終更新] (2017/08/01 00:45:05)

概要

こちらのページで基本的な使用方法をまとめた rpm コマンドや yum コマンドで扱う RPM パッケージファイルをビルドして作成するためのコマンドとしては rpmbuild が有名ですが、ここではより簡単な方法として、こちらのページで使用方法を把握した Gradle のタスクとして作成する方法をまとめます。

空の RPM パッケージを作成

以下の設定を行うことで空の RPM パッケージを作成できます。最新のバージョンは The Central Repository で検索して確認してください。

build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.netflix.nebula:gradle-ospackage-plugin:4.4.0'
    }
}

apply plugin: 'nebula.ospackage'

buildRpm {
    release '1'
}

ビルドの実行

./gradlew buildRpm

中身が空であることを確認

$ rpm -qpl ./build/distributions/rpmdemo-unspecified-1.noarch.rpm
(contains no files)

中身のある RPM パッケージを作成

指定したディレクトリ以下のファイルを RPM に含めるだけのシンプルなサンプルです。

build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.netflix.nebula:gradle-ospackage-plugin:4.4.0'
    }
}

apply plugin: 'nebula.ospackage'

buildRpm {
    packageName 'myrpm'
    version '1.2.3'
    release '1'
    arch 'X86_64'
    os 'LINUX'

    into '/usr/local/myrpm'

    from('src/main/resources') {
        into 'conf'
    }
}

ビルドの実行

mkdir -p src/main/resources
touch src/main/resources/sample.txt
./gradlew buildRpm

中身が存在することを確認

$ rpm -qpl build/distributions/myrpm-1.2.3-1.x86_64.rpm
/usr/local/myrpm
/usr/local/myrpm/conf
/usr/local/myrpm/conf/sample.txt
関連ページ