如何rpmbuild打包GLIBC二进制库文件?

需要在SPEC文件中定义两个macro宏定义
Both 
%global __filter_GLIBC_PRIVATE 1
and
%define __requires_exclude libc.so.6(GLIBC_PRIVATE)
work well.

For Example

%define debug_package %{nil}

Name:		abc
Version:	0.2.13
Release:    1%{?dist}
Summary:	xxxxxx driver

Group:		Unspecified
License:	Copyright © 2020-present xxxxx All right reserved.
URL:		https://www.xxxx.com
Source0:	/root/rpmbuild/SOURCES/%{name}-%{version}.tar.bz2

#%global  _filter_GLIBC_PRIVATE 1
#%global __filter_GLIBC_PRIVATE 1

BuildRequires: autoconf
BuildRequires: automake

更多参考:

### 如何编译RPM包 在Linux环境中,RPM(Red Hat Package Manager)是一种常用的软件包管理工具。通过RPM可以方便地安装、卸载和升级软件包。以下是关于如何编译RPM包的相关说明。 #### 准备工作 为了成功编译RPM包,需要先准备好开发环境以及必要的依赖项。通常情况下,可以通过以下命令来安装所需的工具链: ```bash yum groupinstall "Development Tools" yum install rpm-build rpmlint ``` 这些工具提供了构建RPM所需的基础功能,包括`rpmbuild`用于创建RPM包,而`rpmlint`则用来检查生成的RPM包是否存在潜在问题[^1]。 #### 创建SPEC文件 SPEC文件是定义RPM包的核心配置文件,它包含了有关该软件包的所有元数据及其构建过程的信息。一般位于用户的`~/.rpmmacros`指定的工作目录下的`SPECS`子目录中。下面是一个简单的SPEC模板结构: - **Name**: 软件名称 - **Version**: 版本号 - **Release**: 发布版本号 - **Summary**: 简短描述 - **License**: 许可证类型 - **BuildRequires**: 构建过程中所需要的库或程序列表 - **%description**: 更详细的介绍文字 例如,在GCC的例子中会这样写入SPEC文件的部分字段: ```specfile Name: gcc Version: 4.4.7 Release: 3%{?dist} Summary: GNU Compiler Collection ... BuildRequires: glibc-devel, libmpc-devel ``` 当涉及到具体操作时,则需注意将某些固定路径替换为动态变量形式以便于后续调整,比如把所有涉及 `/usr/local` 的地方改为 `$RPM_BUILD_ROOT`, 这样做的好处是在正式部署前能够灵活改变目标位置而不影响测试阶段的结果验证[^2]. #### 执行RPMBUILD命令 完成上述准备工作之后就可以运行 `rpmbuild` 来启动整个流程了。假设我们已经编写好了一个名为example.spec的SPEC文件存放在~/rpmbuild/SPECS/, 那么执行如下指令即可触发完整的打包动作: ```bash rpmbuild -ba ~/rpmbuild/SPECS/example.spec ``` 这里 `-b` 参数后面接的是行为标志a代表全部处理即准备、编译直至最终产出二进制rpm文件为止;如果只想单独做某一部分也可以选用其他字母代替如 c 表示仅限于清理步骤等等[^4]. 另外值得注意的一点在于有时可能遇到未被打包进去额外文件的情况此时就需要借助check-files脚本来定位遗漏之处再补充完善至相应环节当中去确保最后产物纯净无误[^3]. --- ### 示例代码片段展示 对于一些特定场景下还需要考虑软连接的方式解决跨目录访问需求的问题可以用到ln命令实现快速映射关联关系建立起来从而简化整体架构设计复杂度降低维护成本提高效率. ```bash ln -s /path/to/source_directory_or_file /destination/link_name ``` 以上就是针对您所提出的关于学习掌握linux环境下进行rpm包编译方法论方面的解答希望能帮助到您! ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值