自己动手制作RPM包

本文介绍了在Linux环境下自行制作RPM包的过程。从准备所需的源代码、配置文件开始,到具体的制作流程,最后通过实例演示了如何创建一个文本浏览器Lynx的RPM包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


自己动手制作RPM包

关键词自己动手制作RPM包

RPM 是Redhat Package Manage的缩写。透过RPM的管理,使用者可以把Source Code包装成一种Source和Binary的档案形式。利用它,我们可以用Binary的档案进行安装,用 Source 的档案形式重新整理包装。许多Linux爱好者对安装RPM包比较熟悉,但对如何在Linux下制作RPM包不甚了解,因此,我将通过实例,讲解如何在 Linux下制作RPM包。

1. 最初要求
为了创建RPM,你需要RPM要编译的源代码、一个rpmrc文件(设置一些RPM的缺省值并控制它的行为),以及一个spec文件(控制包的建立过程)。这里假定已有其它的开发环境(gcc、make、install、vi等),而且你的源代码已经编译成功。

2. 制作流程
1)确定/etc/rpmrc(也可能是/usr/lib/rpm/rpmrc)已经正确设定。rpmrc文件控制几乎所有RPM的行为。如果你想重载一个或多个全局设置,可以在~/.rpmrc文件中包含你的定制。可以使用rpm--showrc来显示RPM的当前设置。大多数情况下,rpmrc 文件的设置不需要改变。

2)取回所建造的源代码并放入正确的目录中。

3)编写spec文件。

4)使用rpm -ba 来构造整个程式套件。

3.应用举例
现在以Lynx实用程序来介绍构造RPM包的整个过程。Lynx是在文本方式下的Web浏览器,可以从ftp://www.slcc.edu/pub/lynx/取得。

1)得到lynx源代码。

2)lynx-2.8.spec文件的详细编写方法略。

3)使用RPM来构造包。

按照rpmrc文件的缺省设置,应该把lynx-2.8.spec文件放入SPECS/目录下,然后执行:

rpm -ba lynx-2.8.spec

其中-b 表示prep、compile、install,并build出一份binary RPM包。-a 表示执行所有的build动作,即还要build 出一份source code RPM包。

如果一切顺利的话,可以在RPMS/目录下找到lynx-2.8-4.i386.rpm文件。可以执行:

rpm -qpl lynx-2.8-4.i386.rpm

来观察RPM 包中是否包含了要求的所有文件。

为了测试它的正确性,可以拷贝此文件到另一台机器上,并执行:

rpm -ivh lynx-2.8-4.i386.rpm

进行安装测试。

一旦测试成功,就可以上载你的大作,享受成功的喜悦。

小结

制作RPM包需要开发人员做很多工作。比如不仅要懂得c/c++编程,而且还要能熟练掌握像make、autoconf、diff、patch、tar、 install等工具的使用并能编写spec文件。但从长远来看,应用RPM,在软件包的维护和方便性方面使得开发者受益。

【作者: Liberal】【访问统计:】【2006年03月20日 星期一 13:24】【注册】【打印】

当您在基于 RPM 的系统(如 CentOS、RHEL 或 Fedora)上使用 `yum` 安装软件时,发现找不到 `jemalloc` 相关,这通常是因为以下几个原因之一: 1. **存储库未启用**:某些发行版可能将 `jemalloc` 放置在附加的存储库中,默认情况下这些存储库可能是禁用状态。 2. **名称差异**:有时 `jemalloc` 可能不会直接以这个名字出现在 Yum 存储库列表内,而是作为别的依赖项隐藏起来。 3. **较旧的系统版本**:一些老旧的操作系统镜像可能根本没有含最新或者常用的工具集。 --- ### 解决办法 #### 方法一:检查并启用正确的存储库 对于许多企业级 Linux 配置而言,默认的基础仓库并不一定涵盖所有你需要的内容。例如,在 Red Hat Enterprise Linux (RHEL) 上,你可以通过订阅管理工具开启 EPEL 扩展储存区来获得更多程序支援。 ```bash sudo yum install epel-release -y # 对于CentOS用户通常是免费提供的。 ``` 接着再试一次搜索命令看看结果是否有变化: ```bash yum search jemalloc ``` #### 方法二:明确查找相关的开发套件 有时候主应用程序和它的开发资料会被拆分成两个独立的软件发布出去。“jemalloc”本身作为一个高效内存分配器很可能会被打成类似 “libjemalloc” 形式存在;同时为了方便程序员集成调试,则还会提供额外的一组头文件及静态库形式 —— 即所谓的 "-devel" 后缀结尾的东西。因此建议分别尝试以下两种安装指令: ```bash yum install libjemalloc.so # 如果确实叫这个名字的话 # OR # yum install jemalloc-devel # 开发者所需的完整素材集合 ``` #### 方法三:从源码编译安装 如果没有找到适合您的二进制分发档,那也可以考虑直接从官方网站或其他可信来源处抓取原始压缩回来自己动手制作专属版本。以下是简短概览步骤: 1. 访问 [Jemalloc GitHub 页面](https://github.com/jemalloc/jemalloc/releases),选取适当的稳定发行标签下载对应 tar.gz 文件。 2. 将其解压至任意临时目录,并依次执行如下操作: ```shell ./configure --prefix=/usr/local make && sudo make install ``` 3. 编辑全局环境变量配置文件 `/etc/profile` ,追加一行新的内容指向新生成的动态链接库位置: ```export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib``` 4. 刷新当前 Shell Session 内生效更改: ```source /etc/profile``` 最后确认是否一切正常工作无误: ```commandline ldconfig -p | grep jemalloc ``` --- ### 总结 综上所述,虽然偶尔会遇到 Yum 中缺失某款特定应用的情况,但我们总有多种途径能够妥善解决这一类难题。最重要的是先弄清楚问题的本质原因所在,然后针对性采取行动即可!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值