0

親ディレクトリの下にlibsampleapidocという名前のディレクトリを持つパッケージがあります%{name}-%{version}これらのフォルダーからRPMパッケージを生成したいと考えています。このrpmパッケージは、クライアントが指定した再配置先フォルダーの下にこれらのディレクトリを展開する必要があります。%{name}-%{version}すべてのパッケージ ディレクトリを含むフォルダーは、 tar.gzに圧縮され、 SOURCEフォルダーの下に保持されます。仕様ドキュメントと Web リソースを読んだ後、次の仕様ファイルを作成しました。

Name: BATMAN
Version: 1.0.0
Release:    1%{?dist}
Summary: A cricket match program
Group: System Environment/Base
License: MEMEME
Source0: BATMAN-1.0.0.tar.gz
Prefix: /tmp
%define reloc_dir /tmp
%define target_dir %{reloc_dir}/manish
%define installdir PingPong-v%{version}

%description
Here comes the description

%prep
rm -rf %{_topdir}/BUILD/*
rm -rf %{target_dir}

%setup

%install
mkdir -p %{buildroot}
cp -R %{_topdir}/BUILD/%{name}-%{version}/* %{buildroot}

###What should come down here##############
mkdir -p %{target_dir}
install -dD %{buildroot}/* %{target_dir}
###########################################

#find %{target_dir} -type d -exec chmod 755 {} \;
#find %{target_dir} -type f -exec chmod 644 {} \;
#chmod -R 755 %{target_dir}

%files
/sample/sample.cpp
/header/BATMAN.hpp
/header/BALLMAN.hpp
/header/BUSYMAN.hpp
/header/BUSHYMAN.hpp
/doc/BATMAN.docx
/lib/BATMAN.so
/lib/BALLMAN.so
/lib/BUSYMAN.so
/lib/BUSHYMAN.so

%defattr(-,root,root,0755)

%clean
rm -rf $RPM_BUILD_ROOT

%changelog

コマンドは、の%setup下の圧縮フォルダーを正常に展開します%{_topdir}/BUILD/。次に、これらのファイルをにコピーしました%{buildroot}%filesタグは、ビルドルートの下にファイルが存在することをパッケージに期待していたため)。これらすべてのファイルのパッケージ化も正常に行われますがsudo rpm -ivh --nodeps <Package-Vesrion-Arch>.rpm、結果の rpm でコマンドを実行すると、宛先側でフォルダーが作成されたり、コピーが行われたりすることはありません。パッケージが正常にインストールされていることを示していますが。rpm -qa私のパッケージのエントリがあります。

4

0 に答える 0