I have a RPM file. I have to make some changes to that RPM , repack it and Test. Can anyone help me?
The best way to modify an RPM you do not have the source for is to follow these steps:
- Unpack the rpm into a directory with the rpm2cpio command
- Make the necessary changes inside that subdirectory
- Make a "dummy" spec file and build it.
That dummy spec file might look like this:
Name: blah
Version: 1.0
Release: 1
Summary: blah
License: blah
Distribution: blah
Group: blah
Packager: me
BuildRoot: /path/to/dir/with/mods
%description
blah
%files
/path/to/dir/with/mods/*
Replace every "blah" in here with the real value (use rpm -qpi rpm file
to get the values). Replace the BuildRoot to the directory you have the modified rpm unwrapped. Then run rpmbuild -bb dummy.spec
.
Since there are no prep/setup/build/install steps defined, it'll just take what's in the buildroot and make an RPM.
If the rpm package has script files, you'll also have to put them in this dummy spec file. To see if the package has any scripts, run: rpm -qp --scripts rpm file
. Same thing goes for dependencies, prereqs, etc.
There may be other details I'm missing, but this should be enough to get you started.
UPDATE: For what it's worth, there is also http://rpmrebuild.sourceforge.net/
%files
should be relative to BuildRoot
. –
Amends cpio
archive. The step1 should be: rpm2cpio pkg_name.rpm | cpio -idmv
. –
Sender I think that is a concept called patch. I started patching the first srpm using this link. But the basic idea is that, get the srpm, install the srpm, create your patch inside that build area directory and specify the patch file %patch0 -p1 in the spec file. Then do rpm build. Happy patching!
© 2022 - 2024 — McMap. All rights reserved.
rpmbuild
'sBUILDROOT
setting. – Karie