rpmbuild更改压缩格式

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (40)

我试图在一个内部rpm包中为Geoserver打包一些地图文件。对于构建部分,这只是复制文件。我认为这如预期的那样有效。但是,要打包20 GB的图像需要花费很长的时间。

我读过rpm内部压缩数据,这可以用几种不同的压缩算法来完成。但是,我不知道我的rpm选择哪种压缩,以及我如何影响这一点。我找不到rpmbuild命令的任何选项,也找不到specfile的任何选项,也找不到我可以用它列出的一般rpm选项的任何选项。rpmbuild --showrc

我对rpmbuild和specfiles不是很有经验,但是在阅读了rpm.org上的大量手册页和教程之后,我没有更多的想法了。

我使用的SPECTfile如下所示:

%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

我这样称呼rpmbuild:

rpmbuild -bb --define "_topdir $TOP_DIR" --define "_gpg_name ourkey" --define "_signature gpg" --sign $TOP_DIR/SPECS/$SPEC_FILE_NAME $RPM_BUILD_PARAMETER
提问于
用户回答回答于

把这些放进你的spec档案:

%define _source_payload w0.gzdio
%define _binary_payload w0.gzdio

那还会用到gzip但是把它传过去-0在某种程度上,这应该只是存储。在我的RPM上,它使它从21 Mb增长到76 MB.

在其中一个macro文件-你也可以bzdio任何数字09使用bzip2。这是在RHEL 4上的;RPM的后期版本似乎支持更多的压缩选项.

用户回答回答于

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

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

所以,就像Aaron说的,你可以在这里设定它为通用的,或者专门为你的Proj.spec设置。

扫码关注云+社区