第二十三章、软件安装: RPM, SRPM 与 YUM 功能
SRPM 的使用 : rpmbuild
包含Source code 的 SRPM
新版的 rpm 已经将 RPM 与 SRPM 的命令分开了,SRPM 使用的是 rpmbuild 这个命令,而不是 rpm !如果你是 Red Hat 7.3 以前的用户,那么请使用 rpm 来替代 rpmbuild !
利用默认值安装 SRPM 文件
(--rebuid/--recompile)
| --rebuild | 这个选项会将后面的 SRPM 进行『编译』与『打包』的动作,最后会产生 RPM 的文件,但是产生的 RPM 文件并没有安装到系统上。当你使用 --rebuild 的时候,最后通常会发现一行字体: Wrote: /usr/src/redhat/RPMS/i386/pkgname.i386.rpm 这个就是编译完成的 RPM 文件罗!这个文件就可以用来安装啦!安装的时候请加绝对路径来安装即可! |
| --recompile | 这个动作会直接的『编译』『打包』并且『安装』罗!请注意, rebuild 仅『编译并打包』而已,而 recompile 不但进行编译跟打包,还同时进行『安装』了! |
不过,要注意的是,这两个选项都没有修改过 SRPM 内的配置值,仅是透过再次编译来产生 RPM 可安装软件文件而已。
一般来说,如果编译的动作顺利的话,那么编译过程所产生的中间缓存档都会被自动删除,如果发生任何错误,
则该中间文件会被保留在系统上,等待使用者的除错动作!那么,该如何除错呢?如果想要自行除错,
或者是想要修改 SRPM 内的配置值时,就得要知道利用 SRPM 的时候,系统会动用到哪些重要的目录了!
底下我们就来谈一谈当处理 SRPM 时,系统会使用到的目录。
SRPM 使用的路径与需要的软件
SRPM 既然含有 source code ,那么其中必定有配置档罗,所以首先我们必需要知道,这个
SRPM 在进行编译的时候会使用到哪些目录呢?这样一来才能够来修改嘛!你可以到你的
/usr/src 这个目录里面去查看一下,通常每个 distribution 提供的目录都不太相同,以
CentOS 5.x 为例,他是以 /usr/src/redhat/ 为工作目录, Openlinux 则是以
/usr/src/openlinux 为工作目录!无论如何,反正就是在 /usr/src 这个目录下就对了!好了,既然我们是 CentOS ,
请到 /usr/src/redhat 里头去看一看呦:
| /usr/src/redhat/SPECS | 这个目录当中放置的是该软件的配置档,例如这个软件的资讯参数、配置项目等等都放置在这里; |
| /usr/src/redhat/SOURCES | 这个目录当中放置的是该软件的原始档 (*.tar.gz 的文件) 以及 config 这个配置档; |
| /usr/src/redhat/BUILD | 在编译的过程中,有些缓存的数据都会放置在这个目录当中; |
| /usr/src/redhat/RPMS | 经过编译之后,并且顺利的编译成功之后,将打包完成的文件放置在这个目录当中。里头有包含了 i386, i586, i686, noarch.... 等等的次目录。 |
| /usr/src/redhat/SRPMS | 与 RPMS 内相似的,这里放置的就是 SRPM 封装的文件罗!有时候你想要将你的软件用 SRPM 的方式释出时, 你的 SRPM 文件就会放置在这个目录中了。 |
此外,在编译的过程当中,可能会发生不明的错误,或者是配置的错误,这个时候就会在
/tmp 底下产生一个相对应的错误档,你可以根据该错误档进行除错的工作呢!
等到所有的问题都解决之后,也编译成功了,那么刚刚解压缩之后的文件,就是在
/usr/src/redhat/SPECS, SOURCES, BUILD 等等的文件都会被杀掉,而只剩下放置在
/usr/src/redhat/RPMS 底下的文件了!
由於 SRPM 需要重新编译,而编译的过程当中,我们至少需要有 make 与其相关的程序,及
gcc, c, c++ 等其他的编译用的程序语言来进行编译,更多说明请参考第二十二章原始码所需基础软件吧。
所以,如果你在安装的过程当中没有选取软件开发工具之类的软件,
呵呵!得重新拿出你的光盘,然后再安装喔!哈哈!只是得要克服一大堆的属性相依的问题就是了~
这问题待会儿可以使用 yum 来处理,你当然也可以先使用『 yum groupinstall "Development Tools" 』来安装开发软件。
鸟哥这里假设你已经安装了该软件群组罗。
例题:
你可以到 http://ftp.twaren.net/Linux/CentOS/5/os/SRPMS/ 找到这个软件来下载。
鸟哥这里使用 CentOS 5.3 的 rp-pppoe-3.5-32.1.src.rpm 为例喔。
答:
假设你已经将 rp-pppoe 软件下载到 /root 底下,那接下来可以简单的使用底下的方式来重新编译:
第二十三章、软件安装: RPM, SRPM 与 YUM 功能的更多相关文章
- 第五部分 linux 软件安装RPM SRPM与YUM
第五部分 linux 软件安装RPM SRPM与YUM 软件管理员简介 RPM与DPKG两大主流 rpm: redhat centos suse 命令:yum ...
- 软件安装 RPM SRPM YUM
RPM介绍 RPM是已经编译好的软件安装库.编译是有相应环境相适应的,包括系统,版本等相关信息都要跟编译版本一致才行,否则肯定会出现安装不成功的情况,强制安装的话,也会出现各种各样的问题. 在这种情况 ...
- centos6.5软件安装:RPM,SRPM与yum功能
鸟哥的linxu私房菜读书笔记 前言: Linux上软件的安装可以以原始码的方式来安装软件,也就是利用厂商释出的 Tarball 来进行软件的安装.不过,你应该很容易发现,那就是每次安装软件都需要侦测 ...
- 鸟哥的linux私房菜学习记录之软件安装RPM,SRPM,YUM
- 《Linux命令行与shell脚本编程大全》 第二十三章 学习笔记
第二十三章:使用数据库 MySQL数据库 MySQL客户端界面 mysql命令行参数 参数 描述 -A 禁用自动重新生成哈希表 -b 禁用 出错后的beep声 -B 不使用历史文件 -C 压缩客户端和 ...
- Gradle 1.12用户指南翻译——第二十三章. Java 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- “全栈2019”Java多线程第二十三章:活锁(Livelock)详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java第二十三章:流程控制语句中决策语句switch上篇
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 20190928 On Java8 第二十三章 注解
第二十三章 注解 定义在 java.lang 包中的5种标准注解: @Override:表示当前的方法定义将覆盖基类的方法.如果你不小心拼写错误,或者方法签名被错误拼写的时候,编译器就会发出错误提示. ...
随机推荐
- 求最低分最高分---c#(冒泡排序的运用)
// 输入10个人的分数,去掉两个最高两个最低,求平均分 Console.Write("请输入人数:"); int renshu = int.Parse(Console.ReadL ...
- 一个js加css加html完成的HTML
效果图: 代码: HTML: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...
- tupian
http://www.iconfont.cn/https://icons8.com/http://ico.58pic.com/http://www.easyicon.net/
- mysql5.7.14安装与配置
参考文章链接: http://jingyan.baidu.com/article/afd8f4de9006d934e286e9fd.html http://www.cnblogs.com/wenthi ...
- 我的第一篇博客:requestAnimationFrame学习笔记
通常,我们在浏览器中写动画会用到哪些技术呢? flash 可以实现一些非常复杂的动画,但随着HTML5的成熟,个人感觉flash终究会成为明日黄花. css3 当前大部分现代浏览器已经对css3支持的 ...
- Hibernate 使用说明
Eclipse中hibernate连接mySQL数据库练习(采用的是hibernate中XML配置方式连接数据库,以后在更新其他方式的连接) Hibernate就是Java后台数据库持久层的框架,也是 ...
- css:中文词不断开,整体换行
一.问题 关于文字的换行与不换行的问题有些特殊情况,是使用css的word-break等属性实现不了的,下面的情况就证明了: 我们想要的效果是,一个词整体换行或不换行,“兼职测试”可以都换至第二行 ...
- 高性能页面加载技术(流水线加载)BigPipe的C#简单实现(附源码)
一,BigPipe简介 BigPipe是一个重新设计的基础动态网页服务体系.大体思路是,分解网页成叫做Pagelets的小块,然后通过Web服务器和浏览器建立管道并管理他们在不同阶段的运行.这是类似于 ...
- 内存管理tcmalloc
tcmalloc https://code.google.com/p/gperftools/
- JavaScript中url 传递参数(特殊字符)解决方法
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码 十六进制值1. + URL 中+号表示空格 %2B2. 空格 UR ...