GNU/Linux >> Linux の 問題 >  >> Linux

TarballからRPMパッケージを作成する方法

RPM 、元々はRedHatパッケージマネージャー は、RedHatLinuxで使用するために作成された無料のオープンソースパッケージ管理システムです。ただし、 RPM CentOSなどの多くのLinuxディストリビューションで使用されています 、 Fedora Oracle Linux 。 RPMパッケージには、拡張子.rpmが付属しています。 。

ソースコードファイルにアクセスできる場合もありますが、システムにインストールできるRPMパッケージがない場合があります。このシナリオでは、ソースコードをコンパイルしてアプリケーションをインストールするか、ソースコードからRPMパッケージをビルドし、RPMファイルを使用してシステムにアプリケーションをインストールすることができます。

この記事では、アプリケーションのソースコードからRPMパッケージを構築する方法を学びます。

rpm-buildパッケージをインストール

rpmパッケージをビルドするには、 rpmbuildをインストールする必要があります 次のコマンドでパッケージ化します。

$ sudo yum install rpm-build

インストール後、次のコマンドを使用してrpmbuildのバージョンを確認します。

$ sudo rpmbuild --version

次のような出力が得られます:

ディレクトリ構造の作成

rpmbuildがディレクトリの欠落を訴える前に、ソースファイルを正しいディレクトリに保持するためにrpmbuildに必要なディレクトリを作成する必要がある場合があります。これらのディレクトリは、手動で作成することをお勧めします。

$ sudo mkdir {~/rpmbuild,~/rpmbuild/BUILD,~/rpmbuild/BUILDROOT,~/rpmbuild/RPMS,~/rpmbuild/SOURCES,~/rpmbuild/SPECS,~/rpmbuild/SRPMS}
>

treeコマンドを使用してディレクトリ構造を確認できます。

$ tree rpmbuild/

ソースtarファイルのダウンロード

次に、rpmファイルを作成するパッケージのソースコードファイルをダウンロードする必要があります。手順は、他のアプリケーションのRPMの構築と同様です。ビルドするRPM用のアプリケーションのソースコードを入手する必要があります。

ソース」に移動します 」ディレクトリを作成し、アプリケーションのソースコードをダウンロードします。この例では、rpmファイルを作成するための独自のサンプルを作成します。

$ cd rpmbuild/SOURCES
$ sudo wget https://github.com/apache/httpd/archive/2.4.28.tar.gz%20-O%20httpd-2..4.28.tar.gz
>

SPECファイルを作成する

SPECで rpmパッケージをビルドするために必要なファイル、手順、および情報が定義されています。 SPEC ファイルの拡張子は.specです。 ビルドの依存関係とランタイムの依存関係が含まれています。ビルドの依存関係は、RPMパッケージを作成するプログラムをコンパイルするために必要なソフトウェアであり、ビルドの依存関係は、プログラムを正しく実行するために必要なライブラリです。

SPECファイルは2つのマクロセクションで構成されており、プリアンブル および本体 。これらのマクロセクションでは、さまざまな命令を定義できます。

前文 セクションには、次の手順が含まれる場合があります。

Name: Name of the package
Version: Version of the package
URL: The URL of the application
Release: Release version of the package
License: License used for the package
Requires: Dependencies needed to run the software

本体 セクションには、次の手順が含まれています。

%description: Description of the software package
%prep: Command needed to prepare source code.
%files: List of the files received from the package

次に、SPECファイルを作成し、ディレクトリ rpmbuild / SPECSに保存します。 。この例では、 test-application.specを作成しました test-application-1.0を作成するためのサンプルファイル rpmパッケージ。

$ cd rpmbuild
$ cd SPECS
$ sudo vi test-application.spec

次の内容を貼り付けて、必要に応じて変更します。

Name: test-application
Version: 1.0                                                          
Release: 1%{?dist} 
Summary: Test application script
Group: Miscellaneous   
License: License text
Source0: test-application-1.0.tar.gz 
BuildArch: noarch                                                          
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
This is test application
%prep
%setup -q
%build
# %configure                       
# make %{?_smp_mflags}               
%install
rm -rf $RPM_BUILD_ROOT
# make install DESTDIR=$RPM_BUILD_ROOT    
install -d -m 0755 $RPM_BUILD_ROOT/opt/test-application
install -m 0755 HelloWorld.sh $RPM_BUILD_ROOT/opt/test-application/test-application-1.0.sh
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
# %doc
/opt/test-application/test-application-1.0.sh
%changelog

ファイルを保存して終了します。

RPMパッケージのビルドとインストール

かつてのSPEC ファイルが作成されたら、 rpmbuildを使用してrpmパッケージをビルドします コマンド。

$ sudo rpmbuild -ba rpmbuild/SPECS/test-application.spec

エラーが発生していないと仮定すると、rpmファイルは RPMS / noarchに作成されます。 ディレクトリをインストールする準備ができました。作成したRPMファイルをインストールするには、次のコマンドを実行します。

$ rpm -ivh rpmbuild/RPMS/noarch/test-application-1.0-1.el7.noarch.rpm

ここで、RPMのインストールを確認するには、次のコマンドを実行します。

$ rpm -qa | grep test-application-1.0

RPMパッケージをアンインストールするには、次のコマンドを実行します。

$ yum remove <rpm-package-name>

この例では、 test-application-1.0を削除しました パッケージ:

$ sudo yum remove test-application-1.0-1.el7.noarch
結論

この記事では、tarballを使用してRPMパッケージを作成する方法について学習しました。また、SPECファイルの作成、RPMパッケージのインストール、およびインストールされたRPMパッケージの削除についてのアイデアも得られました。


Linux
  1. Linux用のPythonアプリケーションをパッケージ化する方法

  2. LinuxでRPMまたはDEBパッケージからインストールされたファイルを一覧表示する方法

  3. Linux で rpm パッケージの整合性をチェックする方法

  1. LinuxRPMパッケージを作成する方法

  2. LinuxコマンドラインからLinuxブータブルUSBを作成する方法

  3. Virshを使用して最初からVmを作成する方法は?

  1. バイナリから簡単なDebianパッケージを作成する方法は?

  2. Ubuntu から neovim をアンインストールする方法

  3. Ubuntu から rhythmbox-plugins をアンインストールする方法