导航:首页 > 源码编译 > 源码rpm怎么编译

源码rpm怎么编译

发布时间:2023-07-11 09:52:17

1. 如何将源码编译生成RPM包

1. make dist
2. rpmbuild -tb ovirt-engine-reports-3.5.6_master.tar.gz

2. 如何从linux源码创建RPM或DEB包

在Linux系统操作中,因为某些原因而想要直接从源码创建安装的软件包,下面就如何在Linux系统下从源码创建RPM或DEB包,以便将来可以更容易的卸载程序。

如果已经从它的源码运行“make install”安装了linux程序。想完整移除它将变得真的很麻烦,除非程序的开发者在Makefile里提供了uninstall的目标设置。否则必须在安装前后比较系统里文件的完整列表,然后手工移除所有在安装过程中加入的文件。

这时候Checkinstall就可以派上使用。Checkinstall会跟踪install命令行所创建或修改的所有文件的路径(例如:“make install”、“make install_moles”等)并建立一个标准的二进制包,让能用发行版的标准包管理系统安装或卸载它,(例如Red Hat的yum或者Debian的apt-get命令)。已知它在 Slackware、SuSe、Mandrake 和 Gentoo 上也工作很好,请参考其官方文档。

在这只集中在红帽子和Debian为基础的发行版,并展示怎样从源码使用Checkinstall创建一个RPM和DEB软件包

在linux上安装Checkinstall

在Debian及其衍生发行版上安装Checkinstall:

# aptitude install checkinstall

在红帽子的发行版上安装Checkinstall,你需要下载一个已经打包好的Checkinstall rpm包(例如:从 http://rpm.pbone.net/找到),不过它已经从Repoforge库里删除了。这个包是针对Cent OS6的,不过也可在Cent OS7里工作。

# wget

ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm# yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm

一旦checkinstall安装好,你就可以用下列格式创建一个特定的软件包

# checkinstall 《install-command》

如果没有参数,默认安装命令“make install”将被使用

用Checkinstall创建一个RPM或DEB包

在这个例子里,我们将创建一个htop包,这是一个linux交互式文本模式进程查看器(类似 top)。

首先,让我们从项目的官方网站下载源代码,作为一个好的习惯,我们存储源码包到/usr/local/src下,并解压它。

# cd /usr/local/src# wget http://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz# tar xzf htop-1.0.3.tar.gz# cd htop-1.0.3

让我们看看htop的安装命令是什么,以便我们能用Checkinstall命令调用它,如下面所示,htop用“make install”命令安装。

# 。/configure# make install

因此,要创建一个htop安装包,我们可以不带任何参数的调用checkinstall,这将使用“make install”命令创建一个包。在这个过程中, checkinstall命令会问你几个问题。

简而言之,如下命令会创建一个htop包:

# 。/configure# checkinstall

“Should I create a default set of package docs?(我会创建一个默认设置的包文件?)”,回答“Y”:

此可以输入一个包的简短描述,然后按两次回车:

输入一个数字以修改下面的任何值或ENTER继续:

上面就来Linux系统下使用checkinstall从源码创建RPM或DEB包的方法。

3. 如何升级centos7内核并且编译

、使用 elrepo rpm包升级
查看前系统内核版本 uname -r
1. 导入key
rpm --import
2. 安装 elrepo yum源
rpm -Uvh
3. 安装内核
yumelrepo源新版本内核直接yum安装即
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
5. 设置系统启顺序
查看系统启项:
cat /boot/grub2/grub.cfg |grep menuentry
发现新版本内核设置新版本内核默认启:
grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
查看默认启系统版本grub2-editenv list:
显示'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
6. reboot重启再查看 uname -r
二、使用源码编译安装升级
1 载内核源码
载网址
wget xxx
2 解压并进入源码目录
3 更新系统并安装依赖软件
#yum update
#yum upgrade
#yum groups install Development Tools
#yum install ncurses-devel qt-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel
4 前内核配置文件拷贝前目录
本应该执行make menuconfig自定义内核配置配置文件.config; 直接使用原系统内核配置拷贝/boot目录配置文件前目录
cp /boot/config-2.6.32-431.11.2.el6.x86_64 .config
5 使用前内核配置
#sh -c 'yes "" | make oldconfig' #centos 6
#sh -c 'y "" | make oldconfig' #centos 7
6 编译安装
#make bzImage
#make moles
#make moles_install
#make install
7 设置系统启顺序
查看系统启项:
cat /boot/grub2/grub.cfg |grep menuentry
发现新版本内核设置新版本内核默认启:
grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
查看默认启系统版本grub2-editenv list:
显示'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
8 reboot重启再查看 uname -r
-

4. Linux内核源码如何编译

首先uname -r看一下你当前的linux内核版本

1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname -r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。
2、配置内核 make menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。
3、编译,依次执行make、make bzImage、make moles、make moles
4、安装,make install
5、.创建系统启动映像,到 /boot 目录下,执行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于 /boot/grub/grub.cfg 文件的设置,找到if [ "${linux_gfx_mode}" != "text" ]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。

重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了。

最后再用uname -r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?
打字不易,如满意,望采纳。

5. 如何编译内核及制作RPM包

前言

要编译自内核能各种同答案列举:
1 研究习内核源码
2 支持新硬件或者打某项内核功能
3 升级内核更新版本
4 按自要求定制优化内核功能
种种...
折腾需要理由我说面直接进入主题
编译式
编译内核种式kernel.org载选择载需要版本内核源码
:linux-2.6.32-rc1.tar.bz2载内核源码/home/user/目录进入载目录解压压缩

#cd /home/user/
#tar -xjvf linux-2.6.32-rc1.tar.bz2

二 准备编译环境

始前首先确认面软件包已经安装(编译标普华4.0直接全部安装CD3保证条件)
* rpmdevtools
* yum-utils
fedora系统使用命令安装:
#yum install yum-utils rpmdevtools

1. rpmbuild命令工作所需目录树面命令完该操作手建立目录树
命令建立:
#rpmdev-setuptree

命令/usr/src/rpmbuild/目录目录结构(位置没则能前用户目录).

# tree /usr/src/rpmbuild/
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
面部rpmbuild环境建立rpm
3. 安装内核源码包需要依赖组件(跳步操作)

su -c 'yum-builddep kernel-.src.rpm'
4.安装内核源码系统默认目录/usr/src/neoshine:

rpm -Uvh kernel-.src.rpm

三 配置内核(config配置文件)

面介绍何解源码包并修改配置重新打包源码
1. 解源码包并打所补丁BUILD目录

cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` kernel.spec

kernel源码找:

/usr/src/neoshine/rpmbuild/BUILD/kernel-/linux-. directory

配置内核源码
1. 进入内核源码:

cd ~/rpmbuild/BUILD/kernel-2.6.$ver/linux-2.6.$ver.$arch/
2. 复制/boot/config*配置文件源码目录,config文件已经配或者其备份kernel配置文件:

cp /boot/config2.6- 2.6.$ver.$arch .config
3. 先检查kernel配置新增选项:

make oldconfig
4. 定制内核功能关闭initrd支持选项执行图形化内核配置工具:

make menuconfig
注:generic setup选项找initial RAM system and RAM disk(initramfs and initrd) support 项取消编译同确保跟文件系统应驱系统所存储器应驱都已经编译内核(否则启系统).

5. .config文件第行改面内容(注意:没行面编译报错)

# i386
6. 拷贝.configSOURCES/:

cp .config ../SOURCES/config-$arch

四 编译新内核

1. 面始准备编译新内核包
打SPEC/kernel.spec

vim SPEC/kernel.spec
改变面行内容定制自内核扩展名(fc10类):

%define buildid .
步新内核rpm包程需要编译内核源码包
使用面命令新内核源码包
rpmbuild -bb --with baseonly --without debuginfo --target=`uname -m` kernel.spec

参数说明:bb表示编译二进制包即源码包without debuginfo 表示没调试信息
target=`uname -r`表示应前平台内核包
面命令功执行完BUILD/i686目录新内核安装包

五 安装新内核

rpm -ivh kernel-$ver-$arch.rpm
步操作自安装内核boot目录安装应内核模块/lib/moles/目录并且新内核应grub引导菜单
修改grub引导菜单格式

title new kernel
kernel /boot/vmlinuz-$ver-$arch root=/dev/sdax(hdax)

注意处要使用uuid指定跟文件系统(能挂载根区导致内核死机)要再加显示相关参数(内核支持应设置看黑黑屏幕)
至禁用initrd新内核配置安装完毕

6. 如何编译安装源码包软件

怎样安装以源码包打包的软件;

1、源码包的打包格式;
源代码一般以file.tar.gz file.tar.bz2或file.src.rpm 打包;file.tar.gz和file.tar.bz2格式的解包命令如下;
[root@localhost beinan]# tar jxvf file.tar.bz2
[root@localhost beinan]# tar zxvf file.tar.gz

至于file.src.rpm 的用法,请参见:《file.src.rpm 使用方法的简介》

2、如何编译安装源码包;(大多数)

1)解开软件包查看帮助文档;

我们解开一个包后,进入解压包,一般都能发现README(或reame)和INSTALL( 或install);或doc(或DOC)目录;看名字就知道个差不多;
比如我们下载一个比较新的fcitx 的软件包,比如是 fcitx-3.2-050827.tar.bz2
我们在解开这个软件包会会发现如下的文件;
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ls
aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm
AUTHORS config.h.in configure.in depcomp install-sh missing THANKS
autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO
ChangeLog config.sub data fcitx.spec.in Makefile.am README tools
所以我们就可以看fcitx的INSTALL 和doc目录的安装文档了;里面都告诉我们如何安装;
有时安装文档也会在开发者的主页上有详细的说明,及常见问题的处理等;比如 LumaQQ

2)编译安装软件的条件;

首 先我们在Linux系统中至少得把开发工具安装上,比如 gcc ;perl;python;glibc;gtk;make ;automake 等开发工具或基础包;还要安装一些相应的开发包,一般是文件名包括dev的,比如kernel-devel;还有一些开发库,比如以lib开头的;如果您 在编译软件时,有时提示缺少什么东西之类的,大多少的是这些开发工具和开发库等;从光盘中找出安装就是了;有时光盘没有提供,请用google搜索相应的 软件包,有时可能也会用到源码包编译安装所依赖的包;
有时本来系统中已经安装了所依赖的包,但系统提示找不到应该怎么办?这时需要我们设置一下PKG_CONFIG_PATH的环境变量就行了;
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig

#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然后我们再来运行编译的./configure ;make ;make install ,尝试着来吧;
java开发的工具开发的程序,要用到 jre或者jdk ;jdk已经包括jre了,所以如果我们只是要求有一个java程序运行的环境,只需要安装jre就行了;安装好jre,配置一下java的环境变量就可以用了。如果是图形界面的程序,点点鼠标就OK了;
用perl 开发的程序,是需要perl环境的,所以必须得把perl的包安装上,python 也同理;

3)编译安装软件的方法;
大多以tar.gz 和tar.bz2打包软件,大多是通过 ./configure ;make ;make install 来安装的;有的软件是直接make;make install ;
我们可以通过./configure --help 来查看配置软件的功能;大多软件是提供./configure 配置软件的功能的;少数的也没有,如果没有的就不用./configure ;直接make;make install 就行了;
./configure 比较重要的一个参数是 --prefix ,用--prefix 参数,我们可以指定软件安装目录;当我们不需要这个软件时,直接删除软件的目录就行了;
比如我们可以指定fcitx 安装到 /opt/fcitx 目录中;
[root@localhost fcitx]#./configure --prefix=/opt/fcitx
如果我们不需要fcitx 时,可以直接删除 /opt/fcitx 目录;
所以我们举这个例子中,fcitx如果定制安装到 /opt/fcitx目录中,完整的安装方法应该是:
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install
调用fcitx ,应该是
[beinan@localhost ~]#/opt/fcitx/bin/fcitx
如果您想要让fcitx 只要执行fcitx ,就能调用,请配置环境变量,或者在/usr/bin 中做一个fcitx 的链接;
[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx
一般的情况下都有说,但大多软件没有提供源码包的卸载方法;我们可以找到软件的安装点删除。主要看你把它安装在哪了。
设置环境变量PATH,请参见:《在Fedora Core 中,有些常用命令怎么没有?解决办法设置PATH》
所以您的PATH可以设置成这样的;
export PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"
当然这只是举个例子,fcitx 可以进入桌面自动运行的,请参看 http://www.fcitx.org 官方站上的安装说明;举个例子只是让大家好理解一点;
再举一个例子,比如我想安装mlterm ;并指定安装目录为/opt/mlterm中; http://mlterm.sourceforge.net
#./configure --prefix=/opt/mlterm
#make
#make install

把源码包安装的软件,都指定安装在 /opt目录中,这样不就知道了软件安装在哪里了;也方便卸载;

7. Linux系统下用什么工具做安装包_linux软件安装包

【享】linux安装程序

初者都知道何linux安装程序面简单说

Linux系统安装软件见两种:

种软件源代码您需要自手编译种软件安装包通用gzip压缩tar包(缀名.tar.gz)

另种软件执行程序要安装种软件安装包通RPM包(RedHatLinuxPacket软件包管理器)缀名.rpm用RPM格式打包源代码、用gzip压缩执行套装程序要您理解思路两种形式安装包

源代码编译安装

Linux软件源代码发指提供该软件所程序源代码发布形式需要用户自编译执行二进制码并进行安装其优点配置灵随意掉或保留某些功能/模块适应种硬件/操作系统平台及编译环境;缺点难度较般适合初者使用

各软件源代码包般都各软件项目主页提供载例:等

1.*.src.rpm形式源宏拍码代码软件包

安装:

rpm-rebuild*.src.rpm

cd/usr/src/dist/RPMS

rpm-ivh*.rpm

卸载:

rpm-epackgename

说蔽哪明:rpm--rebuild*.src.rpm命令源代码编译并/usr/src/dist/RPMS二进制RPM软件包再安装该贺好二进制包即Packgename前所述

2.*.tar.gz/*.tgz/*.bz2形式源代码软件包

tar.gz或tgz或tar.bz2等格式结尾软件包般都源代码式发布软件安装类软件首先需要软件进行解压:

#tarzxvffilename.tar.gz

#tarxvfzfilename.tgz

#tarxvfjfilename.tar.bz2

解压进入解压目录:

#cdfilename/

于类文档见安装步骤:配置、编译安装3步其麻烦配置所软件安装相关配置都步指定:比软件安装位置等

配置:./configure

编译:make

安装:makeinstall

卸载:makeuninstall或手删除

说明:建议解压先阅读说明文件()解安装需求必要需改编译配置些软件包源代码编译安装用makeuninstall命令进行卸载提供功能则软件卸载必须手进行由于软件能文件散安装系统目录往往难删除干净应该编译前进行配置指定软件要安装目标路径:./configure--prefix=目录名使用rm-rf软件目录名命令进行干净彻底卸载与其安装式相比需要用户自编译安装难适合于使用Linux已定经验般推荐初者使用

RPM格式软件包安装

RPMRedHat公司发软件包管理器使用容易RPM形式软件包进行安装、升级、卸载、验证、查询等操作安装简单卸载软件安装处目录文件删除干净推荐初者尽能使用RPM形式软件包软件包往往特定命令规范名字由文件名版本号.rpm组字串例apache-3.1.12-i386.rpmapache-devel-3.1.12-i386.rpm软件包名称别-devel各支持RPM格式Linux见软件RPM包网站rpmfind.net找

1.安装

命令格式:

rpm-i(or--install)optionsfile1.rpm...fileN.rpm

参数:

file1.rpm...fileN.rpm指要安装RPM包文件名

详细选项:

-h(or—hash)安装输hash记号;test安装进行测试并实际安装;--percent百比形式输安装进度;--excludedocs安装软件包文档;--includedocs安装文档;--replacepkgs强制重新安装已经安装软件包;--替换属于其软件包文件;--force忽略软件包及文档冲突;--noscripts运行预安装安装脚本;--prefixNEWPATH软件包安装由NEWPATH指定路径;--ignorearch校验软件包结构;--ignoreos检查软件包运行操作系统;--nodeps检查依赖性关系;--ftpproxyHOST用HOST作FTP代理;--ftpportPORT指定FTP端口号PORT

通用选项:

-v显示附加信息;-vv显示调试信息;--rootDIRECTORY让指定路径作根目录预安装程序安装程序都安装目录;--rcfileFILELIST设置rpmrc文档FILELIST;--dbpathDIRECTORY设置RPM资料库所路径DIRECTORY

2.删除

命令格式:

rpm-e(or--erase)optionspkg1...pkgN

参数:

pkg1...pkgN:要删除软件包

详细选项:

--test执行删除测试;--noscripts运行预安装安装脚本程序;--nodeps检查依赖性

通用选项:

-vv显示调试信息;--rootDIRECTORY让指定路径作根目录预安装程序安装程序都安装目录;--rcfileFILELIST设置rpmrc文档FILELIST;--dbpathDIRECTORY设置RPM资料库所路径DIRECTORY

3.升级

命令格式:

rpm-U(or--upgrade)optionsfile1.rpm...fileN.rpm

参数:

file1.rpm...fileN.rpm指软件包名字

详细选项:

-h(or—hash)安装输hash记号;—oldpackage允许旧版本;--test进行升级测试;--excludedocs安装软件包文件;--includedocs安装文件;--replacepkgs强制重新安装已经安装软件包;--替换属于其软件包文件;--force忽略软件包及文件冲突;--percent百比形式输安装进度;--noscripts运行预安装安装脚本;--prefixNEWPATH软件包安装由NEWPATH指定路径;--ignorearch校验软件包结构;--ignoreos检查软件包运行操作系统;--nodeps检查依赖性关系;--ftpproxyHOST用HOST作FTP代理;--ftpportHOST指定FTP端口号HOST

通用选项:

-v显示附加信息;-vv显示调试信息;--rootDIRECTORY让指定路径作根目录预安装程序安装程序都安装目录;--rcfileFILELIST设置rpmrc文件FILELIST;--dbpathDIRECTORY设置RPM资料库所路径DIRECTORY

4.查询

命令格式:

rpm-q(or--query)options

参数:

pkg1...pkgN:查询已安装软件包

详细选项:

-pPACKAGE_FILE查询软件包文件;-fFILE查询FILE属于哪软件包;-a查询所安装软件包;--CAPABILITY查询提供CAPABILITY功能软件包;-ggroup查询属于group组软件包;--CAPABILITY查询所需要CAPABILITY功能软件包

选项:

-i显示软件包概要信息;-l显示软件包文件列表;-c显示配置文件列表;-d显示文件列表;-s显示软件包文档列表并显示每文件状态-;-scripts显示安装、卸载、校验脚本;--queryformat(or--qf)用户指定式显示查询信息;--mp显示每文件所已校验信息;--proVides显示软件包提供功能;--requires(or-R)显示软件包所需功能

通用选项:

-v显示附加信息;-vv显示调试信息;--rootDIRECTORY让指定路径作根目录预安装程序安装程序都安装目录;-rcfileFILELIST设置rpmrc文件FILELIST;--dbpathDIRECTORY设置RPM资料库所路径DIRECTORY

5.校验已安装软件包

命令格式:

rpm-V(or--verify,or-y)options

参数:

pkg1...pkgN要校验软件包名

软件包选项:

-pPACKAGE_FILE校验PACKAGE_FILE所属软件包;-a校验所软件包;-ggroup校验所属于组group软件包

详细选项:

--noscripts运行校验脚本;--nodeps校验依赖性;--nofiles校验文档属性

通用选项:

-v显示附加信息;-vv显示调试信息;--rootPATH让RPMPATH指定路径做根目录预安装程序安装程序都安装目录;--rcfileFILELIST设置rpmrc文件FILELIST;--dbpathDIRECTORY设置RPM资料库所路径DIRECTORY

6.校验软件包文件

语:

rpm-K(or--checksig)optionsfile1.rpm...fileN.rpm

参数:

file1.rpm...fileN.rpm软件包文件名;Checksig--详细选项;--nopgp校验PGP签名

通用选项:

-v显示附加信息;-vv显示调试信息;--rcfileFILELIST设置rpmrc文件FILELIST

7.其RPM选项

--rebuilddb重建RPM资料库;--initdb创建新RPM资料库;--quiet尽能减少输;--help显示帮助文件;--version显示RPM前版本

喜欢字符接口安装或卸载些软件包完全安装基于X-Window图形接口软件包管理程序glint,xrpm图形接口或使用KDEKPackage(单击【始】→【运行命令】其输入KPackage即启KPackage)等软件包安装、升级、卸载、验证查询通单击鼠标轻松完图所示

需要注意每RPM软件包格式软件并定独立各RPM软件包间定依赖关系删除某RPM软件包能导致别软件能使用升级删除应该注意

本载安装linux发现版本都几百兆我觉系统都没款点软件能用或者说用起问题啊我直觉安装包越越

8. Linux内核源码如何编译Ubuntu源代码在哪里呢

编译linux内核步骤:
1、安装内核
如果内核已经安装(/usr/src/目录有linux子目录),跳过。如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字,表示内核的版本号),比如RedHat linux的RPMS目录是/RedHat/RPMS/目录,然后使用命令rpm -ivh kernel-source-2.xx.xx.rpm安装内核。如果没有安装盘,可以去各linux厂家站点或者www.kernel.org下载。
2、清除从前编译内核时残留的.o 文件和不必要的关联
cd /usr/src/linux
make mrproper
3、配置内核,修改相关参数,请参考其他资料
在图形界面下,make xconfig;字符界面下,make menuconfig。在内核配置菜单中正确设置个内核选项,保存退出
4、正确设置关联文件
make dep
5、编译内核
对于大内核(比如需要SCSI支持),make bzImage
对于小内核,make zImage
6、编译模块
make moles
7、安装模块
make moles_install
8、使用新内核
把/usr/src/linux/arch/i386/boot/目录内新生成的内核文件bzImage/zImage拷贝到/boot目录,然后修改/etc/lilo.conf文件,加一个启动选项,使用新内核bzImage/zImage启动。格式如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux-new ### 告诉lilo缺省使用新内核启动linux ###
append="mem=256M"
image=/boot/vmlinuz-2.2.14-5.0
label=linux
read-only
root=/dev/hda5
image=/boot/bzImage(zImage)
label=linux-new
read-only
root=/dev/hda5
保留旧有的启动选项可以保证新内核不能引导的情况,还可以进入linux进行其他操作。保存退出后,不要忘记了最重要的一步,运行/sbin/lilo,使修改生效。
9、重新生成ram磁盘
如果您的系统中的/etc/lilo.conf没有使用了ram磁盘选项initrd,略过。如果您的系统中的/etc/lilo.conf使用了ram磁盘选项initrd,使用mkinitrd initrd-内核版本号,内核版本号命令重新生成ram磁盘文件,例如我的Redhat 6.2:
mkinitrd initrd-2.2.14-5.0 2.2.14-5.0
之后把/etc/lilo.conf中的initrd指向新生成的initrd-2.2.14-5.0文件:
initrd=/boot/initrd-2.2.14-5.0
ram磁盘能使系统性能尽可能的优化,具体参考/usr/src/linux/Documents/initrd.txt文件
10、重新启动,OK!

9. centos中怎么提取rpm中源码进行编译

如果下载的rpm包不是源码包,则可以直接
rpm -ivh xxxx.rpm 来进行安装。
如果是源码包可以通过
rpm--recompilexxx.rpm #这个命令会把源代码解包并编译、安装它,如果用户使用命令:
rpm--rebuild xxx.rpm#在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm 的RPM软件包。

阅读全文

与源码rpm怎么编译相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:736
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163