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的主要内容,如果未能解决你的问题,请参考以下文章