RPM 包的安装虽然很方便和快捷,但是依赖性实在是很麻烦,尤其是库文件依赖,还要去 rpmfind 网站査找库文件到底属于哪个 RPM 包,从而导致 RPM 包的安装非常烦琐。那么,有没有可以自动解决依赖性、自动安装的方法呢?

答案是肯定的,yum 在线管理就可以自动处理 RPM 包的依赖性问题,从而大大简化 RPM 包的安装过程。但需要注意的是,首先,yum 安装的还是 RPM 包,其次,yum 安装是需要有可用的 yum 服务器存在的,当然这个 yum 服务器可以在网上,也可以使用光盘在本地搭建。

yum 可以方便地进行 RPM 包的安装、升级、査询和卸载,而且可以自动解决依赖性问题,非常方便和快捷。但是,一定要注意 yum 的卸载功能。yum 在卸载软件的同时会卸载这个软件的依赖包,但是如果卸载的依赖包是系统的必备软件包,就有可能导致系统崩溃。除非你确实知道 yum 在自动卸载时会卸载哪些软件包,否则最好不要执行 yum 卸载。

yum源搭建

yum 源既可以使用网络 yum 源,也可以使用本地光盘作为 yum 源。要使用网络 yum 源,你的主机必须是正常联网的。

当然,要使用 yum 进行 RPM 包安装,那么必须安装 yum 软件。查看命令如下:

[root@localhost ~]# rpm -qa | grep yum
yum-metadata-parser-1.1.2-16.el6.i686
yum-3.2.29-30.el6.centos.noarch
yum-utils-1.1.30-14.el6.noarch
yum-plugin-fastestmirror-1.1.30-14.el6.noarch
yum-plugin-security-1.1.30-14.el6.noarch

如果没有安装,则需要手工使用 RPM 包方式安装。

网络yum源服务器搭建

在主机网络正常的情况下,CentOS 的 yum 是可以直接使用的,不过我们需要了解一下 yum 源配置文件的内容。

yum 源配置文件保存在 /etc/yum.repos.d/ 目录中,文件的扩展名一定是"*.repo"。也就是说,yum 源配置 文件只要扩展名是"*.repo"就会生效。

[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo
CentOS-Media.repo
CentOS-Debuginfo.repo.bak、
CentOS-Vault.repo

这个目录中有 4 个 yum 源配置文件,默认情况下 CentOS-Base.repo 文件生效。我们打开这个文件看看,命令如下:

[root@localhost yum.repos.d]# vim /etc/yum.repos.d/ CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/? release= $releasever&arch=$basearch&repo=os
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
…省略部分输出…

在 CentOS-Base.repo 文件中有 5 个 yum 源容器,这里只列出了 base 容器,其他容器和 base 容器类似。

我们解释一下 base 这个容器:

  • [base]:容器名称,一定要放在[]中。
  • name:容器说明,可以自己随便写。
  • mirrorlist:镜像站点,这个可以注释掉。
  • baseurl:我们的 yum 源服务器的地址。默认是 CentOS 官方的 yum 源服务器,是可以使用的。如果你觉得慢,则可以改成你喜欢的 yum 源地址。
  • enabled:此容器是否生效,如果不写或写成 enabled 则表示此容器生效,写成 enable=0 则表示此容器不生效。
  • gpgcheck:如果为 1 则表示 RPM 的数字证书生效;如果为 0 则表示 RPM 的数字证书不生效。
  • gpgkey:数字证书的公钥文件保存位置。不用修改。

yum 源配置文件默认不需要进行任何修改就可以使用,只要网络可用就行。

以本地光盘作为 yum 源服务器

如果 Linux 主机不能联网,yum 就不能使用吗? yum 已经考虑到这个问题,所以在 /etc/yum.repos.d/ 目录下 还有一个 CentOS-Media.repo 文件,这个文件就是以本地光盘作为 yum 源服务器的模板文件,只需要进行简单的修改即可。

1) 放入 CentOS 安装光盘,并挂载光盘到指定位置。命令如下:

[root@localhost ~]# mkdir /mnt/cdrom
#创建cdrom目录,作为光盘的挂载点
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device/dev/srO is write-protected, mounting read-only
#挂载光盘到/mnt/cdrom目录下

2) 修改其他几个 yum 源配置文件的扩展名,让它们失效,因为只有扩展名是"*.repo"的文件才能作为 yum 源配置文件。当然也可以删除其他几个 yum 源配置文件,但是如果删除了,当你又想用网络作为 yum 源时,就没有了参考文件,所以最好还是修改扩展名。 命令如下:

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv CentOS-Base, repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]#mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.bak

3) 修改光盘 yum 源配置文件 CentOS-Media.repo,参照以下方修改:

[root@localhost yum.repos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址为你自己的光盘挂载地址
#file:///media/cdrom/
#file:///media/cdrecorder/
#注释这两个的不存在地址
gpgcheck=1
enabled=1
#把enabled=0改为enabled=1, 让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

配置完成,现在可以感受一下yum的便捷了。

um提供了查询、安装、升级和卸载软件包的命令,一一给大家介绍。

查询

査询yum源服务器上所有可安装的软件包列表

[root@localhost yum.repos.d]# yum list
#查询所有可用软件包列表
Installed Packages
#已经安装的软件包
ConsdeKit.i686 0.4.1-3.el6
@anaconda-CentOS-201207051201 J386/6.3
ConsdeKit-libs.i686 0.4.1-3.el6 @anaconda-CentOS-201207051201 J386/6.3
…省略部分输出…
Available Packages
#还可以安装的软件包
389-ds-base.i686 1.2.10.2-15.el6 c6-media
389-ds-base-devel.i686 1.2.10.2-15.el6 c6-media
#软件名 版本 所在位置(光盘)
…省略部分输出…

查询yum源服务器中是否包含某个软件包

[root@localhost yum.repos.d]# yum list 包名
#查询单个软件包

例如:

[root@localhost yum.repos.d]# yum list samba
Available Packages samba.i686 3.5.10-125.el6 c6-media
#搜索yum源服务器上所有和关键字相关的软件包

例如:

[root@localhost yum.repos.d]# yum search 关键字
#搜索yum服务器上所有和关键字相关的软件包

例如:

[root@localhost yum.repos.d]# yum search samba
#搜索服务器上所有和samba相关的软件包
========================N/S Matched:
samba =============================
samba-client.i686:Samba client programs
samba-common.i686:Files used by both Samba servers and clients
samba-doc.i686: Documentation for the Samba suite
…省略部分输出…
Name and summary matches only, use"search all" for everything.

查询指定软件包的信息

[root@localhost yum.repos.d]# yum info samba
#查询samba软件包的信息
Available Packages <-没有安装
Name : samba <-包名
Arch : i686 <-适合的硬件平台
Version : 3.5.10 <―版本
Release : 125.el6 <—发布版本
Size : 4.9M <—大小
Repo : c6-media <-在光盘上
…省略部分输出…

安装

[root@localhost yum.repos.d]# yum -y install 包名

选项:

  • install:安装;
  • -y:自动回答yes。如果不加 -y,那么每个安装的软件都需要手工回答yes;

例如:

[root@localhost yum jepos.d]#yum -y install gcc
#使用yum自动安装gcc

在讲 RPM 包安装时提到,gcc 是 C 语言的编译器,其依赖的软件包比较多,手工使用 RPM 包安装太麻烦了,所以使用 yum 安装。

yum 安装可以自动解决依赖性,而且安装速度也比源码包快得多。不过,yum 到底安装的还是 RPMS,所以 rpm 命令还是必须学习和使用的。

升级

[root@localhost yum.repos.d]# yum -y update 包名
#升级指定的软件包

选项:

  • update:升级;
  • -y:自动回答yes;

注意,在进行升级操作时,yum 源服务器中软件包的版本要比本机安装的软件包的版本高。

[root@localhost yum.repos.d]# yum -y update
#升级本机所有软件包

这条命令会升级系统中所有的软件包。不过我们的生产服务器是稳定优先的,所以这种全系统升级的情况并不多见。

卸载

再次强调一下,除非你确定卸载的软件的依赖包不会对系统产生影响,否则不要执行 yum 的卸载,因为很有可能在卸载软件包的同时卸载的依赖包也是很重要的系统文件,这就有可能导致系统崩溃。

卸载命令如下:

[root@localhost yum.repos.d]# yum remove 包名
#卸载指定的软件包

例如:

[root@localhost yum.repos.d]# yum remove samba
#卸载samba软件包

在安装 Linux 的过程中,在选择软件包的时候,如果选择了"现在自定义",就会看到 Linux 支持的许多软件组,比如编辑器、系统工具、开发工具等。那么,在系统安装完成后,是否可以利用 yum 安装这些软件组呢?

当然可以,只需要利用 yum 的软件组管理命令。

查询可以安装的软件组

[root@localhost ~]#yum grouplist
#查询可以安装的软件组

查询软件组中包含的软件

[root@localhost ~]#yum groupinfo 软件组名
#查询软件组中包含的软件

例如:

[root@localhost ~]#yum groupinfo "Web Server"
#查询软件组"Webserver"中包含的软件

安装软件组

[root@localhost ~]#yum groupinstall 软件组名
#安装指定软件组,组名可以由grouplis查询出来

例如:

[root@localhost ~]#yum groupinstall "Web Server"
#安装网页服务软件组

卸载软件组

[root@localhost ~]# yum groupremove 软件组名
#卸载指定软件组

软件组管理对于安装功能集中的软件集合非常方便。比如,在安装 Linux 的时候没有安装图形界面,但是后来发现需要图形界面的支持,这时可以手工安装图形界面软件组(X Window System 和 Desktop),就可以很方便地安装图形界面了。

Linux软件包管理 RMP包的更多相关文章

  1. Linux软件包管理 RMP包管理

    概述 RPM 包的命名一般都会遵守统一的命名规则,例如: httpd-2.2.15-15.el6.centos.1.i686.rpm 其中的各项代表的含义如下: httpd:软件包名. 2.2.15: ...

  2. Linux系列教程(十三)——Linux软件包管理之源码包、脚本安装包

    上篇博客我们讲解了网络yum源和光盘yum源的搭建步骤,然后详细介绍了相关的yum命令,yum 最重要是解决了软件包依赖性问题.在安装软件时,我们使用yum命令将会简单方便很多.我们知道yum命令只能 ...

  3. Linux软件包管理之源码包、脚本安装包

    目录 1.源码包和RPM包的区别 RPM包和源码包默认安装位置: 由于安装位置不同带来的影响 2.源码包安装 ①.安装准备 ②.安装注意事项 ③.安装源码包 3.源码包卸载 4.脚本安装包 5.总结 ...

  4. Linux 软件包管理

    简介: linux中软件包的管理随着linux版本的不同而不同,一般RPM和DPKG是最常见的两类软件包管理工具.分别应用基于rpm软件包的linux发行版本和基于deb软件包的linux发行版本. ...

  5. linux软件包管理(上)

    1.二进制包管理(RPM,yum) 2.源代码包的安装 3.脚本安装(shell或java) 4.Debian系列的linux软件包管理简介 在下载rmp包的时候注意检查硬件平台是否正确,如果硬件平台 ...

  6. Linux软件包管理

    Linux软件包管理 Linux软件包管理主要有2类:是二进制包管理.源码包管理 二进制包管理 主要有RPM和YUM两种 RPM包管理 安装 --ivh:-v ,-vv,-vvv显示的安装信息依次详细 ...

  7. linux软件包管理(下)

    在vi配置文件的编写的时候我们发现#并不能注释掉一行的信息 那什么才是linux标准的注释信息呢 查看软件对应的软件包命令 rpm –ap| grep vim 大多example是需要的事例文档  双 ...

  8. 1、linux软件包管理

    linux软件包管理分为两种:RPM包管理和源码包管理,其中RPM包管理又有两种方式:①RPM命令管理,②YUM在线命令管理. RPM包依赖关系: 1.树形依赖 2.环形依赖 (用一条命令同时装来解决 ...

  9. Linux(3)- 用户管理、文件与目录权限、常用命令、Linux软件包管理

    一.用户管理 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户 ...

随机推荐

  1. Leetcode392. Is Subsequence

    Description Given a string s and a string t, check if s is subsequence of t. You may assume that the ...

  2. 【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(一):WebDriverAgent安装

    此篇介绍如何安装WebDriverAgent,下一篇介绍facebook-wda库的安装使用以及自动化脚本的开发. 前言: 对于iOS的应用的测试,如果不需要用到图像识别,推荐使用这个项目facebo ...

  3. plsql programming 10 日期和时间戳

    年 月 日 时 分 秒 时区 用小时表示的相对于 UTC 的时差 用分钟表示的相对于 UTC 的时差 date 存储日期和时间, 不带时区, 精确到秒 timestamp 存储日期和时间, 不带时区, ...

  4. js事件绑定的方法

    废话不多少,直接上代码 第一种 <body> <div style="width:400px;height:400px;background:blueviolet" ...

  5. 谈谈Android重打包--初语

    写在前面的话 仅以此系列献给喜欢我CSDN的小伙伴们 申明 此文禁止转载,谢谢合作 序言 在开头说这会是一个系列,那就说明我有非常多话要说.从最简单的介绍到问题的提出.解决方式的构思以及整个系统的架构 ...

  6. Jmeter BeanShell 引用变量报错jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Parse error at line 14, column 181 : Error or number too big for integer

    如果你通过CSV Data Set Config或者_StringFromFile函数来参数化你的请求,需要特别注意当参数为纯数字时,jmeter会默认将其识别成int型数据,说明jmeter并不是默 ...

  7. 16进制 ,Color,Colour转换

    import java.awt.Color; import jxl.format.Colour; public class ColorUtil { public static Colour getNe ...

  8. PLSQL 用的让自己更舒心点!

    每天开发时候  ,有时候会疲劳! 改下你的PLSQL 字体吧!

  9. MySQL二进制包安装简略过程

    l  软件目录 [root@MASTER_03 ~]# mkdir -pv /data/software [root@MASTER_03 ~]# cd /data/software/ [root@MA ...

  10. python模块学习(四)

    re模块 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C ...