RPM的相关资料Word文件下载.docx
《RPM的相关资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《RPM的相关资料Word文件下载.docx(39页珍藏版)》请在冰豆网上搜索。
比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct9;
Linux和Windows原理是差不多的;
软件安装流程图:
本文使用范围:
1、本文是对RPM管理的软件的说明,对通过file.tar.gz或file.tar.bz2源码包用make;
makeinstall安装的软件无效;
2、安装软件时,最好用各自发行版所提供的系统软件包管理工具,对于Fedora/Redhat您可以参考如下文章;
1)Fedora系统管理软件包工具system-config-packages,方便的添加和移除系统安装盘提供的软件包,详情请看《Fedora软件包管理器system-config-packages》
2)Redhat系统管理软件包工具,新一点的系统应该是redhat-config-packages,用法和《Fedora软件包管理器system-config-packages》一样;
3)apt+synaptic软件包在线安装、移除、升级工具;
用法:
《用apt+synaptic在线安装或升级Fedoracore4.0软件包》
4)yum软件包在线安装、升级、移除工具;
用法:
《Fedora/Redhat在线安装更新软件包,yum篇》
5)所有的yum和apt教程《aptandyum》
目前apt和yum已经极为成熟了,建议我们安装软件时,采用apt或者yum;
如果安装系统盘提供的软件包,可以用system-config-packages或redhat-config-packages;
一、RPM包管理的用途;
1、可以安装、删除、升级和管理软件;
当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;
二、RPM的使用权限;
RPM软件的安装、删除、更新只有root权限才能使用;
对于查询功能任何用户都可以操作;
如果普通用户拥有安装目录的权限,也可以进行安装;
三、rpm的一点简单用法;
我们除了软件包管理器以外,还能通过rpm命令来安装;
是不是所有的软件包都能通过rpm命令来安装呢?
不是的,文件以.rpm后缀结尾的才行;
有时我们在一些网站上找到file.rpm,都要用rpm来安装;
一)初始化rpm数据库;
通过rpm命令查询一个rpm包是否安装了,也是要通过rpm数据库来完成的;
所以我们要经常用下面的两个命令来初始化rpm数据库;
[root@localhostbeinan]#rpm--initdb
[root@localhostbeinan]#rpm--rebuilddb
注:
这个要花好长时间;
注:
这两个参数是极为有用,有时rpm系统出了问题,不能安装和查询,大多是这里出了问题;
二)RPM软件包管理的查询功能:
命令格式
rpm{-q|--query}[select-options][query-options]
RPM的查询功能是极为强大,是极为重要的功能之一;
举几个常用的例子,更为详细的具体的,请参考#manrpm
1、对系统中已安装软件的查询;
1)查询系统已安装的软件;
语法:
rpm-q软件名
举例:
[root@localhostbeinan]#rpm-q
gaim
gaim-1.3.0-1.fc4
-q就是--query,中文意思是“问”,此命令表示的是,是不是系统安装了gaim;
如果已安装会有信息输出;
如果没有安装,会输出gaim没有安装的信息;
查看系统中所有已经安装的包,要加-a参数;
[root@localhostRPMS]#rpm-qa
如果分页查看,再加一个管道|和more命令;
[root@localhostRPMS]#rpm-qa|more
在所有已经安装的软件包中查找某个软件,比如说gaim;
可以用grep抽取出来;
[root@localhostRPMS]#rpm-qa|grepgaim
上面这条的功能和rpm-qgaim输出的结果是一样的;
2)查询一个已经安装的文件属于哪个软件包;
语法rpm-qf文件名
文件名所在的绝对路径要指出
[root@localhostRPMS]#rpm-qf/usr/lib/libacl.la
libacl-devel-2.2.23-8
3)查询已安装软件包都安装到何处;
rpm-ql
软件名
或rpmrpmquery-ql
软件名
[root@localhostRPMS]#rpm-qllynx
[root@localhostRPMS]#rpmquery-ql
lynx
4)查询一个已安装软件包的信息
语法格式:
rpm-qi软件名
[root@localhostRPMS]#rpm-qilynx
5)查看一下已安装软件的配置文件;
rpm-qc软件名
[root@localhostRPMS]#rpm-qclynx
6)查看一个已经安装软件的文档安装位置:
rpm-qd软件名
[root@localhostRPMS]#rpm-qdlynx
7)查看一下已安装软件所依赖的软件包及文件;
rpm-qR软件名
[root@localhostbeinan]#rpm-qR
rpm-python
查询已安装软件的总结:
对于一个软件包已经安装,我们可以把一系列的参数组合起来用;
比如rpm-qil;
比如:
[root@localhostRPMS]#rpm-qillynx
2、对于未安装的软件包的查看:
查看的前提是您有一个.rpm的文件,也就是说对既有软件file.rpm的查看等;
1)查看一个软件包的用途、版本等信息;
rpm-qpi
file.rpm
[root@localhostRPMS]#rpm-qpilynx-2.8.5-23.i386.rpm
2)查看一件软件包所包含的文件;
rpm-qpl
[root@localhostRPMS]#rpm-qpl
lynx-2.8.5-23.i386.rpm
3)查看软件包的文档所在的位置;
rpm-qpd
[root@localhostRPMS]#rpm-qpd
5)查看一个软件包的配置文件;
rpm-qpc
[root@localhostRPMS]#rpm-qpc
4)查看一个软件包的依赖关系
rpm-qpR
[root@localhostarchives]#rpm-qpRyumex_0.42-3.0.fc4_noarch.rpm
/bin/bash
/usr/bin/python
config(yumex)=0.42-3.0.fc4
pygtk2
pygtk2-libglade
rpmlib(CompressedFileNames)<
=3.0.4-1
rpmlib(PayloadFilesHavePrefix)<
=4.0-1
usermode
yum>
=2.3.2
三)软件包的安装、升级、删除等;
1、安装和升级一个rpm包;
[root@localhostbeinan]#rpm
-vihfile.rpm注:
这个是用来安装一个新的rpm包;
[root@localhostbeinan]#rpm-Uvhfile.rpm注:
这是用来升级一个rpm包;
如果有依赖关系的,请解决依赖关系,其实软件包管理器能很好的解决依赖关系,请看前面的软件包管理器的介绍;
如果您在软件包管理器中也找不到依赖关系的包;
那只能通过编译他所依赖的包来解决依赖关系,或者强制安装;
语法结构:
[root@localhostbeinan]#rpm-ivhfile.rpm--nodeps--force
[root@localhostbeinan]#rpm-Uvhfile.rpm--nodeps--force
更多的参数,请查看manrpm
举例应用:
[root@localhostRPMS]#rpm-ivhlynx-2.8.5-23.i386.rpm
Preparing...
###########################################[100%]
1:
lynx
[root@localhostRPMS]#rpm-ivh--replacepkgs
lynx-2.8.5-23.i386.rpm
--replacepkgs参数是以已安装的软件再安装一次;
有时没有太大的必要;
测试安装参数--test,用来检查依赖关系;
并不是真正的安装;
[root@localhostRPMS]#rpm-ivh--test
gaim-1.3.0-1.fc4.i386.rpm
由新版本降级为旧版本,要加--oldpackage参数;
[root@localhostRPMS]#rpm-qagaim
gaim-1.5.0-1.fc4
[root@localhostRPMS]#rpm-Uvh--oldpackagegaim-1.3.0-1.fc4.i386.rpm
gaim
为软件包指定安装目录:
要加-relocate参数;
下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在/opt/gaim目录中;
[root@localhostRPMS]#rpm-ivh
--relocate/=/opt/gaim
[root@localhostRPMS]#ls/opt/
gaim
下面的举例是把lynx-2.8.5-23.i386.rpm指定安装在/opt/lynx目录中;
[root@localhostRPMS]#rpm-ivh--relocate/=/opt/lynx--badreloclynx-2.8.5-23.i386.rpm
Preparing...###########################################[100%]
1:
lynx###########################################[100%]
我们安装在指定目录中的程序如何调用呢?
一般执行程序,都放在安装目录的bin或者sbin目录中;
看下面的例子;
如果有错误输出,就做相应的链接,用ln-s;
[root@localhostRPMS]#/opt/lynx/usr/bin/lynx
Configurationfile/etc/lynx.cfgisnotavailable.
[root@localhostRPMS]#ln-s/opt/lynx/etc/lynx.cfg/etc/lynx.cfg
[root@localhostRPMS]#/opt/lynx/usr/bin/lynxwww.linuxsir.org
2、删除一个rpm包;
首先您要学会查询rpm包;
请看前面的说明;
[root@localhostbeinan]#rpm-e软件包名
我想移除lynx包,完整的操作应该是:
[root@localhostRPMS]#rpm-elynx
如果有依赖关系,您也可以用--nodeps忽略依赖的检查来删除。
但尽可能不要这么做,最好用软件包管理器systerm-config-packages来删除或者添加软件;
[root@localhostbeinan]#rpm-elynx--nodeps
四、导入签名:
[root@localhostRPMS]#rpm--import签名文件
[root@localhostfc40]#rpm--importRPM-GPG-KEY
[root@localhostfc40]#rpm--importRPM-GPG-KEY-fedora
关于RPM的签名功能,详情请参见manrpm
五、RPM管理包管理器支持网络安装和查询;
比如我们想通过FedoraCore4.0的一个镜像查询、安装软件包;
地址:
http:
//mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/
命令格式:
rpm参数rpm包文件的http或者ftp的地址
#rpm-qpihttp:
//mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
#rpm
-ivhhttp:
举一反三吧;
六、对已安装软件包查询的一点补充;
[root@localhostRPMS]#updatedb
[root@localhostRPMS]#
locate软件名或文件名
通过updatedb,我们可以用locate来查询一些软件安装到哪里了;
系统初次安装时要执行updatedb,每隔一段时间也要执行一次;
以保持已安装软件库最新;
updatedb是slocate软件包所有;
如果您没有这个命令,就得安装slocate;
locategaim
七、从rpm软件包抽取文件;
rpm2cpiofile.rpm|cpio-div
[root@localhostRPMS]#rpm2cpiogaim-1.3.0-1.fc4.i386.rpm|cpio-div
抽取出来的文件就在当用操作目录中的usr和etc中;
其实这样抽到文件不如指定安装目录来安装软件来的方便;
也一样可以抽出文件;
这样也能一目了然;
gaim的所有文件都是安装在/opt/gaim中,我们只是把gaim目录备份一下,然后卸掉gaim;
这样其实也算提取文件的一点用法;
八、RPM的配置文件;
RPM包管理,的配置文件是rpmrc,我们可以在自己的系统中找到;
比如FedoraCore4.0中的rpmrc文件位于;
[root@localhostRPMS]#locaterpmrc
/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
我们可以通过rpm--showrc查看;
具体的还得我们自己来学习。
呵。
。
不要问我,我也不懂;
只要您看了这篇文章,认为对您有用,您的水平就和我差不多;
咱们水平是一样的,所以我不能帮助您了;
请理解;
九、src.rpm的用法:
《file.src.rpm使用方法的简介》
后记:
Fedora/Redhat入门教程中的软件包管理篇,我已经写了很多了;
目前还缺少通过源码包安装软件我方法以及一篇总结性的文档;
我想在最近两天补齐,这两篇我以前写过;
重新整理一下贴出来就行了;
以我的水平来看,写Fedora入门教程是极为费力气的,只能一点一点的完善和补充;
我所写的教程是面对的是对Linux一无所知新手;
教程中实例应用占大部份;
我发现没有实例的情况下,新手不如看man;
能看man了,当然也不是什么新手;
经常在论坛上看一些弟兄的提问,虽然一问话解说过去也能应付;
但想让大家更方便一点,不如写系统入门教程;
虽然所花的时间要长一点;
Fedora/Redhat软件包管理指南
在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础;
只有我们学会软件包的管理才能谈得上其它的应用;
本文以目录式的文档格式,列出新手弟兄所面对的软件包的安装、更新、查询相对的文档,以及几个常用的软件包管理工具,比如system-cofig-packages、yum、apt等的文档目录等;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
一、软件包管理的基础;
1、什么是RPM,RPM有何用?
初次为Fedora/Redhat安装软件,我们应该学会RPM的安装和使用,也应该知道RPM是做什么用的;
在下面文档中,您可能会有点收获;
请参考:
《RPM的介绍和应用》
《RPMHOWTO中译本》
《MaximumRPM》
2、system-config-packages本地软件包管理工具;
如果您在安装系统时,把有些必要的软件忘记安装了,我们可以通过system-config-packages来安装;
system-config-packages是一个管理本地软件包的工具;
更直接一点system-config-packages是通过系统安装盘来安装、移除软件;
这个工具极为有用,能解决软件包之间的依赖关系;
Redhat软件包管理工具应该是redhat-config-packages,用法