Linux的软件安装与卸载.docx
- 文档编号:12915760
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:16
- 大小:22.25KB
Linux的软件安装与卸载.docx
《Linux的软件安装与卸载.docx》由会员分享,可在线阅读,更多相关《Linux的软件安装与卸载.docx(16页珍藏版)》请在冰豆网上搜索。
Linux的软件安装与卸载
Linux的软件安装与卸载—常见软件包管理器的使用
来源:
developworks 作者:
江一帆
安装,升级和卸载应用软件是影响用户对操作系统评价的决定性因素之一。
对于日渐流行的GNU/Linux操作系统,拥有简洁强大的软件包管理机制功不可没。
本文从基本的rpm/dpkg命令行出发,以RHEL和UBUNTU为例,介绍典型Linux系统中应用软件的管理和使用。
RPM/DPKG两大阵营简介
在GNU/Linux(以下简称Linux)操作系统中,RPM和DPKG为最常见的两类软件包管理工具,他们分别应用于基于RPM软件包的Linux发行版本和DEB软件包的Linux发行版本。
软件包管理工具的作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询。
RPM全称为RedhatPackageManager,最早由RedHat公司制定实施,随后被GNU开源操作系统接受并成为很多Linux系统(RHEL)的既定软件标准。
与RPM进行竞争的是基于Debian操作系统(UBUNTU)的DEB软件包管理工具-DPKG,全称为DebianPackage,功能方面与RPM相似。
二者之具体比较不在本文范围之内。
RPM包的安装/升级/查询/卸载
一个RPM包包含了已压缩的软件文件集以及该软件的内容信息(在头文件中保存),通常表现为以.rpm扩展名结尾的文件,例如package.rpm。
对其操作,需要使用rpm命令。
下面介绍rpm工具的参数和使用方法,并以IBMLotusNotes在RHEL5.2安装为例做具体说明。
RPM命令常用参数
RPM的常规使用方法为rpm-?
package.rpm,其中-?
为操作参数(更多信息,请查阅帮助$manrpm):
*-q在系统中查询软件或查询指定rpm包的内容信息
*-i在系统中安装软件
*-U在系统中升级软件
*-e在系统中卸载软件
*-h用#(hash)符显示rpm安装过程
*-v详述安装过程
*-p表明对RPM包进行查询,通常和其它参数同时使用,如:
*-qlp查询某个RPM包中的所有文件列表
*-qip查询某个RPM包的内容信息
RPM命令参数使用方法
以上参数有些需要组合使用,比如说rpm-hpackage.rpm是没有意义的,但rpm-ihpackage.rpm即表示安装package并用#符显示安装进度。
安装RPM包
#rpm-ivhpackage.rpm
升级RPM包命令
#rpm-Uvhpackage.rpm
卸载RPM包命令
#rpm-evpackage
查询RPM包中包含的文件列表命令
#rpm-qlppackage
查询RPM包中包含的文件列表命令
#rpm-qlppackage
查询RPM包中包含的内容信息命令
#rpm-qippackage
查询系统中所有已安装RPM包
#rpm-qa
RPM包管理示例
以下步骤描述了一个普通用户安装IBMLotusNotesV85(以下简称Notes)的典型操作过程。
Notes的RPM包名为ibm_lotus_notes-8.5.i586.rpm。
1.首先查询是否该软件是否已经在系统中存在
#rpm-qa|grepibm_lotus_notes
如果返回信息为空那么说明该软件还未被安装。
2.查询Notes软件包内容:
#rpm-qipibm_lotus_notes-8.5.i586.rpm
Name :
ibm_lotus_notes Relocations:
/opt/ibm/lotus/notes
Version :
8.5 Vendor:
IBM
Release :
20081211.1925 BuildDate:
Sat13Dec200809:
38:
55AMCST
InstallDate:
(notinstalled) BuildHost:
Group :
Applications/Office
SourceRPM:
ibm_lotus_notes-8.5-20081211.1925.src.rpm
Size :
603779427 License:
Commercial
Signature :
DSA/SHA1,Sat13Dec200809:
43:
02AMCST,KeyID314c8c6534f9ae75
Summary :
IBMLotusNotes
Description:
IBMLotusNotessoftwareprovidesarobust...
3.安装Notes:
#rpm-ivhibm_lotus_notes-8.5.i586.rpm
返回信息:
Preparing... ###########################################[100%]
1:
ibm_lotus_notes ###########################################[100%]
4.升级Notes:
若今后需要基于该版本升级至更高版本的Notes(缝.0-ibm_lotus_notes-9.0.i586.rpm),则使用-U参数:
#rpm-Uvhibm_lotus_notes-8.5.i586.rpm
在该步骤中如果使用-i则系统通常会报文件冲突错误,无法正常安装。
5.卸载Notes
注意卸载软件使用软件名称,而不是包文件名:
#rpm-evibm_lotus_notes
DEB包的安装/升级/查询/卸载
一个DEB包包含了已压缩的软件文件集以及该软件的内容信息(在头文件中保存),通常表现为以.deb扩展名结尾的文件,例如package.deb。
对其操作,需要使用dpkg命令。
下面介绍dpkg工具的参数和使用方法,并以IBMLotusNotes在UBUNTU904安装为例做具体说明。
DPKG命令常用参数
DPKG的常规使用方法为dpkg-?
Package(.rpm),其中-?
为安装参数(更多信息,请查阅帮助$manrpm):
*-l在系统中查询软件内容信息
*--info在系统中查询软件或查询指定rpm包的内容信息
*-i在系统中安装/升级软件
*-r在系统中卸载软件,不删除配置文件
*-P在系统中卸载软件以及其配置文件
DPKG命令参数使用方法
安装DEB包命令
$sudodpkg-ipackage.deb
升级DEB包命令
$sudodpkg-ipackage.deb(和安装命令相同)
卸载DEB包命令
$sudodpkg-rpackage.deb#不卸载配置文件
或
$sudodpkg-Ppackage.deb#卸载配置文件
查询DEB包中包含的文件列表命令
$sudodpkg-deb-cpackage.deb
查询DEB包中包含的内容信息命令
$dpkg--infopackage.deb
查询系统中所有已安装DEB包
$dpkg-lpackage
DEB包管理示例
以下步骤描述了一个普通用户安装IBMLotusNotesV85(以下简称Notes)的典型操作过程。
Notes的DEB包名为ibm_lotus_notes-8.5.i586.deb.
1.首先查询是否该软件是否已经在系统中存在
$dpkg-libm-lotus-*
如果系统中从未安装过Lotus产品,那么返回信息为:
Nopakcagesfoundmatchingibm-lotus-*
如果系统安装过Lotus产品,但已被删除,那么返回信息为:
pnibm-lotus-notesnone(nodescriptionavailable)
2.查询Notes软件包内容:
$dpkg--infoibm_lotus_notes-8.5-i586.deb
返回信息:
newdebianpackage,version2.0.
size335012296bytes:
controlarchive=231821bytes.
...
Package:
ibm-lotus-notes
Version:
8.5-20081211.1925
Section:
IBM
Priority:
extra
Architecture:
i386
Installed-Size:
619444
Maintainer:
IBMLotusProduct
Description:
IBMLotusNotes
IBMLotusNotessoftwareprovidesarobust......
3.安装Notes:
$sudodpkg-iibm_lotus_notes-8.5.i586.deb
返回信息:
(Readingdatabase...151150filesanddirectoriescurrentlyinstalled.)
Preparingtoreplaceibm-lotus-notes8.5-20081211.1925
(usingibm-lotus-notes-higher-version.i586.deb)...
Unpackingreplacementibm-lotus-notes...
Settingupibm-lotus-notes(higher-version)...
4.升级Notes:
$sudodpkg-iibm_lotus_notes-8.5.i586.deb
返回信息:
(Readingdatabase...151150filesanddirectoriescurrentlyinstalled.)
Preparingtoreplaceibm-lotus-notes8.5-20081211.1925
(usingibm-lotus-notes-higher-version.i586.deb)...
Unpackingreplacementibm-lotus-notes...
Settingupibm-lotus-notes(higher-version)...
5.卸载Notes
注意卸载软件使用软件名称,而不是包文件名:
$sudodpkg-Pibm-lotus-notes
软件包依赖性关系
由于开源的多态性,Linux操作系统中的软件之间的依赖性关系处理一直令用户感到头疼。
如果package_a依赖于package_b,那么在一个没有安装package_b的系统中,package_a是不被系统推荐安装的,强制安装很可能会导致软件无法正常工作。
基于以上package_a和package_b的关系,在一个干净的系统中(未安装package_a或package_b),欲安装package_a,错误通常会表现为:
RHEL5.2
#rpm-ivhpackage_a.rpm
error:
Faileddependencies:
pacakge_b=versioninfoisneededbypackage_a
Ubuntu904
$sudodpkg-ipackage_a.deb
dpkg:
regardingpackage_a.debcontainingpackage,pre-dependencyproblm:
package_apre-dependsonpackage_b(versioninfo)
dpkg:
errorprocessingpackage_a.deb(--install):
pre-dependencyproblem-notinstallingpackage_a
Errorswereencounteredwhileprocessing:
package_a.deb
查询软件包依赖关系
查询RPM包的依赖关系,使用rpm-qRp:
#rpm-qRppackage_a.rpm
package_b=version_info
或
package_b>=version_info
或
package_b<=version_info
表明package_a.rpm依赖于version_info版的package_b,或者任何高于并包括version_info版的package_b,亦或低于或包括version_info版的package_b。
所以package_b.rpm必须在package_a之前安装于系统中。
查询DEB包的依赖关系,可解读dpkg--info结果中的Pre-Depends字段:
$dpkg--infopackage_a.deb
Pre-depends:
package_b(=version_info)
Depends:
package_b(=version_info)
或
Pre-depends:
package_b(>=version_info)
Depends:
package_b(>=version_info)
或
Pre-depends:
package_b(<=version_info)
Depends:
package_b(<=version_info)
表明package_a.deb依赖于version_info版的package_b或者任何高于并包括version_info版的package_b亦或低于或包括version_info版的package_b.所以package_b.deb必须在package_a之前安装于系统中。
所以正确的安装方法如下节所示。
安装方法
对于package_a,正确的安装方法应该是:
##RPM
#rpm-ivhpackage_b.rpm
#rpm-ivhpackage_a.rpm
##DEB
$sudodpkg-ipackage_b.deb
$sudodpkg-ipackage_a.deb
嵌套的依赖关系
如上示例为最理想的依赖关系,实际应用中往往最令用户头疼的是package_a依赖于package_b/c/d/e/f等多个包,而package_b/c/d/e/f等包又依赖于package_b1,b2,b3/c1,c2/d1,d2/e1,e2/f1,f2等等......为保证软件的正常使用,必须找到所有依赖包以及子依赖包并且安装。
过多的依赖关系大大降低了Linux软件安装的用户友好性。
所以针对此类问题,使用了更高级的包管理策略去解决-Yum/APT。
更友好的包管理软件-YUM
YUM
YUM基于RPM包管理工具,能够从指定的源空间(服务器,本地目录等)自动下载目标RPM包并且安装,可以自动处理依赖性关系并进行下载、安装,无须繁琐地手动下载、安装每一个需要的依赖包。
此外,YUM的另一个功能是进行系统中所有软件的升级。
如上所述,YUM的RPM包来源于源空间,在RHEL中由/etc/yum.repos.d/目录中的.repo文件配置指定,如rhel-debuginfo.repo的内容:
rhel-debuginfo.repo
[rhel-debuginfo]
name=RedHatEnterpriseLinux5Client-i386-Debug
baseurl=ftp:
//
enabled=0
gpgcheck=1
gpgkey=file:
///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
YUM的系统配置文件位于/etc/yum.conf,内容如:
[main]
cachedir=/var/cache/yum
keepcache=1
debuglevel=2
pkgpolicy=newest
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
exclude=firefoxgftp
配置文件用来定义用户期望的yum行为,比如,gpgcheck表明安装时不进行gpg验证,exclued=firefoxgftp表明进行系统全软件升级时不升级firefox和gftp。
YUM常用命令
安装指定软件:
#yum-yinstallpackage-name
列出系统中已安装软件
#yumlist
列出系统中可升级的所有软件
#yumcheck-update
升级系统中可升级的所有软件
#yumupdate
升级指定软件
#yumupdatepackage-name
在升级过程中接受所有互动问答
#yum-yupdate
卸载指定软件
#yumremovepackage-name
更多有关YUM的信息,请查阅http:
//fedoraproject.org/wiki/Tools/yum。
更友好的包
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 软件 安装 卸载
![提示](https://static.bdocx.com/images/bang_tan.gif)