- 准备构建环境
sudo yum install rpm-build rpmdevtools gcc
接着,设置您的RPM构建环境:
rpmdev-setuptree
这将在您的主目录下创建一个rpmbuild目录,其中包含BUILD, RPMS, SOURCES, SPECS, 和 SRPMS等子目录。 - 将wget-1.11.4.tar.gz源码包移动到~/rpmbuild/SOURCES目录下。
如果有必要的补丁,也应该放在这个目录下。 - 创建RPM规范文件
在~/rpmbuild/SPECS目录下创建一个名为wget.spec的规范文件。这个文件定义了如何构建RPM包。
下面是一个简化的例子(请根据需要调整)
%define _unpackaged_files_terminate_build 0
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
Name: wget
Version: 1.11.4
Release: 1%{?dist}
Summary: A utility for retrieving files using the HTTP or FTP protocols
License: GPL
Group: Applications/Internet
URL: https://www.gnu.org/software/wget/
Source0: %{name}-%{version}.tar.gz
BuildRequires: gcc
Requires: glibc
%description
GNU Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS the most widely-used Internet protocols.
%prep
%setup -q
%build
./configure
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%files
%defattr(-,root,root,-)
/usr/local/bin/wget
%changelog
* Tue Apr 10 2024 Your Name <your.email@example.com> - 1.11.4-1
- First build of wget
注意,这只是一个示例,您可能需要根据wget的实际构建依赖和文件布局进行调整
- 构建RPM包
在~/rpmbuild/SPECS目录下,使用rpmbuild命令开始构建过程
rpmbuild -ba wget.spec
这个命令将会开始构建过程,包括编译和打包wget。如果一切顺利,构建的二进制RPM包将会放在~/rpmbuild/RPMS目录下,你可以在其他相同架构的机器上使用rpm命令安装它:
rpm -ivh ~/rpmbuild/RPMS/x86_64/wget-1.11.4-1.x86_64.rpm
参考链接:
- . https://www.dbarj.com.br/en/2013/05/oracle-validated-rpm-red-hat-el5-2/ # rpmdevtools install in redhat 5
- https://stackoverflow.com/questions/1879734/rpm-build-error # /usr/src/redhat/BUILD/RPMS find: invalid predicate `’ error: Bad exit status from
- https://stackoverflow.com/questions/13401727/rpmbuild-installed-but-unpackaged-files-source # rpmbuild Installed (but unpackaged) files source