安装.src.rpm软件包和安装centos内核源代码

原创 2013年12月01日 20:48:21


摘要:在进行内核开发或者调试的时候,经常需要编译驱动,或者重新编译发行版内核或者内核中的某个软件。那么,我们应该从哪里取得发行版的内核源文件又该如何安装这些内核源文件呢?本文主要讲解了centos内核源文件的安装,附带讲解了一般src.rpm包的安装。

一、一般src.rpm包的安装

一般有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。这类软件包有两种安装方法:

方法一: 
1. 执行rpm -i your-package.src.rpm 
2. cd /usr/src/redhat/SPECS 
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件(bp的意思是执行spces文件之前的部分,通常情况下,这部分工作是执行%prep阶段的内容) 
4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录(工作目录) 
5. ./configure 这一步和编译普通的源码软件一样,可以加上参数 
6. make 
7. make install

方法二: 
1. 执行rpm -i>参看centos下软件包的制作)
2. cd /usr/src/redhat/SPECS (前两步和方法一相同) 
3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件(bb的意思是根据specs文件的配置,构建一个二进制包)

这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等) 在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。执行:

rpm -i new-package.rpm即可安装完成。


二、内核源文件.src.rpm包的安装


1)有时候,我们需要获得内核源文件(不是原生态的内核源文件而是发行版的内核源文件)。首先,我们需要到发行版的软件源去下载对应内核的软件包:

kernel-2.6.32-279.el6.src.rpm


2)接着,运行命令rpm -ivh kernel-2.6.32-279.el6.src.rpm。此时,对应的内核源文件并没有展开到相应的目录下面,而是将这个rpm包展开到/root/rpmbuild/SOURCE目录下面。


3)解压/root/rpmbuild/SOURCE对应目录下面的linux-2.6.32-279.el6.tar.bz2,即可得到内核头文件


三、获得linux不同发行版的内核源码

1)从对应的安装光盘获取:/cdrom/Pakages/ kernel-devel-2.6.xx-xx.rpm

2)从相应发行版的站点获取:http://vault.centos.org/6.4/updates/Source/SPackages/


四、几种具体的需求:


1)如果你需要编译一个内核的驱动程序模块,很大机会你并不是真的需要完整的内核源代码。你可能只需要kernel-devel组件。(然而,假若你肯定须要完整的源代码目录树,请遁从第二部份的指示。)通常情况下,这个kernel-devel只是包含相应的头文件和makefile文件。


2)获得完整版的linux发行版内核源文件

http://vault.centos.org/6.4/updates/Source/SPackages/

可以直接进行下载,然后按照第二部分的介绍进行安装。具体,可以参考这里,把它们制作成一般的rpm包,然后安装:http://wiki.centos.org/zh/HowTos/I_need_the_Kernel_Source


五、说明:

kernel devel与kernel source的区别


        区别:kernel-devel包只包含用于内核开发环境所需的内核头文件以及Makefile,而kernel-souce包含所有内核源代码。
如果仅仅是用于你自己编写的模块开发的话,因为只需引用相应的内核头文件,所以只有devel包即可,如果你要修改现有的内核源代码并重新编译,那必须是kernel-souce。

        kernel-souce在RH某些版本之后不再附带在发行版中了,必须自己通过kernel-XXX.src.rpm做出来。

        kernel-devel是用做内核一般开发的,比如编写内核模块,原则上,可以不需要内核的原代码。kernel则是专指内核本身的开发,因此需要内核的原代码。 

       关于kernel source的有kernel和kernel-devel两个rpm,其中kernel rpm包含源文件和头文件(就像2.4下的kernel-source rpm),而kernel-devel则主要是头文件。


相关文章推荐

Linux上如何安装 src.rpm文件

 安装.src.rpm有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。这类软件包有两种安装方法: 方法一: 1. 执行rpm -i your-packa...
  • russle
  • russle
  • 2009年11月18日 13:49
  • 5690

CentOS 安装 *.src.rpm

安装rpm build工具 yum install rpm* rpm-build rpmdev* 以安装oracle-validated-1.1.0-21.el5.src.rpm为例 1...

Linux学习7_*.src.rpm包与*.tar.gz、*.rpm包的区别

1. 用 rpm -ivh *.src.rpm 命令来安装,不会像二进制的 rpm软件包那样安装程序及其数据,而是向/usr/src/redhat(不同的发行版可能稍有不同)/下的SOURCE、SPE...

解压.src.rpm源码

1. 用rpm安装,然后在/usr/src/redhat/SOURCES就会有一个tar包 2. 用rpm2cpio *.src.rpm|cpio -iv命令,直接在本目录下产生出tar包...

rpm包安装、源码包安装的区别

rpm是安装在系统默认路径,源码包是安装在指定的路径。

Linux rpm包、rpm源码包及tar源码包的安装详解

在使用linux系统的过程中,软件包的安装是避免不了的,在linux下,软件安装程序的种类很多,安装方法也格式各样,论安装的舒适肯定比不上windows,windows安装软件基本就是用鼠标点击下一步...

centos 7 安装源码kernel source(源码树)编译驱动

1,安装源码,编译驱动https://wiki.centos.org/HowTos/I_need_the_Kernel_Source2,在这里可以找到你要的kernel 源代码http://vault...

linux编译*src.rpm源码的文件

如果对于内核安装用src.rpm不理解的话,可以参考文章 :点击打开链接 在Linux AS 4的发行注记中找到解释:当内核源码已经存在在内核的 .src.rpm 文件中时,为内核源码提供一个独立的...
  • raoqin
  • raoqin
  • 2013年12月08日 16:45
  • 1802

ClusterLabs-resource-agents安装过程中可能碰见的问题与解决办法

IPv6addr.c:106:31: error: clplumbing/cl_log.h: No such file or directorycc1: warnings being treated ...

Linux系统手动安装rpm包依赖关系分析(以Kernel升级为例)

有在Linux系统中安装软件的经历的人都知道,在Linux系统中手动安装软件不想在Windows下安装软件那么方便,直接双击,然后下一步下一步就可以把软件成功的装入到系统中,而在Linux系统中,安装...
  • CTO_51
  • CTO_51
  • 2014年02月25日 17:03
  • 4663
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安装.src.rpm软件包和安装centos内核源代码
举报原因:
原因补充:

(最多只允许输入30个字)