⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0530srpm.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head>   <meta http-equiv="Content-Type" content="text/html; ">   <meta name="Author" content="VBird">   <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]">   <meta name="Description" content="使用 SRPM 來修改套件與編譯您自己的軟體">   <title>鸟哥的 Linux 私房菜 -- SRPM 的设定</title><!-- saved from url=(0022)http://internet.e-mail --><style>   <!--   body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED}   --></style></head><body nosave="" background="0530srpm_files/VBirdLinux.jpg"><center><center><b><font size="+2" color="#3333ff"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org/" target="_top"><img src="0530srpm_files/VBirdTitle2.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_basic"><img src="0530srpm_files/icon_system.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_server"><img src="0530srpm_files/icon_server.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_security"><img src="0530srpm_files/icon_security.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://phorum.vbird.org/" target="_blank"><img src="0530srpm_files/icon_forums.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/adsl"><img src="0530srpm_files/icon_adsl.gif" nosave="" border="0" height="25" width="90"></a><br><hr width="100%"></center><font size="+2" color="#3333ff"><a href="http://linux.vbird.org//linux_basic/0530srpm.php" target="_self"><font face="SimSun">动手制作</font><font face="Arial,Helvetica">SRPM</font></a></font></center><div align="right"><font size="-1" color="#3333ff" face="SimSun">最近更新日期:2003/02/11</font></div><font size="+1" color="#000099">本网页已经经过更新,最新信息放置在<a href="http://linux.vbird.org//linux_basic/0520rpm_and_srpm.php">RPM 与 SRPM 套件管理员</a> 当中。</font><br><font size="+1" color="#000099">本网页内容已不再继续维护更新!</font><br><hr width="100%"><font color="#000099"><font size="+1"><a href="#SRPM_tools">SRPM需要的套件</a></font>:</font><br><font color="#000099"><font size="+1"><a href="#SRPM_dir">SRPM 使用到的目录</a></font>:</font><br><font color="#000099"><font size="+1"><a href="#config">设定档的主要内容</a></font>:</font><br><font color="#000099"><font size="+1"><a href="#SRPM_compile">SRPM 的编译指令</a></font>:</font><br><font color="#000099"><font size="+1"><a href="#owner">打包自己的套件</a></font>:</font><br><font size="+1" color="#000099"><a href="#FAQ">本章习题练习</a></font><br><hr width="100%"><a name="SRPM_tools"></a><font size="+1" color="#000099">SRPM需要的套件:</font><blockquote>在上一节当中,我们介绍了 <a href="http://linux.vbird.org//linux_basic/0520rpmtarball.php">RPM</a>这个既可爱又可恨的家伙,RPM 的可爱在于他的数据库管理方式,很容易去查询与升级,而他的可恨呢?呵呵!就是在于他的binary 的档案不能再改变他的原始设定内容 ( 就是 *.rpm 的档案不能再重新编译的意思),与套件及套件之间的属性相依的问题~还真是伤脑筋吶!</blockquote><blockquote>没有关系,现在有解决的方法了!我们可以利用『<font color="#000099">含有source code 的 SRPM </font>』来重新编译 *.rpm 的档案成为我们所希望的样式了!就因为在SRPM 里面含有的不是 binary 的档案,而是含有 source code ,因此 SRPM 是不能直接拿来安装成为可执行的档案的。必需要将他重新编译,并且打包成为类似i386, i586, i686 等等 RPM 的档案之后,才能够安装在我们的系统当中哩!这个时候你就应该会想象啦,咦!既然如此的话,那么在编译的过程当中,我们是否可以加入其它的设定参数,来让我们的SRPM 可以依照我的想法来编译呢!?哈哈!答对了!所以呢,这个时候我们就要来修改别人的SRPM 以及编译自己的套件啦!</blockquote><blockquote>不过这里需要特别留意的就是,因为 SRPM 需要重新编译,而编译的过程当中,我们至少需要有make 与其相关的程序,及 gcc, c, c++等其它的编译用的程序语言来进行编译,所以,如果您在安装的过程当中没有选取软件开发工具之类的套件,呵呵!得重新拿出你的光盘,然后再安装喔!哈哈!只是得要克服一大堆的属性相依的问题就是了~嗯!还是建议您再次的看一下<a href="http://linux.vbird.org//linux_basic/0150installredhat.php">如何安装</a>吧!</blockquote><hr width="100%"><a name="SRPM_dir"></a><font size="+1" color="#000099">SRPM使用到的目录:</font><blockquote>SRPM 既然含有 source code ,那么其中必定有设定档啰,所以首先我们必需要知道,这个SRPM 在进行编译的时候,会使用到哪些目录呢?这样一来才能够来修改嘛!你可以到你的/usr/src 这个目录里面去查看一下,通常每个 distribution 提供的目录都不太相同,以Mandrake 9.0 为例,他是以 /usr/src/RPM 为工作目录, Red Hat 是以 /usr/src/redhat为工作目录, Openlinux 则是以 /usr/src/openlinux 为工作目录!无论如何,反正就是在/usr/src 这个目录下就对了!好了到 /usr/src/redhat 里头去看一看呦:<ul><li><font color="#000099">/usr/src/redhat/SPEC</font>:这个目录当中放置的是该套件的设定档,例如这个套件的信息参数、设定项目等等都放置在这里;</li></ul><ul><li><font color="#000099">/usr/src/redhat/SOURCE</font>:这个目录当中放置的是该套件的原始档(*.tar.gz的档案)以及config 这个设定档;</li></ul><ul><li><font color="#000099">/usr/src/redhat/BUILD</font>:在编译的过程中,有些暂存的数据都会放置在这个目录当中;</li></ul><ul><li><font color="#000099">/usr/src/redhat/RPMS</font>:经过编译之后,并且顺利的编译成功之后,将打包完成的档案放置在这个目录当中。里头有包含了i386, i586, i686, noarch.... 等等的次目录。</li></ul>此外,在编译的过程当中,可能会发生不明的错误,或者是设定的错误,这个时候就会在/tmp 底下产生一个相对应的错误档,您可以根据该错误档进行除错的工作呢!等到所有的问题都解决之后,也编译成功了,那么刚刚解压缩之后的档案,就是在/usr/src/redhat/SPEC, SOURCE, BUILD 等等的档案都会被杀掉,而只剩下放置在/usr/src/redhat/RPMS 底下的档案了!</blockquote><hr width="100%"><a name="config"></a><font size="+1" color="#000099">设定档的主要内容:</font><blockquote>刚刚我们在上面提过了,SRPM还可以更改一些设定的内容,那么要如何修改这些设定的内容呢?我们以简单的rp-pppoe 这个套件来说明好了,你可以连上 Internet 上面的 rp-pppoe 官方网站下载SRPM ,或者由以下的方式来下载这个套件(请注意底下的档案是 2002/11 最新的档案数据,有可能在您看到本文时,这个套件已经更新了,所以请直接上底下的网址来下载吧!<a href="http://www.roaringpenguin.com/pppoe/" target="_blank">http://www.roaringpenguin.com/pppoe/</a>)。至于基本的过程如下:<br> <table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" color="#ffffcc" face="SimSun">1. 下载 SRPM软件:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @testroot]# </font><font color="#ffff00">wget http://www.roaringpenguin.com/pppoe/rp-pppoe-3.5-1.src.rpm</font></font><p><font size="-1" color="#ffffcc" face="SimSun">2. 将 SRPM 解开在/usr/src/redhat底下的目录当中</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @testroot]# </font><font color="#ffff00">rpm –i rp-pppoe-3.5-1.src.rpm</font></font></p><p><font size="-1" color="#ffffcc" face="SimSun">3. 观察一下有哪些原始码呢?</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @testroot]# </font><font color="#ffff00">cd /usr/src/redhat/SOURCES</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @testSOURCE]#</font><font color="#ffff00"> ls –l</font></font><br><font size="-1" color="#ffffff" face="SimSun">-rw-rw-r--&#160;&#160;&#160;1 root&#160;&#160;&#160;&#160; root&#160;&#160;&#160;&#160;&#160;&#160;189321 Jul&#160; 8 22:38 rp-pppoe-3.5.tar.gz</font><br><font size="-1" color="#ffffcc" face="SimSun">呵呵!上面显示我们的原始码就是这个档案啦!</font></p></td></tr></tbody></table> <br>好了,来看看我们的设定参数档,亦即是在 /usr/src/redhat/SPECS 内的 *.spec档案啰!<br> <table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" color="#ffffcc" face="SimSun">观察一下预设的设定档案内容:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @testroot]# </font><font color="#ffff00">cd /usr/src/redhat/SPECS</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @testSPECS]# </font><font color="#ffff00">vi rp-pppoe.spec</font></font><p><font size="-1" color="#ffffcc" face="SimSun">没错!这个就是SRPM的预设设定内容档案啰,进去修改一下,里面的数据有点像这样:</font><br><font size="-1" color="#ffffff" face="SimSun">Summary: PPPOver Ethernet (xDSL support)</font><br><font size="-1" color="#ffffff" face="SimSun">Name: rp-pppoe</font><br><font size="-1" color="#ffffff" face="SimSun">Version: 3.5</font><br><font size="-1" color="#ffffff" face="SimSun">%if %(%{expand:test%{_vendor} != mandrake ; echo $?})</font><br><font size="-1" color="#ffffff" face="SimSun">Release: 1mdk</font><br><font size="-1" color="#ffffff" face="SimSun">%else</font><br><font size="-1" color="#ffffff" face="SimSun">Release: 1</font><br><font size="-1" color="#ffffff" face="SimSun">%endif</font><br><font size="-1" color="#ffffff" face="SimSun">Copyright:GPL</font><br><font size="-1" color="#ffffff" face="SimSun">Group: SystemEnvironment/Daemons</font><br><font size="-1" color="#ffffff" face="SimSun">Source: http://www.roaringpenguin.com/pppoe/rp-pppoe-3.5.tar.gz</font><br><font size="-1" color="#ffffff" face="SimSun">Url: http://www.roaringpenguin.com/pppoe/</font><br><font size="-1" color="#ffffff" face="SimSun">Packager: DavidF. Skoll &lt;dfs@roaringpenguin.com&gt;</font><br><font size="-1" color="#ffffff" face="SimSun">BuildRoot:/tmp/pppoe-build</font><br><font size="-1" color="#ffffff" face="SimSun">Vendor: RoaringPenguin Software Inc.</font><br><font size="-1" color="#ffffff" face="SimSun">Requires: ppp&gt;= 2.3.7</font></p><p><font size="-1" color="#ffffff" face="SimSun"># LIC: GPL</font><br><font size="-1" color="#ffffff" face="SimSun">%description</font><br><font size="-1" color="#ffffff" face="SimSun">PPPoE (Point-to-PointProtocol over Ethernet) is a protocol used by</font><br><font size="-1" color="#ffffff" face="SimSun">many ADSL InternetService Providers. Roaring Penguin has a free</font><br><font size="-1" color="#ffffff" face="SimSun">client forLinux systems to connect to PPPoE service providers.</font>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -