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

来源:互联网 发布:linux nc 编辑:程序博客网 时间:2024/05/20 11:27

一、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/man

RPM(RedhatPackage Manager)是由redhat公司提供的软件包管理器 ,可以实现软件包的安装、查询、卸载、升级以及校验等但是rpm不能很好的解决软件之间的依赖关系

 

软件包的安装方法之rpm安装相关操作

rpm包的组成:name-version-release.arch.rpm

name:表示包的名称,包括主包名和分包名

version:表示包的版本信息

release:用于标识rpm包本身的发行号,可还包含适应的操作系统

arch:表示主机平台,noarch表示此包能安装到所有平台上面

gd-devel-2.0.35-11.el6.x86_64.rpm

gd是这个包的主包名,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.net

http://www.rpmfind.net

1.首先要安装createrepo

2.为演示效果我复制了几个rpm包到hailian目录下

3.配置文件设置好之后就可以进行安装了

 

yum的常用功能介绍:

软件包安装 yum install  PACKAGENAME1PACKAGENAME2 …

yum–y:自动回答为yes

reinstall  packagename …重新安装软件包

groupinstall“package-group_name”:安装一个包组

查询yum list

list{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)下的软件包以及旧的headers

 

 

localinstall:安装本地软件包,rhel6直接用yum install就可以了

--nogpgcheck:安装时不对软件包做验证

升级yum update

check-update:查询可升级的包

updatepackagename:升级软件包

updateto:升级到指定的版本

groupupdate“group_name”:升级包租

卸载yum remove

removepackage_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:$PATH

2)添加库文件的搜索/etc/ld.so.conf etc/ld.so.conf.d/*.conf 在/etc/ld.so.conf.d/*.conf写lib的路径 ldconfig –v

3)帮助文档的使用/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  httpd

 

4)头文件用链接ln –sv 源目的/usr/include 把头文件的路径链接到系统头文件中

ln–sv /usr/local/apache/include /usr/include/apache

 

用apachectl start开启服务

 

四、软件包安装之rpm源码包src安装

 

rpm包可以在下面两个网站去搜索

http://rpm.pbone.net

http://www.rpmfind.net

 

下载nginx的rpm源码包,通过此包来安装nginx,所需包的下载地址

http://mirrors.sohu.com/fedora-epel/6Server/SRPMS/nginx-1.0.15-5.el6.src.rpm

ftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-devel-1.4.8-1.el6.x86_64.rpm

ftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-1.4.8-1.el6.x86_64.rpm

0 0
原创粉丝点击