linux:存放yum源的位置:/etc/yum.repos.d/,该目录下全是一些yum源
一、网络yum源:
如图:下面全部都是yum源,后缀是".repo"都是合法的yum源,默认的是启动的CentOS-Base.repo这个yum源(网络yum源)
[root@study yum.repos.d]# ls -l
total 28
-rw-r--r--. 1 root root 1664 Dec 9 2015 CentOS-Base.repo --- 网络yum源
-rw-r--r--. 1 root root 1309 Dec 9 2015 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Dec 9 2015 CentOS-Debuginfo.repo --- debug修复工具yum源
-rw-r--r--. 1 root root 290 Dec 9 2015 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 661 Jun 29 09:41 CentOS-Media.repo --- 本地光盘yum源
-rw-r--r--. 1 root root 1331 Dec 9 2015 CentOS-Sources.repo
-rw-r--r--. 1 root root 1952 Dec 9 2015 CentOS-Vault.repo ---虚拟yum源
要使用CentOS-Base.repo这个yum源,linux必须要能连接外网,否则是用不了网络yum源的
接下来看下CentOS-Base.repo这个网络yum源文件的内容:
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
# [base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
解释:
[base] : 容器名称,必须放在[]中
name : 描述,容器说明
mirrorlist : 镜像网站,这个可以注释掉(网站在国外,有点慢)
baseurl : 我们的yum源服务器地址,默认是centos官方的yum源服务器,可以使用
enabled : 此容器是否生效,不写或者写成enabled=1都代表生效,写成enabled=0表示不生效
gpgcheck : 如果是1是指RPM的数字证书生效,如果是0则不生效
gpgkey : 数字证书的公钥文件保存位置。不用修改
其实我们可以使用yum list查看一下yum可以安装的列表:
yum-plugin-tsflags.noarch 1.1.31-34.el7 base
yum-plugin-upgrade-helper.noarch 1.1.31-34.el7 base
yum-plugin-verify.noarch 1.1.31-34.el7 base
yum-plugin-versionlock.noarch 1.1.31-34.el7 base
yum-rhn-plugin.noarch 2.0.1-5.el7 base
yum-updateonboot.noarch 1.1.31-34.el7 base
zenity.x86_64 3.8.0-5.el7 base
zlib.i686 1.2.7-15.el7 base
zlib-devel.i686 1.2.7-15.el7 base
zlib-static.i686 1.2.7-15.el7 base
zlib-static.x86_64 1.2.7-15.el7 base
zsh.x86_64 5.0.2-14.el7_2.2 updates
zsh-html.x86_64 5.0.2-14.el7_2.2 updates
zziplib.i686 0.13.62-5.el7 base
zziplib.x86_64 0.13.62-5.el7 base
zziplib-devel.i686 0.13.62-5.el7 base
zziplib-devel.x86_64 0.13.62-5.el7 base
zziplib-utils.x86_64 0.13.62-5.el7 base
[root@study yum.repos.d]#
上面的列表分为三部分(从左到右说明):包名(跟包全名不同,注意区分)、版本号(发现次数,适用的系统之类的)、右边这个熟悉吧!就是yum源内的容器了(base、updates...)
使用yum来进行安装软件,不需要我们自己解决安装软件包的依赖性,它会直接在yum源服务器把该软件的相关依赖包全部下载并进行安装,很方便
但是当我们不能连接外网的时候,我们就使用不了网络yum源了,这时该怎么办呢?那就是要本地光盘yum源,也就是:CentOS-Media.repo
二、制作本地光盘yum源
第一步:挂载光盘(/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中,开启自动挂载
三、yum常用的命令
选项-y是自动回答yes
1.升级:update
格式:yum -y update 包名(注意这里说的是包名不是包全名)
注意:千万不能只写yum -y update,没写包名就执行了,那这样就是升级整个linux系统的所以软件,包括内核都会升级,一旦全部升级了,那么你的服务器就不能被远程连接,很多问题就都出来了
2.卸载:remove
格式:yum -y remove 包名(注意这里说的是包名不是包全名)
注意:千万不要随便的去卸载一个软件,因为它不只是卸载这个软件本身这么简单,大家都知道,linux的软件都有依赖性的,可能好几个软件都依赖同一个安装包,一旦你卸载其中一个软件,那么对应的依赖包也都跟着一起卸载,就会造成某些软件无法正常使用
3.安装:install
格式:yum -y install 包名(注意这里说的是包名不是包全名)
4.查询:list、search
格式:yum list
格式:yum search 关键字
5.yum软件组管理命令
获取软件组命令:yum grouplist
安装:yum groupinstall 软件组名
卸载:yum groupremove 软件组名