织梦CMS - 轻松建站从此开始!

罗索

Linux基础篇 十二 (RPM 与 SRPM 套件管理员)

jackyhwei 发布于 2010-04-09 22:13 点击:次 
rpm/srpm管理/安装/更新/升级, 后面补充了rmp的网络安装与升级方式yum
TAG:

标签: rpm/srpm管理/安装/更新/升级, 后面补充了rmp的网络安装与升级方式yum

1. RPM : 以一种数据库记录的方式来将你所需要的套件安装到你的 Linux 主机的一套管理程序。最大的特点就是将要安装的套件先编译过,并且打包好了,透过包装好的套件里头预设的数据库记录,记录这个套件要安装的时候必须要的相依属性模块(就是你的 Linux 主机需要先存在的几个必须的套件)。缺点是安装的环境必须与打包时的环境需求一致或相当, 且有套件的属性相依问题,此时就要从上到下,依次把相依套件安装好才可安装当前套件。
xxxxxxxxx.rpm    <----RPM 的格式,已经经过编译且包装完成的 rpm 档案;

2. SRPM: 是原始码的格式,可以透过修改SRPM 内的参数设定档,然后重新编译产生能适合我们 Linux 环境的 RPM 档案,因此可以将该套件安装到我们的系统当中,而不必与原作者打包的 Linux 环境相同了!
xxxxx.src.rpm    <----SRPM的格式,包含未编译的原始码信息。

3. RPM相关指令
[root@linux ~]# rpm -ivh package_name
   -i :install 的意思
   -v :察看更细部的安装信息画面
   -h :以安装信息列显示安装进度

[root@linux ~]# rpm -qa
[root@linux ~]# rpm -q[licdR]    已安装的套件名称
[root@linux ~]# rpm -qf    存在于系统上面的某个档案
[root@linux ~]# rpm -qp[licdR] 未安装的某个文件名称

   -q : 仅查询,后面接的套件名称是否有安装;                      <----查询已安装
   -qa :列出所有的,已经安装在本机 Linux 系统上面的所有套件名称;
   -qi : 列出该套件的详细信息 (information),包含开发商、版本与说明等;
   -ql : 列出该套件所有的档案与目录所在完整文件名 (list);
   -qc :列出该套件的所有设定档 (找出在 /etc/ 底下的檔名而已)
   -qd :列出该套件的所有说明档 (找出与 man 有关的档案而已)
   -qR :列出与该套件有关的相依套件所含的档案 (Required 的意思) (可看出安装这个套件需要哪些套件的支持)
   -qf :由后面接的文件名称,找出该档案属于哪一个已安装的套件;

   -qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出某个 RPM 档案内的信息,而非已安装的套件信息!注意!

[root@linux ~]# rpm -e logrotate       <----解安装 logrotate 套件(必须从上往下解除)
[root@linux ~]# rpm --rebuilddb        <----重建数据库

4. SRPM的使用 (默认路径:/usr/src/redhat)

>设定档的主要内容
         因为SRPM提供源码,所以可以更改一些设定的内容,编译生成适合我们平台和要求的RPM包,然后再安装。以rp-pppoe-3.5-30.src.rpm为例
,具体过程如下:
[root@linux ~]# rpm -i /root/rp-pppoe-3.5-30.src.rpm <----将手头的SRPM档案解开放到/usr/src/redhat下

[root@linux ~]# cd /usr/src/redhat/SPECS      <----将SRPM编译成RPM的主要设定文档,其基本规则可以见具体文档,大致规则如下:
[root@linux SPECS]# vi rp-pppoe.spec          <----查看释放出来的设定文档
   #1. 整个档案的开头以Summary为开始,这部份的设定都是最基础的说明内容;
   #2. 然后每个不同的段落之间,都以%来做为开头,例如%prep与%install等

>设定文档修改完毕,接下来就是将它编译成可安装的RPM档案
--rebuild:    将后接的SRPM 进行编译与打包,并产生RPM的档案,但是产生的RPM档案并没有安装到系统上,安装的时候请加绝对路径来安装
即可!
--recompile: 这个动作会直接的编译打包并且安装!
在/usr/src/redhat/SPECS目录下直接执行:
[root@linux ~]# rpmbuild -bb rp-pppoe.spec    <----编译成RPM档案
[root@linux ~]# rpmbuild -ba rp-pppoe.spec    <----打包成SRPM档案,放到/usr/src/redhat/SRPM目录下

>RPM的升级和更新
[root@linux ~]# rpm -Fvh *.rpm ---->若后接套件未安装到您的 Linux 系统上,则该套件不会被安装;亦即只有安装至您 Linux 系统内的
套件会被升级!
[root@linux ~]# rpm -Uvh *.rpm ---->后面接的套件即使没有安装过,则系统将予以直接安装;若后面接的套件有安装过旧版,则系统自动
更新至新版!

-----------------------------------------------------------------------------------------------------------------------------------

@ linux上RPM的依赖关系手动整理非常恼火,如果安装某个.rpm时提示找不到某个依赖文件,最好的办法是让系统联通网络,执行网络安装命令: yum localinstal ****.rpm, 让它自己网上搜索合适的依赖文件安装。使用过,非常有效,具体命令格式如下:

  查询信息(以包含foo字段为例):yum info foo   (或先rpm -q foo 查看rpm是否已经安装)
搜索软件:yum search foo
安装软件(以foo-x.x.x.rpm为例):yum install foo-x.x.x.rpm
升级软件:yum upgrade foo或者yum update foo
删除软件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm
其它参数参见man yum

 

 

 

(shmily_soc)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201004/9053.html]
本文出处:百度博客 作者:shmily_soc
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容