Linux软件包管理器之rpm和yum详解

本文发布时间: 2019-Mar-22
一、Linux中软件的安装Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装。不论是通过那种途径安装软件都具有一下4个特点:1.都有配置文件,通过设置配置文件来改变程序启动时的运行特征2.都具有二进制的程序主体3.都自带库文件,供程序主体进行调用4.都带有帮助文件,对程序的使用方法进行说明软件的安装路径:除了自行下载源码编译安装的软件可以自定义安装路径之外,rpm包的安装都是按照自身预设的安装路径进行安装。主要有以下几类:1./:系统根目录,在此安装的文件通常是os在运行时需要调用到的程序2./usr:此目录下一般情况下是提供基本服务的软件3./usr/local:此目录下一般情况下是用户自行安装的第三方软件系统相关:配置文件路径:/etc二进制文件路径:/bin 、/sbin库文件路径:/lib系统提供功能服务相关配置文件路径:/etc二进制文件路径:/usr/bin /usr/sbin库文件:/usr/lib第三方软件:配置文件路径/usr/local/etc 二进制文件路径:/usr/local/bin /usr/local/sbin库文件:/usr/local/lib说明文件主要都存放在/usr/share/man和/usr/local/share/manRPM(RedhatPackage Manager)是由redhat公司提供的软件包管理器 ,可以实现软件包的安装、查询、卸载、升级以及校验等但是rpm不能很好的解决软件之间的依赖关系软件包的安装方法之rpm安装相关操作rpm包的组成:name-version-release.arch.rpmname:表示包的名称,包括主包名和分包名version:表示包的版本信息release:用于标识rpm包本身的发行号,可还包含适应的操作系统arch:表示主机平台,noarch表示此包能安装到所有平台上面gd-devel-2.0.35-11.el6.x86_64.rpmgd是这个包的主包名,devel是这个包的分包名,2.0.35是表示版本信息,2为主版本号,0表示次版本号,35为源码包的发行号也叫修订号,11.el6中的11是rpm的发行号,el6表示RHEL6,x86_64是表示适合的平台。rpm安装功能:rpm–ihv PACKAGENAME-i安装对应软件包-v显示安装过程-h以#显示安装进度,一个#表示2%的进度-vh 显示安装读条--nodeps:忽略依赖关系安装--test:测试安装--replacepkgs:重新安装rpm卸载功能rpm -e PACKAGENAME 卸载软件包--nodeps忽略依赖关系卸载rpm的查询功能:rpm–q PACKAGENAME-qa:查询所有本机安装过的包rpm–qa | grep ‘pattern’查询pattern名的软件包rpm–ql PACKAGENAME 列出此安装包生成了那些文件-qc PACKAGENAME 列出此安装包生成了那些配置文件-qd PACKAGENAME 查询包安装生成的帮助文档-qf FILENAME 查看文件是由哪些安装包产生的-qi PACKAGENAME 查询包的摘要信息rpm –q –scripts PACKAGENAME查询包相关的脚本 preinstall: 安装前脚本 postinstall: 安装后脚本 preuninstall: 卸载前脚本 postuninstall: 卸载后脚本升级功能:rpm–Uvh PACKAGENAME 安装过的直接升级,否则直接安装新版本-FvhPACKAGENAME 只对安装过的软件升级校验功能:rpm –V PACKAGENAME 校验已经安装过的文件是否被人修改过注意:rpm的安装查询是基于rpm生产的数据库,数据库的重建一般使用rpm –rebuilddb, rpm –initdb是新建数据库,rpm在安装时会产生日志文 件,/root/install.log文件记载了安装记录1.rpm软件管理器不能很好的解决软件直接的依赖关系2.卸载已经安装的rpm软件包只需要指定报名即可3.先安装bind之后在安装bind-chroot即可解决依赖关系4.列出软件包bind生成了那些文件5.查看软件包bind生成了那些配置文件6.查看安装bind软件包生成的帮助文档7.查询软件包bind的摘要信息二、使用yum软件升级器进行安装yum是YellowdogUpdater Modified的缩写,它是一种基于自身软件库的安装,它可以通过查询软件库的连接ftp:// http:// file:///在远程服务器或者指定的本地文件库中获取要安装的软件包,可见软件库的配置在yum的使用中是非常重要的一环。并且yum是基于rpm的一个管理工具,它能自动解决安装rpm包产生的依赖关系yum库文件的配置:通过/etc/yum.conf 和 /etc/yum.repos.d目录下的且以.repo结尾的文件进行对yum软件库的设置yum的配置文件 /etc/yum.conf yumrepository仓库的配置文件/etc/yum.repos.d/*.repo 方式一:用本地光盘搭建yum仓库1.先下载一个iso镜像文件,将其挂载到/media下2.设置yum仓库的配置文件配置文件的具体格式:[iso]是仓库名repository_ID,名字可以随便取name是yum的名称也可以随便取“=”两边不能有空格baseurl指定rpm包的路径,该路径下必须有repodata这个文件enabled默认为1,表示启动此仓库,0表示不启用gpgcheck默认也是1,1表示检查公钥,0表示不检查,当检查公钥时要指定gpgkey的地址cost默认是2000,越小越先访问3.安装软件并且可以自动解决包彼此之间的依赖关系卸载时依赖卸载文件的包也会卸载方式二:搭建外网的yum仓库(sohu的yum仓库)1.设置yum仓库的配置文件2.导入yum源的gpgkey方式三:自己手动创建Yum仓库createrepo:生成repodata软件信息仓库,然后搭建该目录的yum仓库rpm包可以在下面两个网站去搜索http://rpm.pbone.nethttp://www.rpmfind.net1.首先要安装createrepo2.为演示效果我复制了几个rpm包到hailian目录下3.配置文件设置好之后就可以进行安装了yum的常用功能介绍:软件包安装 yum install PACKAGENAME1PACKAGENAME2 …yum–y:自动回答为yesreinstall packagename …重新安装软件包groupinstall“package-group_name”:安装一个包组查询yum listlist{all | installed | available}all显示所有安装过的,未安装的软件包available查询在软件库中可安装尚未安装的软件包installed:查询已经安装过的软件包repolist{all| enabled | disabled}列出yum源all:表示所有的yum源enabled:表示开启的disabled:未开启的infoPACKAGENAME:查看软件包信息,也可以查询未安装的软件包信息groupinfo“group_name 查询包组的信息makecache:生成yum缓存软件包卸载 yum remove PACKAGENAME清除软件列表缓存 yum clean {packages|metadata|expire-cache|rpmdb|plugins | all}yumclean all 清除缓存目录(/var/cache/yum)下的软件包以及旧的headerslocalinstall:安装本地软件包,rhel6直接用yum install就可以了--nogpgcheck:安装时不对软件包做验证升级yum updatecheck-update:查询可升级的包updatepackagename:升级软件包updateto:升级到指定的版本groupupdate“group_name”:升级包租卸载yum removeremovepackage_name …:卸载一个软件包groupremove“group_name”:卸载一个包组三、软件包安装之tar源码包编译安装http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.25.tar.bz2下载apache的tar源码包地址1.安装tar源码包可以先安装开发工具,可以减少安装相关的依赖性包RHEL6,CentOS6:”Developmenttools””Server Platform Development””Desktop Platform Develoment”RHEL5,CentOS5:”Developmenttools””Develoment Libraries”我们以rhel5为例安装开发工具使用命令:yum–y “Development tools””Development Libraries”我们在ftp上下载一个tar源码包2.我们把下载好的httpd-2.2.25.tar.bz2先解压通过命令tar xf httpd-2.2.25.tar.bz2,然后cd httpd-2.2.25 进入到解压的目录3.通过./configure 检查编译环境,然后make进行编译最后就可以编译安装了通过make install用tar安装包后需要修改几个地方,使得tar安装后能与系统识别的路径相关联1)改PATH环境变量写到/etc/profile.d/*.sh--------->source /etc/profile里面写安装软件后bin的路径或者直接export PATH=/usr/local/apache/bin:$PATH2)添加库文件的搜索/etc/ld.so.conf etc/ld.so.conf.d/*.conf 在/etc/ld.so.conf.d/*.conf写lib的路径 ldconfig –v3)帮助文档的使用/etc/man.conf MANPATH在/etc/man.config写man手册的路径echo“MANPATH/usr/local/apache/man”>>/etc/man.config然后就可以直接使用man httpd等命令了,不在配置文件中指定路径可以直接man –M/usr/local/apache/man httpd4)头文件用链接ln –sv 源目的/usr/include 把头文件的路径链接到系统头文件中ln–sv /usr/local/apache/include /usr/include/apache用apachectl start开启服务四、软件包安装之rpm源码包src安装rpm包可以在下面两个网站去搜索http://rpm.pbone.nethttp://www.rpmfind.net下载nginx的rpm源码包,通过此包来安装nginx,所需包的下载地址http://mirrors.sohu.com/fedora-epel/6Server/SRPMS/nginx-1.0.15-5.el6.src.rpmftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-devel-1.4.8-1.el6.x86_64.rpmftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-1.4.8-1.el6.x86_64.rpm


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表