Linux软件安装,RPM与YUM

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/3843955.html

 

 

 

 

1 1 Linux软件安装概述

安装程序的方式:

  • 通用二进制格式:直接解压压缩文件,就可以使用。但一定要注意安装平台。
  • 软件包管理器:如RPM。
  • 软件包管理器的前端工具:如YUM。
  • 源代码编译

 

1.1 1.1 软件包概述

软件包的组成部分:

  • 二进制程序,位于 /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin 等目录中。
  • 库文件,位于 /lib, /usr/lib, /usr/local/lib 等目录中。Linux中库文件以 .so(动态链接库) .a(静态链接库)作为文件后缀名。
  • 配置文件,位于 /etc 目录中。
  • 帮助文件:手册, README, INSTALL (/usr/share/doc/)

在没有软件包管理器之前,安装程序,卸载程序是非常繁杂的。

 

软件包管理工具的特性:

  • 文件清单
  • 文件放置路径
  • 提供的功能说明
  • 依赖关系

软件包管理器内部有一个数据库,其中记载着程序的基本信息,校验信息,程序路径信息等。

 

 

 

2 2 RPM

RPM早期被称为RedHat Package Manager,但由于目前RPM非常流行,且已经成为Linux工业标准。所以RPM现在又被称为RPM is Package Manager

RPM管理支持事务机制。增强了程序安装卸载的管理。

RPM的功能:打包、安装、查询、升级、卸载、校验、数据库管理

 

2.1 2.1 RPM的缺点

由于Linux中的程序大多是小程序。程序与程序之间存在非常复杂的依赖关系。RPM无法解决软件包的依赖关系。

 

 

2.2 2.2 RPM包

用RPM工具可以将二进制程序进行打包,包被称为RPM包。RPM包并不是跨平台的。RedHat的RPM包与SUSE的RPM包不能混用。实际上RedHat的安装,初始软件也都是使用RPM包进行安装的。

 

源程序的命名规范name-version.tar.{gz|bz2|xz}

版本号:major.minor.release

例:bash-4.3.1.tar.xz

 

RPM包的命名规范name-version-release.os.arch.rpm

name:程序名称。

version:程序版本号。

release(发行号):用于标识RPM包本身的发行号,与源程序的release号无关。

os:即说明RPM包支持的操作系统版本。如el6(即rhel6)、centos6、el5、suse11。

arch:主机平台。如i686、x86_64、amd64、ppc(power-pc)、noarch(即不依赖平台)

例:bash-4.3.2-5.el6.x86_64.rpm

 

2.2.1 RPM分包

在把二进制文件打包时,将主要功能打入主包。将辅助功能打入分包。分包在需要的情况下安装,若不需要就可以不安装。

  • 主包:核心包。
  • 分包:又称为支包。

 

 

2.2.2 获取需要的RPM包

互联网中RPM常用站点:

http://mirrors.sohu.com

http://rpmfind.net

http://rpm.pbone.net/

 

2.2.3 epel

epel是为RedHat提供扩展的RPM包。这些包是Linux安装盘中没有的。该项目目前由Fedora维护。

例:使用网易镜像站查看epel。

wps_clip_image-10409

点击进入可以看到不同RedHat版本的目录。选定版本,在目录中去寻找需要的RPM。

wps_clip_image-940

注意:优先使用Linux光盘中的包。其次考虑epel中的包。尽量不要使用来路不明的RPM包。

 

2.2.4 RPM包的验正机制

RPM可以验证来源的合法性、软件包的完整性。

 

 

2.3 2.3 RPM命令的使用

RPM常用选项:

-i:表示安装。

-v, -vv, -vvv:表示详细信息。

-h:以"#"号显示安装进度。

-q:查询指定包名。

-e:卸载指定包名。

-U:升级软件,若未软件尚未安装,则安装软件。

-F:升级软件。

-V:对RPM包进行验证。

--nodeps:忽略依赖关系。

--query:查询指定包名。同-q选项。

--hash:同-h。

--install:表示安装,同-i选项。

--test:仅作测试,不真正执行,可用于测试安装,测试卸载。

--replacepkgs:重新安装。替换原有的安装。

--force:忽略软件包及文件的冲突。

--initdb:新建RPM的数据库。

--rebuilddb:重建RPM的数据库。

--percent:以百分比的形式输出安装的进度。

RPM包的查询:

rpm -q:查询某一个RPM包是否已安装

rpm -qi:查询某一个RPM包的详细信息

rpm -ql:列出某RPM包中所包含的文件。

rpm -qf:查询某文件是哪个RPM包生成的。

rpm -qa:列出当前系统所有已安装的包

 

安装或卸载时,可能出现如下类似警告信息:warning:/etc/sysconfig/named created as /etc/sysconfig/named.rpmnew

该警告信息表示:rpm的配置文件被另存为了一份文件。

 

 

2.3.1 安装RPM包

命令格式:rpm -i /PATH/TO/RPM_FILE

一般组合起来使用:-ivh

命令格式:rpm -ivh PATH/TO/RPM_FILE

 

2.3.2 卸载RPM包

命令格式:rpm -e 包名

 

2.3.3 查询RPM相关信息

结合-q选项,RPM提供了许多种查询信息的方式。

命令格式:rpm -q 包名

命令格式:rpm --query 包名

 

查询所有已经安装包:rpm -qa

wps_clip_image-9662

配合grep的使用:rpm -qa | grep 'zip'

wps_clip_image-9644

 

查询包的摘要信息:rpm -qi 包名

wps_clip_image-13603

 

查询包安装生成的文件清单:rpm -ql 包名

wps_clip_image-21482

 

查询某文件是由哪个rpm包安装生成的:rpm -qf /path/to/some_file

wps_clip_image-24390

 

查询包安装生成的配置文件:rpm -qc 包名

 

查询包安装生成的帮助文档:rpm -qd 包名

wps_clip_image-22667

 

查询包相关的脚本:rpm -q --scripts 包名

RPM包的脚本有四个:

preinstall:安装前脚本

postinstall:安装后脚本

preuninstall:卸载前脚本

postuninstall:卸载后脚本

 

对未安装的RPM包查询信息,使用"-p",可以与其他查询相关的其他选项组合使用。

命令格式:rpm -qpi /path/to/rpm_file

 

2.3.4 升级软件

命令格式:rpm -Uvh rpm包

命令格式:rpm -Fvh rpm包

 

2.3.5 校验RPM包

命令格式:rpm -V 包名

对已经安装的软件,进行将要。若无输出,则表示已安装的软件没有被修改。若软件被修改,则会输出信关信息。具体请查看RPM相关手册。

 

2.3.6 RPM的数据库

数据库文件位于:/var/lib/rpm

wps_clip_image-25436

若库损坏,很多RPM的查询将无法使用。

 

对损坏的数据库,可以进行数据库重建:

rpm --initdb    #新建数据库

rpm --rebuilddb  #重建数据库

注意:重建数据库时间会比较长。

 

 

2.4 源码格式的RPM包

SPRM即源码格式的RPM包。一般后缀名为".src.rpm"。其中包含了源码与spec文件。rpm通过spec文件进行打包。

 

 

 

3 3 YUM

YUM被称为 Yellow dog Updater, Modified,是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。YUM使用Python语言写成。YUM客户端基于RPM包进行管理,可以通过HTTP服务器下载、FTP服务器下载、本地软件池的等方式获得软件包,可以从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系。

YUM在安装RPM时,会从服务器下载相应包,且缓存在本地

使用YUM进行RPM包的管理,非常简单方便。

 

3.1 3.1 YUM客户端的使用

3.1.1 YUM客户端的配置

YUM的配置方式是基于分段配置的。

主配置文件/etc/yum.conf

YUM的片段配置/etc/yum.repos.d/*.repo

 

主配置文件配置了一个特殊的仓库,名称为main。main是为其他仓库提供默认的全局配置的

wps_clip_image-17656

配置文件的说明:

复制代码
[main]        #main仓库。[ ]中括号表示一个仓库的定义。其中是仓库的名称。
cachedir=/var/cache/yum/$basearch/$releasever    #RPM包的缓存位置。
keepcache=0    #RPM包在本地是否需要长期保存。1表示yes,0表示no。
debuglevel=2    #日志级别。
logfile=/var/log/yum.log    #日志文件。
exactarch=1    #下载的RPM包是否需要与本地平台完全匹配。1表示yes,0表示no。
obsoletes=1
gpgcheck=1    #是否需要自动来源合法性检测。
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bdistroverpkg=centos-release
复制代码

 

查看其他配置文件:

wps_clip_image-10283

CentOS自带的这些配置文件中,其实只有CentOS-Base.repo文件有效。按照需求,这些文件可以删除,或改名,或自己建立一个.repo的配置文件。实际使用中,可以参考CentOS-Base.repo的配置自定义.repo文件。

 

查看CentOS-Base.repo配置文件:

wps_clip_image-31725

 

对配置文件中的一些配置项作说明:

[ ... ]:仓库的名称。不能重复。

name:对仓库的描述,该项必须有。

baseurl:配置仓库的路径。用于指定一个url。

mirrorlist:指向一个镜像列表,里面有多个url。

enabled:是否启用当前仓库。值为1或0,默认为1。

gpgcheck:是否需要gpg校验。值为1或0,默认为1。

gpgkey:验证RPM包的密钥文件路径。该文件可以在远处服务器上,也可以在本地。

cost:代价,其本质是仓库优先级的配置。值越低,表示访问的代价越低,也即优先使用。

 

注意:配置文件中的"="号的前后不能有空格

wps_clip_image-2115

 

例:自己写一个repo配置文件。

[base]
name=CentOS 6.4 x86_64
baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/
enabled=1
gpgcheck=0

 

 

3.2 3.2 yum命令的使用

yum的命令形式一般是如下:yum [options] [subcommand] [package ...]

 

3.2.0.1 yum list相关命令

获取yum仓库中所有的包信息。

命令:yum list all

wps_clip_image-3423

 

结果说明:

第一列:软件包名称.平台名称。

第二列:软件版本号-release号。

第三列:安装情况。

若显示@则表示该软件已经通过仓库安装。如@anaconda-CentOS-201303020151.x86_64/6.4 表示已经通过naconda-CentOS-201303020151.x86_64/6.4仓库安装。

install,则表示系统已经安装,未通过仓库安装。

若无@或不是install,则表示尚未安装。如base,表示未安装,包位于base仓库中。updates,表示未安装,包位于updates仓库中。

 

查看yum仓库中指定包名的软件包,可以使用通配符

命令:yum list all mysql*

wps_clip_image-31971

Installed Package:表示已经安装的包。

Avaliable Package:表示没有安装,但可以安装的包。

 

只显示已安装的包。

命令:yum list installed

 

只显示没有安装,但可安装的包。

命令:yum list available

 

查看所有可更新的包。

命令:yum list updates

 

显示不属于任何仓库的,额外的包。

命令:yum list extras

 

显示被废弃的包

命令:yum list obsoletes

 

新添加进yum仓库的包

命令:yum list recent

 

 

3.2.0.2 模糊匹配搜索

命令格式:yum search 查询名

 

例:查询软件包名中出带有init的软件包。

命令:yum search init

wps_clip_image-16222

 

 

3.2.0.3 查看仓库

查看当前能够使用的yum仓库

命令:yun repo list

wps_clip_image-31296

 

显示所有仓库

命令:yum repo list all

 

显示禁用的仓库

命令:yum repo list enabled

 

显示启用的仓库

命令:yum repo list disabled

 

 

3.2.0.4 显示软件包的摘要信息

命令格式:yum info 包名

类似于rpm -qi 包名 ,yum info没有rpm -qi显示的详细全。但可以显示出安装状态(Installed,Available)

wps_clip_image-1307

 

 

3.2.0.5 查询某个文件是由哪个软件包生成的

该功能类似于rpm -qf 包名。

命令格式:yum provides 文件

命令格式:yum whatprovides 文件

 

例:查询某文件的生成包。

wps_clip_image-17371

说明:

setup-2.8.14-20.el6_4.1.noarch 位于仓库中,尚未安装。但若安装了该包,也会生成 /etc/fstab

setup-2.8.14-20.el6.noarch显示已被安装。当前/etc/fstab由该包生成。

 

yum甚至可以查询出未来将会存在的文件所属于的软件包。

 

例:查询/etc/named.conf将会由哪个包生成。

首先,说明目前实验目录中无named.conf

wps_clip_image-22129

输入:yum provides /etc/named.conf

wps_clip_image-13680

显示两个包,都位于仓库中,尚未安装。

 

 

3.2.0.6 清空本地yum的缓存

yum仓库若更新,则本地缓存就没有意义了。所以本地缓存需要清空。

命令格式:yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

 

3.2.0.7 手动在本地建立缓存

yum客户端会下载远程yum的文件。在本地生成缓存。

命令:yum makecache

 

 

3.2.0.8 安装应用程序

基本格式:yum [-y] install 包1 包2 ... 包n

说明:

若安装多个包,则使用包名之间使用空格隔开

安装过程中,yum会询问用户是否安装,使用yum -y 选项,表示自动回答yes

 

例:使用安装wget。

命令:yum install wget

wps_clip_image-21227

 

 

3.2.0.9 重新安装软包

命令格式:yum [-y] reinstall 包1 包2 ... 包n

 

 

3.2.0.10 升级软件包

命令格式:yum update 包1 包2 ... 包n

命令格式:yum update-to 包-版本号

说明:update-to可以指定版本号。

 

3.2.0.11 检测可升级的包

命令:yum check-update

 

 

3.2.0.12 卸载软件包

命令格式:yum remove 包1 包2 ... 包n

注意:若该包被依赖,则该卸载可能会导致一些问题。如A依赖B,若卸载B,则A也会被卸载。

 

 

3.2.0.13 本地安装升级RPM包

在RHEL6/CentOS6可以直接使用install,update命令安装本地rpm包。

命令格式:yum install rpm包路径

命令格式:yum update rpm包路径

 

或者使用localinstall,localupdate。在RHEL5/CentOS5下必须使用localinstall,localupdate。

命令格式:yum localinstall rpm包路径

命令格式:yum localupdate rpm包路径

 

yum安装rpm默认会查询软件包来源合法性,但有时没提供密钥,无法安装。使用--nogpgcheck选项,可以避免yum作校验

命令:yum localinstall --nogpgcheck

 

 

3.2.0.14 包组管理

rpm包可以组合成包组,安装卸载可以共同进行。

 

查看yum仓库里的包组

命令:yum grouplist

wps_clip_image-26533

Installed Groups 表示已安装的组。其他组类似。

 

显示指定的包组信息

命令:yum groupinfo "Development tools"

 

3.2.0.15 安装包组

命令格式:yum [-y] groupinstall 包组1 包组2 ... 包组n

 

例:安装开发环境,构建编译源码的环境。

一般为了防止出现不必要的问题,开发环境需要配置如下三个包组:

RHEL6/CentOS6"Development tools"、"Server Platform Development"、"Desktop Platform Development"

RHEL5/CentOS5"Development tools"、"Development Libraries"

输入命令:yum [-y] groupinstall "Development tools" "Server Platform Development" "Desktop Platform Development"

 

3.2.0.16 升级包组

命令格式:yum [-y] groupupdate包组1 包组2 ... 包组n

 

3.2.0.17 卸载包组

命令格式:yum [-y] groupremove包组1 包组2 ... 包组n

 

3.2.0.18 查看此前安装卸载等操作历史

命令:yum history

wps_clip_image-11071

 

 

 

3.3 3.3 搭建YUM仓库

yum仓库又称为yum源,yum仓库一般会支持ftp协议(ftp://),http协议(http://),文件协议(file://)。

 

3.3.1 本地的YUM仓库

使用系统安装盘当作YUM仓库。对于RHEL系列的Linux,其安装光盘就是一个yum仓库。挂在上光盘,将yum客户端的仓库指向光盘路径。

 

例:将baseurl指向光盘路径。使用file://协议。

wps_clip_image-3921

在配置完后,需要清空yum缓存。命令:yum clean all

查看当前的可用的yum仓库。命令:yum repolsit

配置yum仓库为网易镜像站中CentOS 6.4 x86_64的目录。只需要修改repo的baseurl。baseurl=http://mirrors.sohu.com/centos/6.4/os/x86_64/

 

 

 

3.3.2 YUM内置变量

yum内置变量是关于操作系统、CPU平台的一些信息。可用于动态的配置yum路径。

wps_clip_image-24047

说明:

$releasever:当前操作系统的主版本号。若CentOS6.4 该值为6。

$arch:当前平台版本架构。x86_64 或 i386/i586/i686。

$basearch:当前平台的基本架构。x86_64 或 i386。

$YUM0-9:这十个变量分别被 shell 环境中的同名变量的值所替代。如果 /etc/yum.conf 文件中设置了这些变量,而 shell 环境中没有同名变量,它的值则不被代替。

 

例:配置基于网易镜像站的跨平台路径。

baseurl=http://mirror.sohu.com/centos/relasever/os/basearch/

 

 

3.3.3 创建YUM仓库

使用createrepo命令创建YUM仓库。该命令系统中默认是没有的。可以使用rpm或yum安装上该命令。

格式:createrepo rpm包目录

该命令会在指定目录中生成repodata目录。该目录中是所有RPM包的信息文件,及其依赖关系的信息文件。以xml文档和sqllite数据库文件的形式存储。

 

3.3.3.1 创建基于HTTP访问的yum仓库

搭建Web服务器,让浏览器能访问到相应的yum仓库目录,即可通过HTTP访问yum仓库。

 

 

 

 

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/3843955.html

 

posted @   LaplaceDemon  阅读(9031)  评论(1编辑  收藏  举报

目录

Linux软件安装,RPM与YUM

1 1 Linux软件安装概述

1.1 1.1 软件包概述

2 2 RPM

2.1 2.1 RPM的缺点

2.2 2.2 RPM包

    2.2.1 RPM分包

    2.2.2 获取需要的RPM包

    2.2.3 epel

    2.2.4 RPM包的验正机制

2.3 2.3 RPM命令的使用

    2.3.1 安装RPM包

    2.3.2 卸载RPM包

    2.3.3 查询RPM相关信息

    2.3.4 升级软件

    2.3.5 校验RPM包

    2.3.6 RPM的数据库

2.4 源码格式的RPM包

3 3 YUM

3.1 3.1 YUM客户端的使用

    3.1.1 YUM客户端的配置

3.2 3.2 yum命令的使用

      3.2.0.1 yum list相关命令

      3.2.0.2 模糊匹配搜索

      3.2.0.3 查看仓库

      3.2.0.4 显示软件包的摘要信息

      3.2.0.5 查询某个文件是由哪个软件包生成的

      3.2.0.6 清空本地yum的缓存

      3.2.0.7 手动在本地建立缓存

      3.2.0.8 安装应用程序

      3.2.0.9 重新安装软包

      3.2.0.10 升级软件包

      3.2.0.11 检测可升级的包

      3.2.0.12 卸载软件包

      3.2.0.13 本地安装升级RPM包

      3.2.0.14 包组管理

      3.2.0.15 安装包组

      3.2.0.16 升级包组

      3.2.0.17 卸载包组

      3.2.0.18 查看此前安装卸载等操作历史

3.3 3.3 搭建YUM仓库

    3.3.1 本地的YUM仓库

    3.3.2 YUM内置变量

    3.3.3 创建YUM仓库

      3.3.3.1 创建基于HTTP访问的yum仓库

点击右上角即可分享
微信分享提示