其次,只有相当少部分包将在其正常安装期间试图做一些只有 root 用户才可以做的事情,如: 创建特殊文件(管道.设备文件等等) 修改系统配置文件`
给软件打补丁 【程序编程相关:总谐波失真】
您必须逐个处理这些问题.通常,您可以在 post-install 脚本(在安装 rpm 之后运行的脚本)中做一些必要工作. 我将在以后的文章中讨论它们,但简而言之,可以将“%post”节添加到 spec 文件中, 并在该节中放置一些 linux 命令,以便在安装 rpm 之后运行这些命令. 【推荐阅读:供电方式】
您所需要做的就是对该软件的正式版本进行 打补丁或做一些修改. 但是,对其他人的软件进行修改,然后再分发此修改过的版本通常被认为是不礼貌的,所以您希望您自己所做的更改对别人来说也是可用的. 这样,使用您的包的任何人都可以看到您做了哪些事情以及确定您所做的更改是否是可接受的. 【扩展信息:备份失败?请检查移动存储服务】
假设您有一些要打成 rpm 包的软件, 但如果不对它做一些更改,就不能在 linux 上构建它. 然而,您又没有拥有该软件,所以不能正式地更改它.
这是常有的事,而且 rpm 也提供一些帮助. 您可以建立一个 rpm 包,以便二进制 rpm 文件包含您对程序所做的修改,并且源 rpm 不仅包含原始的源代码, 而且还包含您所做的更改以及有关如何应用与构建这些更改的所有详细信息.
这些步骤如下: 断定对源代码做哪些更改就可使软件工作. 创建一个 补丁文件来捕获您所做的更改. 将该补丁添加到 rpm spec 文件.
第 1 步. 断定要对源代码做哪些更改
通常,要做的第一件事是,在没有 rpm 的情况下编译并运行软件.明了必须要更改的那些文件. 如果有必要,可创建一些新文件或除去与原始源代码一起交付的一些文件.
对于这个示例,我将代码抽取到目录 indent-2.2.6-working 中.我修改了 indent.c, 以便在程序启动时打印一条表示友好的消息,然后验证该程序是否仍可以构建以及该程序是否仍能工作.
第 2 步. 创建补丁文件来捕获您所做的更改
现在,您希望创建一个仅捕获您所做更改的补丁文件. 这里有一种可以实现这的方法.虽然这有点儿乏味,但能够确保您捕获所有更改.
将软件完全抽取到一个新目录中,然后复制您已对其做过更改的文件,使其覆盖刚抽取出的那些文件. 这样,在本来应该在您先前构建与测试软件时创建的目录中就不会有任何多余的文件. 类似地,复制您创建的任何新文件,并删除任何您先前删除过的文件.对于这个示例,我已完全抽取到目录 indent-2.2.6-my,并覆盖文件 indent.c.
再一次将软件抽取到另一个目录.这样就提供了一个原始软件的副本来与您的软件进行比较.对于这个示例,我是将软件抽取到 indent-2.2.6 目录.现在,已有三个目录: indent-2.2.6-working 工作目录 indent-2.2.6-my 经过更改的软件,其中含有我所做的更改 indent-2.2.6 未更改的软件
... 下一页