安装.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则主要是头文件。


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

CentOS 安装 *.src.rpm

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

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

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

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

CentOS Kernel Source Install

CentOS Kernel Source Install Mar 12th, 2012 | Comments CentOS kernel source install, first of...

双显卡机器Centos7环境下NVIDIA驱动安装

http://linuxsysconfig.com/2014/09/nvidia-drivers-on-centos-7/ http://www.dedoimedo.com/computers/...

Docker - 基于NVIDIA-Docker的Caffe-GPU环境搭建

Docker 基于NVIDIA-Docker的Caffe-GPU环境搭建

NVIDIA + docker + caffe/digits 配套使用

docker搞不定GPU,我就没有办法用docker跑caffe的时候利用GPU,速度慢如蜗牛简直哭了出来,所以一直在纠结怎么样能够解决这个问题。这里是一个大杂烩,所以会持续更新,很多东西估计现在也没...

在Docker下使用Nvidia GPU进行计算

【系统:CentOS 7, Nvidia Titan X】 最近在使用GPU计算,同时也在使用docker做虚拟化环境。那么问题来了,在虚拟机下如何使用GPU呢?在网上找到了很多答案,例如使用LXC...

获取 GPG 密钥失败:[Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora

获取 GPG 密钥失败:[Errno 14] 2011-05-26 14:43 每个 fusion源发布的稳定 RPM 软件包都配有一个 GPG 签名。默认情况下,yum 和图形更新工具验证这...

Oozie4.2 安装部署、以及example测试

编译: 使用的环境是:Hadoop2.6.0、Spark1.4.0、Hive0.13.1、Sqoop1.4.4 编译Oozie的命令:./mkdistro.sh -Phadoop-2 -Dhadoop...

GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

Facebook是外国人人网 Twitter是外国的微博 Youtobe 是外国的优酷
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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