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

📄 0520rpm_and_srpm.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 5 页
字号:
</blockquote><hr width="100%"><a name="srpmmanager"></a><img src="0520rpm_and_srpm_files/penguin-m.gif" alt="" nosave="" align="middle" height="34" width="25"><font size="+1" color="#000099">SRPM的使用</font><blockquote>谈完了 RPM 类型的套件之后,再来我们谈一谈包含了 Source code的 SRPM 该如何使用呢?!假如今天我们由网络上面下载了一个 SRPM 的档案,该如何安装他?又,如果我想要修改这个SRPM 里面原始码的相关设定值,又该如何订正与重新编译呢?!此外,最需要注意的是,新版的rpm 已经将 RPM 与 SRPM 的指令分开了,SRPM 使用的是 rpmbuild 这个指令,而不是rpm 喔!如果您是 Red Hat 7.3 以前的用户,那么请使用 rpm 来替代 rpmbuild啦!</blockquote><ul><hr width="100%"><a name="srpmmanager_rebuild"></a><img src="0520rpm_and_srpm_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><font color="#000099">利用系统默认值安装SRPM 档案</font></ul><blockquote><blockquote>假设我下载了一个 SRPM 的档案,又不想要修订这个档案内的原始码与相关的设定值,那么我可以直接编译并安装吗?当然可以!利用rpmbuild 配合参数即可。参数主要有底下两个:<blockquote>&#160;<table border="0" cellspacing="3" cols="2" width="80%"><tbody><tr><td valign="top" width="100"><font color="#000066" face="SimSun">--rebuild</font></td><td><font color="#000000" face="SimSun">这个参数会将后面的 SRPM 进行『编译』与『打包』的动作,最后会产生RPM 的档案,但是产生的 RPM 档案并没有安装到系统上。当您使用 --rebuild 的时候,最后通常会发现一行字体:</font><br><b><font color="#000066" face="SimSun">Wrote: /usr/src/RPM/RPMS/i386/pkgname.i386.rpm</font></b><br><font color="#000000" face="SimSun">这个就是编译完成的 RPM 档案啰!那么这个档案就可以用来安装啦!安装的时候请加绝对路径来安装即可!</font></td></tr><tr><td valign="top"><font color="#000066" face="SimSun">--recompile</font></td><td><font color="#000000" face="SimSun">这个动作会直接的『编译』『打包』并且『安装』啰!请注意,rebuild 仅『编译并打包』而已,而 recompile 不但进行编译跟打包,还同时进行『安装』了!</font></td></tr></tbody></table></blockquote>一般来说,如果编译的动作顺利的话,那么编译过程所产生的中间暂存盘都会被自动删除,如果发生任何错误,则该中间档案会被保留在系统上,等待使用者的除错动作!那么,该如何除错呢?!如果想要自行除错,就得要知道利用SRPM 的时候,系统会动用到哪些重要的目录了!底下我们就来谈一谈当处理 SRPM时,系统会使用到的目录。</blockquote></blockquote><ul><hr width="100%"><a name="srpmmanager_dir"></a><img src="0520rpm_and_srpm_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><font color="#000099">SRPM使用的路径与需要的套件</font><ul><font color="#000099"> </font><br>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> <table border="0" cellspacing="3" cols="2" width="80%"><tbody><tr><td valign="top" width="200"><font color="#000099" face="SimSun">/usr/src/redhat/SPEC</font></td><td>这个目录当中放置的是该套件的设定档,例如这个套件的信息参数、设定项目等等都放置在这里;</td></tr><tr><td valign="top"><font color="#000099" face="SimSun">/usr/src/redhat/SOURCE</font></td><td>这个目录当中放置的是该套件的原始档(*.tar.gz的档案)以及 config 这个设定档;</td></tr><tr><td valign="top"><font color="#000099" face="SimSun">/usr/src/redhat/BUILD</font></td><td>在编译的过程中,有些暂存的数据都会放置在这个目录当中;</td></tr><tr><td valign="top"><font color="#000099" face="SimSun">/usr/src/redhat/RPMS</font></td><td>经过编译之后,并且顺利的编译成功之后,将打包完成的档案放置在这个目录当中。里头有包含了i386, i586, i686, noarch.... 等等的次目录。</td></tr></tbody></table>&nbsp;</ul></ul><ul>此外,在编译的过程当中,可能会发生不明的错误,或者是设定的错误,这个时候就会在/tmp 底下产生一个相对应的错误档,您可以根据该错误档进行除错的工作呢!等到所有的问题都解决之后,也编译成功了,那么刚刚解压缩之后的档案,就是在/usr/src/redhat/SPEC, SOURCE, BUILD 等等的档案都会被杀掉,而只剩下放置在/usr/src/redhat/RPMS 底下的档案了!<br><font color="#000099"> </font><br>由于 SRPM 需要重新编译,而编译的过程当中,我们至少需要有 make 与其相关的程序,及gcc, c, c++ 等其它的编译用的程序语言来进行编译,所以,如果您在安装的过程当中没有选取软件开发工具之类的套件,呵呵!得重新拿出你的光盘,然后再安装喔!哈哈!只是得要克服一大堆的属性相依的问题就是了~嗯!还是建议您再次的看一下<a href="http://linux.vbird.org//linux_basic/0150installredhat.php">如何安装</a>吧!</ul></ul><blockquote><hr width="100%"><a name="srpmmanager_config"></a><img src="0520rpm_and_srpm_files/penguin-s.gif" nosave="" align="middle" height="23" width="17"><font color="#000099">设定档的主要内容</font><blockquote>刚刚我们在上面提过了,SRPM还可以更改一些设定的内容,那么要如何修改这些设定的内容呢?我们以简单的rp-pppoe 这个套件来说明好了,你可以连上 Internet 上面的 rp-pppoe 官方网站下载SRPM ,或者由以下的方式来下载这个套件(请注意底下的档案是 2004/04 最新的档案数据,有可能在您看到本文时,这个套件已经更新了,所以请直接上底下的网址来下载吧!<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="#cccccc" face="SimSun">1. 下载 SRPM软件:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><b><font color="#ffff00">wget \</font></b></font><br><font size="-1" face="SimSun"><font color="#ffffff">&gt;</font><font color="#ffff00"><b>http://www.roaringpenguin.com/products/rp-pppoe/rp-pppoe-3.5-1.src.rpm</b></font></font><br><font size="-1" color="#ffffcc" face="SimSun"> </font><br><font size="-1" color="#cccccc" face="SimSun">2. 将 SRPM解开在/usr/src/redhat 底下的目录当中</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><b><font color="#ffff00">rpm –i rp-pppoe-3.5-1.src.rpm</font></b></font><br> <br><font size="-1" color="#cccccc" face="SimSun">3. 观察一下有哪些原始码呢?</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><b><font color="#ffff00">cd /usr/src/redhat/SOURCES</font></b></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testSOURCE]#</font><b><font color="#ffff00"> ls –l</font></b></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="#ff6666" face="SimSun"># 呵呵!上面显示我们的原始码就是这个档案啦!</font></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="#cccccc" face="SimSun">观察一下预设的设定档案内容:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><b><font color="#ffff00">cd /usr/src/redhat/SPECS</font></b></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testSPECS]# </font><b><font color="#ffff00">vi rp-pppoe.spec</font></b></font><br><font size="-1" face="SimSun">  </font><br><font size="-1" color="#ff6666" 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><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></p><p><font size="-1" color="#ffffff" face="SimSun">The client isa user-mode program and does not require any kernel</font><br><font size="-1" color="#ffffff" face="SimSun">modifications.It is fully compliant with RFC 2516, the official PPPoE</font><br><font size="-1" color="#ffffff" face="SimSun">specification.</font></p><p><font size="-1" color="#ffffff" face="SimSun">%prep</font><br><font size="-1" color="#ffffff" face="SimSun">%setup</font><br><font size="-1" color="#ffffff" face="SimSun">cd src</font><br><font size="-1" color="#ffffff" face="SimSun">./configure--mandir=%{_mandir}</font></p><p><font size="-1" color="#ffffff" face="SimSun">%build</font><br><font size="-1" color="#ffffff" face="SimSun">cd src</font><br><font size="-1" color="#ffffff" face="SimSun">make</font><br><font size="-1" color="#ffffff" face="SimSun">cd ../gui</font><br><font size="-1" color="#ffffff" face="SimSun">make</font></p><p><font size="-1" color="#ffffff" face="SimSun">%install</font><br><font size="-1" color="#ffffff" face="SimSun">cd src</font><br><font size="-1" color="#ffffff" face="SimSun">make installRPM_INSTALL_ROOT=$RPM_BUILD_ROOT</font><br><font size="-1" color="#ffffff" face="SimSun">cd ../gui</font><br><font size="-1" color="#ffffff" face="SimSun">make installRPM_INSTALL_ROOT=$RPM_BUILD_ROOT</font></p><p><font size="-1" color="#ffffff" face="SimSun">%clean</font><br><font size="-1" color="#ffffff" face="SimSun">rm -rf $RPM_BUILD_ROOT</font></p><p><font size="-1" color="#ffffff" face="SimSun">%files</font><br><font size="-1" color="#ffffff" face="SimSun">%defattr(-,root,root)</font><br><font size="-1" color="#ffffff" face="SimSun">%doc doc/CHANGESdoc/HOW-TO-CONNECT doc/LICENSE doc/KERNEL-MODE-PPPOE README SERVPOET</font><br><font size="-1" color="#ffffff" face="SimSun">%config(noreplace)/etc/ppp/pppoe.conf</font><font color="#ffccff"></font></p><p><font size="-1" color="#ffccff" face="SimSun">注:中间还有很多信息,被我省略掉了!知道了就好喔!</font></p><p><font size="-1" color="#ffffff" face="SimSun">%changelog</font><br><font size="-1" color="#ffffff" face="SimSun">* Thu Jul 212001 Shigechika AIKAWA &lt;shige@cin.nihon-u.ac.jp&gt;</font><br><font size="-1" col

⌨️ 快捷键说明

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