Linux基础命令:yum

Posted wzy23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础命令:yum相关的知识,希望对你有一定的参考价值。

Linux yum命令详解

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基与RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象。

YUM的特点主要有以下几点

自动解决依赖性问题  这个是yum最主要的功能,我们可以通过yum来自动的解决软件包直接的依赖性问题

②可以对RPM进行分组,并基于组来进行安装操作  有时候我们可能需要对软件进行分组,比如基于开发的软件放在一组,桌面软件又放在一组,在传统的RPM包管理机制里,我们需要自己手动的去将每一个组里面的软件都安装了才行,而yum就可以方便的对RPM进行分组,我只需要安装这个组,那么这个组里面的所有软件都会自动给我们安装好。

③引入了仓库的概念,支持多个仓库  通过yum来进行软件的安装其实就是基于仓库这个概念的,我将所有的rpm软件包都事先放在一个仓库里面,然后yum就可以在这个仓库里面寻找我们需要安装的软件,找到了就可以自动安装,没找到则就安装不了

④配置简单  在现在的RHEL、CentOS里面基本上都使用yum的方式来进行软件的安装,其主要原因也是基于其仓库的配置非常的简单,

概括了部分常用的命令包括:

自动搜索最快镜像插件:   yum install yum-fastestmirror
安装yum图形窗口插件:    yum install yumex
查看可能批量安装的列表: yum grouplist

1 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1

2 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1

3 查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包

4 删除程序
yum remove | erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况

5 清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers

比如,要安装游戏程序组,首先进行查找:
#:yum grouplist
可以发现,可安装的游戏程序包名字是”Games and Entertainment“,这样就可以进行安装:
#:yum groupinstall "Games and Entertainment"
所 有的游戏程序包就自动安装了。在这里Games and Entertainment的名字必须用双引号选定,因为linux下面遇到空格会认为文件名结束了,因此必须告诉系统安装的程序包的名字是“Games and Entertainment”而不是“Games"

此外,还可以修改配置文件/etc/yum.conf选择安装源。可见yum进行配置程序有多方便了吧。更多详细的选项和命令,当然只要在命令提示行下面:man yum

yum groupinstall "KDE (K Desktop Environment)"

yum install pirut k3b mikmod

yum groupinstall "Server Configuration Tools"

yum groupinstall "Sound and Video"

#yum groupinstall "GNOME Desktop Environment"

yum groupinstall "Legacy Software Support"

yum groupinstall "Development Libraries"

yum groupinstall "Development Tools"

#yum groupinstall "Windows File Server"

yum groupinstall "System Tools"

yum groupinstall "X Window System"

yum install php-gd
yum install gd-devel
yum groupinstall "Chinese Support"


#yum install samba-common  //该执行会一起安装 samba-client
#yum install samba

yum install gcc
yum install cpp
yum install gcc-c++
yum install ncurses
yum install ncurses-devel
yum install gd-devel php-gd
yum install gd-devel
yum install gcc
yum install cpp
yum install gcc-c++
yum install ncurses
yum install ncurses-devel
yum install gd-devel php-gd
yum install gd-devel
yum install zlib-devel
yum install freetype-devel freetype-demos freetype-utils
yum install libpng-devel libpng10 libpng10-devel
yum install libjpeg-devel
yum install ImageMagick
yum install php-gd
yum install flex
yum install ImageMagick-devel


#yum install system-config-bind         
#yum groupinstall "DNS Name Server"      //安裝 bind 及 bind-chroot 套件
yum groupinstall "mysql Database"‘

yum clean all

配置网络yum源

在玩linux的过程中,经常会下载一些源码包。软件大多是国外人写的,由于众所周知的原因,网络下载很慢。

所以想到了更新yum源的方法。

我的linux版本是CentOS6.3的。

以下参考百度。

1,进入yum源配置目录
cd /etc/yum.repos.d

2,备份系统自带的yum源
mv CentOS-Base.repo CentOS-Base.repo.bk
下载163网易的yum源:
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

3,更新玩yum源后,执行下边命令更新yum配置,使操作立即生效
yum makecache

4,除了网易之外,国内还有其他不错的yum源,比如中科大和搜狐的,大家可以根据自己需求下载
中科大的yum源:
wget http://centos.ustc.edu.cn/CentOS-Base.repo
sohu的yum源
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo

 

阿里云是最近新出的一个镜像源。得益与阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源。
阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/

CentOS系统更换软件安装源
第一步:备份你的原镜像文件,以免出错后可以恢复。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步:下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 5

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
CentOS 6

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
第三步:运行yum makecache生成缓存

yum clean all

yum makecache

配置本地源

第一步:挂载光盘(/dev/cdrom这个可以使用/dev/sr0都可以一样的,/mnt/cdrom这个cdrom目录不存在就直接创建)

  挂载光盘之前,需要把光盘放入虚拟机中(linux中),就是你安装linux时的镜像就行

  mount /dev/cdrom /mnt/cdrom/

[root@study yum.repos.d]# mount /dev/sr0 /mnt/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only
mount: /dev/sr0 is already mounted or /mnt/cdrom busy
       /dev/sr0 is already mounted on /mnt/cdrom

  因为我之前挂在过了,所以它提示/dev/sr0或者/mnt/cdrom很忙,也就是已经挂载了的意思

  第二步:修改/etc/yum.repos.d/目录下的yum源的名称,如下代码,使用mv命令修改名称,因为我们制作本地光盘yum源,所以CentOS-Media.repo不做修改

[root@study yum.repos.d]# ls -l
total 28
-rw-r--r--. 1 root root 1664 Dec  9  2015 CentOS-Base.repo.bak
-rw-r--r--. 1 root root 1309 Dec  9  2015 CentOS-CR.repo.bak
-rw-r--r--. 1 root root  649 Dec  9  2015 CentOS-Debuginfo.repo.bak
-rw-r--r--. 1 root root  290 Dec  9  2015 CentOS-fasttrack.repo.bak
-rw-r--r--  1 root root  661 Jun 29 09:41 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Dec  9  2015 CentOS-Sources.repo.bak
-rw-r--r--. 1 root root 1952 Dec  9  2015 CentOS-Vault.repo.bak

  然后就是修改CentOS-Media.repo文件了,先看下该文件的内容:

# CentOS-Media.repo
#
#  This repo can be used with mounted DVD media, verify the mount point for
#  CentOS-7.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c7-media [command]
#  
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c7-media [command]

[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

其实跟上面的CentOS-Base.repo文件的配置项一样,只是配置的内容有点不同,最大的不同在于baseurl:

  网络yum源的baseurl后面跟着url地址,而CentOS-Base.repo本地光盘yum源的baseurl后面则是光盘挂载的地址

  此时我们要使本地光盘yum源生效,需要改baseurl和enabled的配置,容器名称随便写,name描述也随便写,只要你自己记得认识就行:

  baseurl=file:///mnt/cdrom/(你刚才光盘挂载的位置),其他的几个位置直接注释点就行,不注释也行,但是每次执行的时候会报错提示找不到

  enabled=1(这个很重要,在上面讲网络yum源的时候讲到过,这就是个开关,设置为1(或者直接这个配置项不写)表示yum源生效,写成0表示不生效)

  修改后的文件内容如下:

[c7-media]
name=CentOS-$releasever - Media
baseurl= file:///mnt/cdrom/
#        file:///media/CentOS/
#        file:///media/cdrom/
#        file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

  这个时候本地光盘yum源就制作好了,接下来可以使用yum list获取yum源安装的列表看一下我们制作的本地光盘yum源是否生效:

yum-plugin-show-leaves.noarch                                      1.1.31-34.el7                                   c7-media 
yum-plugin-tmprepo.noarch                                          1.1.31-34.el7                                   c7-media 
yum-plugin-tsflags.noarch                                          1.1.31-34.el7                                   c7-media 
yum-plugin-upgrade-helper.noarch                                   1.1.31-34.el7                                   c7-media 
yum-plugin-verify.noarch                                           1.1.31-34.el7                                   c7-media 
yum-plugin-versionlock.noarch                                      1.1.31-34.el7                                   c7-media 
yum-rhn-plugin.noarch                                              2.0.1-5.el7                                     c7-media 
yum-updateonboot.noarch                                            1.1.31-34.el7                                   c7-media 
zenity.x86_64                                                      3.8.0-5.el7                                     c7-media 
zlib.i686                                                          1.2.7-15.el7                                    c7-media 
zlib-devel.i686                                                    1.2.7-15.el7                                    c7-media 
zlib-static.i686                                                   1.2.7-15.el7                                    c7-media 
zlib-static.x86_64                                                 1.2.7-15.el7                                    c7-media 
zsh.x86_64                                                         5.0.2-14.el7                                    c7-media 
zsh-html.x86_64                                                    5.0.2-14.el7                                    c7-media 
zziplib.i686                                                       0.13.62-5.el7                                   c7-media 
zziplib.x86_64                                                     0.13.62-5.el7                                   c7-media 
zziplib-devel.i686                                                 0.13.62-5.el7                                   c7-media 
zziplib-devel.x86_64                                               0.13.62-5.el7                                   c7-media 
zziplib-utils.x86_64                                               0.13.62-5.el7                                   c7-media 
[root@study yum.repos.d]# 

  这个列表我在上面讲过,我们就看最右边的就行"c7-media",大家发现没,由原来的base、updates变成了 c7-media,这个容器名称大家属性吧!就是我们刚才制作的本地光盘yum源的容器名称,说明这些yum源安装的软件列表都是从我们制作的本地光盘yum源里面获取到的,说制作成功了!

  但是本地光盘yum源有2个问题:

    1.那就是不能获取最新的软件,比较是从我们的光盘中获取的的软件,不过没事,等我们可以连接外网了,使用yum工具来升级

    2.那就是每次当你开机时,想要使用都必须把光盘添加到虚拟机,然后手动挂载,或者开机前把光盘放进去,然后可以把挂载命令写到/etc/rc.d/rc.local中,开启自动挂载

 

 

以上是关于Linux基础命令:yum的主要内容,如果未能解决你的问题,请参考以下文章

Linux网络原理及基础设,yum管理RPM包

linux基础命令(-)

linux 软件安装-yum和源代码包安装

linux基础命令之权限管理命令

新手学习Linux——apache基础搭建

吕城宇作业计算机基础6