rpmbuild更改压缩格式

mkr*_*erx 19 compression rpm rpmbuild rpm-spec

我尝试在内部rpm包中为我们的地理服务器打包一些地图文件.对于构建部分,这只是复制文件.我认为这可以按预期工作.但要打包这些20GB的图像需要花费很长时间.

我已经读过rpm内部压缩数据,这可以通过几种不同的压缩算法来完成.但是,我不知道我的转速选择哪种压缩以及如何影响它.我找不到rpmbuild命令的任何选项,也没有为specfile找到任何选项,也没有找到我可以列出的常规rpm选项rpmbuild --showrc

我对rpmbuild和specfiles不是很有经验,但在阅读了很多关于rpm.org的手册和教程后,我没有进一步的想法.

我使用的specfile看起来像:

%define debug_package %{nil}

%global mapsversion 0.9
# If this is a snapshot, put the date here and uncomment
#global snapshot_version 20100519

# This is the version in a form acceptable
# an an RPM version string (i.e. no '-')
# Hier werden die Makros definiert.
%global rpmversion %(echo %{mapsversion} | tr '-' '_')
%global pkgversion %{mapsversion}%{?snapshot_version:-SNAPSHOT}
%global pkgname %{name}

Name:           geoserver-maps-part2
Version:        %{rpmversion}
Release:        1%{?dist}
Summary:        Swiss Maps for GeoServer
Group:          Application/ourApp
License:        Copyright (c) 2011
URL:            http://doc.polyalert.local
#Source0:        %{name}-%{version}.tgz
BuildArch:  noarch
BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires:   geoserver

%define mapshome /opt/geoserver/swisstopo
%define mapssource /home/user/polyalert_env/geoserver/swisstopo

%description
Swiss Maps for GeoServer

%prep

%build
/bin/true

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{mapshome}
cp -a %{mapssource}/pk100 $RPM_BUILD_ROOT%{mapshome}

%clean
rm -rf $RPM_BUILD_ROOT

%pre

%post

%preun


%files
%{mapshome}/pk100

%changelog
* Tue Feb 14 2012 user - 1.0
- First version of specfile
Run Code Online (Sandbox Code Playgroud)

我这样叫rpmbuild:

rpmbuild -bb --define "_topdir $TOP_DIR" --define "_gpg_name ourkey" --define "_signature gpg" --sign $TOP_DIR/SPECS/$SPEC_FILE_NAME $RPM_BUILD_PARAMETER
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Aar*_*sco 19

我今天正在使用一些RPM的东西,偶然发现了你的答案!

把它们放在你的spec文件中:

%define _source_payload w0.gzdio
%define _binary_payload w0.gzdio
Run Code Online (Sandbox Code Playgroud)

这仍将使用,gzip但将其传递-0给一个级别,这应该只存储.在我的RPM上,它使它从21MB增长到76MB,所以我很确定这是你的答案!

顺便说一句,我发现了一个该macro文件-你也可以做bzdio任何数09使用bzip2.这是在RHEL4上; 更高版本的RPM似乎支持更多压缩选项; 但同样,对于你想要的,上面应该是你需要的.

  • 那些应该支持`xz` - 见[这里](http://fedoraproject.org/wiki/Features/XZRpmPayloads). (2认同)

小智 6

请检查您的构建机器中的文件 /usr/lib/rpm/macros,(该文件可能在路径中存在差异),它有一个完整的压缩方法支持列表:例如:

329 #       Compression type and level for source/binary package payloads.
330 #               "w9.gzdio"      gzip level 9 (default).
331 #               "w9.bzdio"      bzip2 level 9.
332 #               "w7.xzdio"      xz level 7, xz's default.
333 #               "w7.lzdio"      lzma-alone level 7, lzma's default
334 #
335 #%_source_payload       w9.gzdio
336 #%_binary_payload       w9.gzdio
Run Code Online (Sandbox Code Playgroud)

所以这里就像 Aaron 说的,你可以在这里设置为通用,或者专门为你的项目设置。规格