- 7.1 安装软件包的三种方法
- 7.2 rpm包介绍
- 7.3 rpm工具用法
- 7.4 yum工具用法
- 7.5 yum搭建本地仓库
- 扩展
1. yum保留已经安装过的包 http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml
2. 搭建局域网yum源 http://ask.apelearn.com/question/7627




# 7.1 安装软件包的三种方法

- windows的.exe文件实际上是一种二进制的安装包
- linux下有三种方法
1. rpm 工具
这种包和windows下的exe比较像,直接用rpm工具就可以,路径和文件名都是固定好的,
2. yum 工具
yum是另外一种工具安装rpm包的,用Python开发的一个工具,支持自动安装依赖的包,
3. 源码包
实际上是源代码,可以看到程序包,当时作者写的 c语言c++ ,用编程语言开发的各个文件都可以看到,需要通过一种编译器,把源码包编译成可以执行的文件
- 这三种方法,源码包是最难的,yum是最简单的



# 7.2 rpm包介绍

![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170809/221054992.png?p_w_picpathslim)
- 怎么去把rpm工具怎么用,这个包是什么样子的?
- 先打开虚拟机,看下右下方小光盘,点右键连接上,先把光盘连接到linux系统里面来,然后进行一个挂载
![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170809/221300341.png?p_w_picpathslim)
先看下/mnt/有没有在用
```
[root@aminglinux-01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        28G  1.4G   27G    5% /
devtmpfs        479M     0  479M    0% /dev
tmpfs           489M     0  489M    0% /dev/shm
tmpfs           489M  6.7M  482M    2% /run
tmpfs           489M     0  489M    0% /sys/fs/cgroup
/dev/sda1       197M  109M   88M   56% /boot
tmpfs            98M     0   98M    0% /run/user/0
[root@aminglinux-01 ~]# ls /mnt/
[root@aminglinux-01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@aminglinux-01 ~]# 
[root@aminglinux-01 ~]# cd /mnt/
[root@aminglinux-01 mnt]# ls
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              p_w_picpaths    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

[root@aminglinux-01 mnt]# cd Packages/
[root@aminglinux-01 Packages]# ls

xvattr-1.3-27.el7.x86_64.rpm
xz-5.2.2-1.el7.x86_64.rpm
xz-devel-5.2.2-1.el7.x86_64.rpm
xz-libs-5.2.2-1.el7.x86_64.rpm
yajl-2.0.4-4.el7.x86_64.rpm
yelp-3.14.2-1.el7.x86_64.rpm
yelp-libs-3.14.2-1.el7.x86_64.rpm
yelp-xsl-3.14.0-1.el7.noarch.rpm
ypbind-1.37.1-7.el7.x86_64.rpm
ypserv-2.31-8.el7.x86_64.rpm
yp-tools-2.14-3.el7.x86_64.rpm
yum-3.4.3-150.el7.centos.noarch.rpm
yum-langpacks-0.4.2-7.el7.noarch.rpm
yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
yum-plugin-aliases-1.1.31-40.el7.noarch.rpm
yum-plugin-changelog-1.1.31-40.el7.noarch.rpm
yum-plugin-fastestmirror-1.1.31-40.el7.noarch.rpm
yum-plugin-tmprepo-1.1.31-40.el7.noarch.rpm
yum-plugin-verify-1.1.31-40.el7.noarch.rpm
yum-plugin-versionlock-1.1.31-40.el7.noarch.rpm
yum-utils-1.1.31-40.el7.noarch.rpm
zenity-3.8.0-5.el7.x86_64.rpm
zip-3.0-11.el7.x86_64.rpm
zlib-1.2.7-17.el7.x86_64.rpm
zlib-devel-1.2.7-17.el7.x86_64.rpm
zsh-5.0.2-25.el7.x86_64.rpm
zziplib-0.13.62-5.el7.x86_64.rpm
[root@aminglinux-01 Packages]# 
```
![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170809/223245336.png?p_w_picpathslim)
1. 从左到右,第一部分字符串,叫包名,包名后面是一个- 版本号,版本号又分成 主版本号,次版本号,小的版本号(修正版本),发布版本号,再往后是平台,最后就是后缀名.rpm
2. centos 4 5 6 都是区分32位 64位,centos7开始就不区分这些了



# 7.3  rpm工具的用法

![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170809/223811716.png?p_w_picpathslim)

1. 安装rpm包 使用命令rpm -ivh rpm包文件
```
zenity-3.8.0-5.el7.x86_64.rpm
zip-3.0-11.el7.x86_64.rpm
zlib-1.2.7-17.el7.x86_64.rpm
zlib-devel-1.2.7-17.el7.x86_64.rpm
zsh-5.0.2-25.el7.x86_64.rpm
zziplib-0.13.62-5.el7.x86_64.rpm
[root@aminglinux-01 Packages]# 
[root@aminglinux-01 Packages]# rpm -ivh zsh-5.0.2-25.el7.x86_64.rpm
准备中...                          ################################# [100%]
正在升级/安装...
   1:zsh-5.0.2-25.el7                 ################################# [100%]
[root@aminglinux-01 Packages]# 
```
2. 升级rpm包  使用命令rpm -Uvh
```
[root@aminglinux-01 Packages]# rpm -Uvh zsh-5.0.2-25.el7.x86_64.rpm
```
3. 卸载rpm包 使用命令rpm -e 包名(不是整个包文件)
```
[root@aminglinux-01 Packages]# rpm -e zsh
[root@aminglinux-01 Packages]# 
也可以rpm -evh 卸载rpm包 加上vh 就是显示可视化和进度
[root@aminglinux-01 Packages]# rpm -evh zsh
准备中...                          ################################# [100%]
正在清理/删除...
   1:zsh-5.0.2-25.el7                 ################################# [100%]
[root@aminglinux-01 Packages]#
```
4. 查询安装的包 使用命令rpm -qa 
```
[root@aminglinux-01 Packages]# rpm -qa
policycoreutils-2.5-8.el7.x86_64
libdaemon-0.14-7.el7.x86_64
kmod-20-9.el7.x86_64
polkit-0.112-9.el7.x86_64
dhclient-4.2.5-47.el7.centos.x86_64
crontabs-1.11-6.20121102git.el7.noarch
libdrm-2.4.67-3.el7.x86_64
pciutils-3.5.1-1.el7.x86_64
[root@aminglinux-01 Packages]#
```


5. 查询指定包是否安装  使用命令 rpm -q 包名
```
[root@aminglinux-01 Packages]# rpm -q ppp
ppp-2.4.5-33.el7.x86_64
[root@aminglinux-01 Packages]# rpm -q ppp1
未安装软件包 ppp1 
[root@aminglinux-01 Packages]#
```
6. 查询指定包信息  使用命令rpm -qi 包名
```
[root@aminglinux-01 Packages]# rpm -qi vim-enhanced
Name        : vim-enhanced
Epoch       : 2
Version     : 7.4.160
Release     : 1.el7_3.1
Architecture: x86_64
Install Date: 2017年08月03日 星期四 21时53分22秒
Group       : Applications/Editors
Size        : 2292098
License     : Vim
Signature   : RSA/SHA256, 2016年12月22日 星期四 01时14分11秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : vim-7.4.160-1.el7_3.1.src.rpm
Build Date  : 2016年12月22日 星期四 01时00分52秒
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.vim.org/
Summary     : A version of the VIM editor which includes recent enhancements
Description :
VIM (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  VIM improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and more.  The
vim-enhanced package contains a version of VIM with extra, recently
introduced features like Python and Perl interpreters.

Install the vim-enhanced package if you'd like to use a version of the
VIM editor which includes recently added enhancements like
interpreters for the Python and Perl scripting languages.  You'll also
need to install the vim-common package.
[root@aminglinux-01 Packages]# 
```


7. 列出包安装的文件  使用命令  rpm -ql 包名
```
[root@aminglinux-01 Packages]# rpm -ql vim-enhanced
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/usr/bin/rvim
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor
[root@aminglinux-01 Packages]# 
```


8. 查看一个文件是由哪个包安装的  使用命令 rpm -qf 文件绝对路径
```
[root@aminglinux-01 Packages]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-1.el7_3.1.x86_64
[root@aminglinux-01 Packages]#


[root@aminglinux-01 Packages]# rpm -qf `which cd`   这是反引号
bash-4.2.46-20.el7_2.x86_64
[root@aminglinux-01 Packages]# rpm -qf `which ls`
rpm: --color=auto': 未知的选项
[root@aminglinux-01 Packages]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls
	这里的ls 是俩行,所以不能把俩行作为参数
	用cd 可以实现
[root@aminglinux-01 Packages]# rpm -qf `which cd`
bash-4.2.46-20.el7_2.x86_64
[root@aminglinux-01 Packages]# which cd
/usr/bin/cd
[root@aminglinux-01 Packages]#
```



# 7.4 yum工具的用法

![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170811/234056261.png?p_w_picpathslim)
- 如果使用rpm安装包,会有很多依赖关系,安装很麻烦,安装这个包会需要安装其他的包,有很多依赖关系,但是yum可以自动帮忙解决依赖关系,只需要跟包名
```
[root@aminglinux-01 Packages]# rpm -ivh texlive-2012-38.20130427_r30134.el7.x86_64.rpm 
错误:依赖检测失败:
	texlive-scheme-basic 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
	texlive-collection-latexrecommended 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
	tex-kpathsea 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
	tex-tetex 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
[root@aminglinux-01 Packages]#
```
- 下面来用yum试下
```
[root@aminglinux-01 Packages]# yum install texlive

 texlive-xdvi                        noarch 2:svn26689.22.85-38.el7             base  60 k
 texlive-xdvi-bin                    x86_64 2:svn26509.0-38.20130427_r30134.el7 base 278 k
 texlive-xkeyval                     noarch 2:svn27995.2.6a-38.el7              base  27 k
 texlive-xunicode                    noarch 2:svn23897.0.981-38.el7             base  44 k
 texlive-zapfchan                    noarch 2:svn28614.0-38.el7                 base 102 k
 texlive-zapfding                    noarch 2:svn28614.0-38.el7                 base  65 k
 zziplib                             x86_64 0.13.62-5.el7                       base  81 k

事务概要
===========================================================================================
安装  1 软件包 (+223 依赖软件包)

总下载量:118 M
安装大小:226 M
Is this ok [y/d/N]: n
Exiting on user command
您的事务已保存,请执行:
 yum load-transaction /tmp/yum_save_tx.2017-08-11.23-52.oRt6jf.yumtx 重新执行该事务
[root@aminglinux-01 Packages]#
```
- 如果用rpm -ivh 一个个安装需要安装233个依赖的软件包,那要累死了,但是yum可以自动帮您安装好,这就是yum的优势

- yum list 可以列出可用的rpm包
```
[root@aminglinux-01 Packages]# yum list

[root@aminglinux-01 Packages]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@aminglinux-01 Packages]# ls /etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-Base.repo
[root@aminglinux-01 Packages]#
[root@aminglinux-01 Packages]# cat /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# 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

...

[root@aminglinux-01 Packages]# 
```
- yum search vim 搜素包 搜索vim 也可以搜其他的
```
[root@aminglinux-01 Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.btte.net
 * updates: mirrors.163.com
==================================== N/S matched: vim =====================================
golang-vim.noarch : Vim plugins for Go
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor

  名称和简介匹配 only,使用“search all”试试。
[root@aminglinux-01 Packages]# 
```
- yum list |grep 'vim' 把yum list 命令  输出的结果里面再去 丢给后面的命令 再去过滤,中间的是管道符

```
[root@aminglinux-01 Packages]# yum list |grep 'vim'
vim-common.x86_64                          2:7.4.160-1.el7_3.1         @updates 
vim-enhanced.x86_64                        2:7.4.160-1.el7_3.1         @updates 
vim-filesystem.x86_64                      2:7.4.160-1.el7_3.1         @updates 
vim-minimal.x86_64                         2:7.4.160-1.el7             @anaconda
golang-vim.noarch                          1.3.3-2.el7_0               extras   
protobuf-vim.x86_64                        2.5.0-8.el7                 base     
vim-X11.x86_64                             2:7.4.160-1.el7_3.1         updates  
vim-minimal.x86_64                         2:7.4.160-1.el7_3.1         updates  
[root@aminglinux-01 Packages]# 
```
- yum install -y  安装包 -y表示不再询问

- yum grouplist 把可用的组列出来
```
[root@aminglinux-01 Packages]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.btte.net
 * updates: mirrors.163.com
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工作站
可用组:
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   智能卡支持
   科学记数法支持
   系统管理
   系统管理工具
完成
[root@aminglinux-01 Packages]# 想要改成英文 使用命令LANG=en即可
[root@aminglinux-01 Packages]# LANG=en
[root@aminglinux-01 Packages]# yum grouplist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.btte.net
 * updates: mirrors.163.com
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
Done
[root@aminglinux-01 Packages]#
```
- yum groupinstall  (-y)
```
[root@aminglinux-01 Packages]# yum groupinstall 'Virtualization Host'
如果安装的包是一个单词 就不需要用 单引号,如果中间有空格就加上单引号

Transaction Summary
===========================================================================================
Install  63 Packages (+153 Dependent packages)
Upgrade              (   7 Dependent packages)

Total download size: 65 M
Is this ok [y/d/N]: n
Exiting on user command
Your transaction was saved, rerun it with:
 yum load-transaction /tmp/yum_save_tx.2017-08-12.00-28.o4N6Ss.yumtx
[root@aminglinux-01 Packages]#
```
- yum remove [-y] 卸载包  同时帮你把依赖的包也卸载,这个操作比较危险
```
Dependencies Resolved

===========================================================================================
 Package                     Arch           Version                Repository         Size
===========================================================================================
Removing:
 ppp                         x86_64         2.4.5-33.el7           @anaconda         852 k
Removing for dependencies:
 NetworkManager              x86_64         1:1.4.0-12.el7         @anaconda          10 M
 NetworkManager-team         x86_64         1:1.4.0-12.el7         @anaconda          53 k
 NetworkManager-tui          x86_64         1:1.4.0-12.el7         @anaconda         266 k
 NetworkManager-wifi         x86_64         1:1.4.0-12.el7         @anaconda         144 k

Transaction Summary
===========================================================================================
Remove  1 Package (+4 Dependent packages)

Installed size: 11 M
Is this ok [y/N]: n
Exiting on user command
Your transaction was saved, rerun it with:
 yum load-transaction /tmp/yum_save_tx.2017-08-12.00-31.QLxOxc.yumtx
[root@aminglinux-01 Packages]#
```
- yum update [-y] 去升级一个包,如果不加包名,会默认把系统离所有包都升级到最新的包,这个操作往往是在刚刚安装完系统再做,
- 如果是系统里面在运行过一些服务,就不要随便用这个升级,不然会导致系统一些服务停止,和文件丢失

- 命令 yum provides "/*/vim"  如果系统里没有vim 这个命令,也不知道vim这个包的话就使用这个命令搜一下,
- 这就是怎么样去搜一个命令有哪一个包 可以安装到它   前提是这个命令 没有安装的命令
- 使用rpm -qf `which vim` 如果vim 命令根本就没有安装  
就要用yum provides "/*/vim" 命令
```
[root@aminglinux-01 Packages]# yum provides "/*/vim"
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.btte.net
 * updates: mirrors.163.com
cmake-2.8.12.2-2.el7.x86_64 : Cross-platform make system
Repo        : base
Matched from:
Filename    : /usr/share/cmake/editors/vim



2:docker-unit-test-1.10.3-59.el7.centos.x86_64 : Automates deployment of containerized
                                               : applications - for running unit tests
Repo        : extras
Matched from:
Filename    : /var/lib/docker-unit-test/contrib/syntax/vim
Filename    : /var/lib/docker-unit-test/v1.10-migrator-c417a6a022c5023c111662e8280f885f6ac259be/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim
Filename    : /var/lib/docker-unit-test/docker-novolume-plugin-c5212546ab01b4b7b62caba888d298ab63f53984/Godeps/_workspace/src/github.com/docker/docker/contrib/syntax/vim



git-1.8.3.1-6.el7_2.1.x86_64 : Fast Version Control System
Repo        : base
Matched from:
Filename    : /usr/share/doc/git-1.8.3.1/contrib/vim



2:vim-common-7.4.160-1.el7.x86_64 : The common files needed by any version of the VIM
                                  : editor
Repo        : base
Matched from:
Filename    : /usr/share/vim



2:vim-common-7.4.160-1.el7_3.1.x86_64 : The common files needed by any version of the VIM
                                      : editor
Repo        : updates
Matched from:
Filename    : /usr/share/vim



2:vim-enhanced-7.4.160-1.el7.x86_64 : A version of the VIM editor which includes recent
                                    : enhancements
Repo        : base
Matched from:
Filename    : /usr/bin/vim



2:vim-enhanced-7.4.160-1.el7_3.1.x86_64 : A version of the VIM editor which includes recent
                                        : enhancements
Repo        : updates
Matched from:
Filename    : /usr/bin/vim



2:vim-enhanced-7.4.160-1.el7_3.1.x86_64 : A version of the VIM editor which includes recent
                                        : enhancements
Repo        : @updates
Matched from:
Filename    : /usr/bin/vim



[root@aminglinux-01 Packages]# 
```

# 7.5  yum 搭建本地仓库

![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170812/150337441.png?p_w_picpathslim)
- 图片中小错误:小错误: gpcheck改为gpgcheck,yum cean 改为 yum clean)

- 有时候yum不能用,是yum不能联网,因为默认的仓库 是要远程连接一个资源 网站,下载rpm包 然后再去安装,那没网yum就不能用了吗 ? 就不能安装了吗?我们可以去搭建一个本地的仓库,让它来本地的仓库里来找这些rpm包
,挂载光盘,里面Packages里有那么多rpm 包,把这些rpm包作为一个仓库, 首先要有一个光驱 ,光盘,镜像文件,挂载这个光驱,可以访问到这个里面的rpm包。

1.挂载一个光驱在/mnt/下
```
[root@aminglinux-01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@aminglinux-01 ~]# 
[root@aminglinux-01 ~]# cd /mnt/
[root@aminglinux-01 mnt]# cd Packages/
[root@aminglinux-01 Packages]# ls /mnt/
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              p_w_picpaths    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@aminglinux-01 Packages]# 
```
2.下面可能会删除一些文件 ,所以删除之前 先做一个备份,把这个目录拷贝一下
```
[root@aminglinux-01 Packages]# cd
[root@aminglinux-01 ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak

再到etc目录下的yum.repos.d 目录下 把所有.repo文件全部删掉
[root@aminglinux-01 ~]# cd /etc/yum.repos.d
[root@aminglinux-01 yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@aminglinux-01 yum.repos.d]# rm -rf ./*
[root@aminglinux-01 yum.repos.d]# vi dvd.repo   创建一个dvd.repo 文件
[root@aminglinux-01 yum.repos.d]# vi dvd.repo

                                                                                  
~                                                                                          
~                                                                                          
~                                                                                          
"dvd.repo" [New File]

按i进入编辑模式

[dvd]                              dvd 最右侧仓库的名字
name=install dvd
baseurl=file:///mnt                你这些rpm包在哪里,在/mnt/下也就是光驱的路径
enable=1                          enable=1是否可用  改成=0 就是源,yum仓库不能用
gpcheck=0                           gpcheck 是否要检测 =0 不检测
                                                                                    
~                                                                                          
~                                                                                          
~                                                                                          
~                                                                                          
~                                                                                          
~                                                                                          
~                                                                                          
-- INSERT --
:wq 保存退出

[root@aminglinux-01 yum.repos.d]# rm -rf ./*
[root@aminglinux-01 yum.repos.d]# vi dvd.repo
[root@aminglinux-01 yum.repos.d]# yum clean all   把之前的缓存都进行一个清除
已加载插件:fastestmirror
正在清理软件源: dvd
Cleaning up everything
Cleaning up list of fastest mirrors
[root@aminglinux-01 yum.repos.d]#

然后再yum list 看下
[root@aminglinux-01 yum.repos.d]# yum list
[root@aminglinux-01 yum.repos.d]# yum list |less   加个管道符 less 用less 查看下,可以一屏一屏看
带@说明是已经安装过的包
yum.noarch                              3.4.3-150.el7.centos           @anaconda
yum-metadata-parser.x86_64              1.1.4-10.el7                   @anaconda
yum-plugin-fastestmirror.noarch         1.1.31-40.el7                  @anaconda
zip.x86_64                              3.0-11.el7                     @base    
zlib.x86_64                             1.2.7-17.el7                   @anaconda
可安装的软件包
389-ds-base.x86_64                      1.3.5.10-11.el7                dvd      
389-ds-base-libs.x86_64                 1.3.5.10-11.el7                dvd      
ElectricFence.x86_64                    2.2.2-39.el7                   dvd      
GConf2.x86_64                           3.2.6-8.el7                    dvd      
ImageMagick.x86_64                      6.7.8.9-15.el7_2               dvd      
ImageMagick-c++.x86_64                  6.7.8.9-15.el7_2               dvd      
ImageMagick-perl.x86_64                 6.7.8.9-15.el7_2               dvd      
LibRaw.x86_64                           0.14.8-5.el7.20120830git98d925 dvd      
ModemManager.x86_64                     1.6.0-2.el7                    dvd      
ModemManager-glib.x86_64                1.6.0-2.el7                    dvd      
MySQL-python.x86_64                     1.2.5-1.el7                    dvd      
NetworkManager-adsl.x86_64              1:1.4.0-12.el7                 dvd      
NetworkManager-bluetooth.x86_64         1:1.4.0-12.el7                 dvd      
NetworkManager-glib.x86_64              1:1.4.0-12.el7                 dvd 
带@ 的 上面的  是已经按照的包
下面是可以安装的包
```
下面来安装一个  dvd里面的
```
[root@aminglinux-01 yum.repos.d]# yum list |less


由于管道被破坏而退出
[root@aminglinux-01 yum.repos.d]# yum install GConf2
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 GConf2.x86_64.0.3.2.6-8.el7 将被 安装
--> 正在处理依赖关系 /usr/bin/killall,它被软件包 GConf2-3.2.6-8.el7.x86_64 需要
--> 正在检查事务
---> 软件包 psmisc.x86_64.0.22.20-11.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

===========================================================================================
 Package             架构                版本                       源                大小
===========================================================================================
正在安装:
 GConf2              x86_64              3.2.6-8.el7                dvd              1.0 M
为依赖而安装:
 psmisc              x86_64              22.20-11.el7               dvd              141 k

事务概要
===========================================================================================
安装  1 软件包 (+1 依赖软件包)

总下载量:1.1 M
安装大小:6.8 M
Is this ok [y/d/N]: y
Downloading packages:
-------------------------------------------------------------------------------------------
总计                                                       8.9 MB/s | 1.1 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : psmisc-22.20-11.el7.x86_64                                             1/2 
  正在安装    : GConf2-3.2.6-8.el7.x86_64                                              2/2 
  验证中      : GConf2-3.2.6-8.el7.x86_64                                              1/2 
  验证中      : psmisc-22.20-11.el7.x86_64                                             2/2 

已安装:
  GConf2.x86_64 0:3.2.6-8.el7                                                              

作为依赖被安装:
  psmisc.x86_64 0:22.20-11.el7                                                             

完毕!
[root@aminglinux-01 yum.repos.d]# 
```
- 这个就方便我们使用本地的光盘作为它的一个仓库,很方便去安装一些依赖的包,如果直接用rpm 会有很多依赖的包,很麻烦,很浪费时间,直接搞一个yum本地仓库,直接帮您全部搞定。



## 扩展

- [ ] 1. yum保留已经安装过的包 http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml

-可以设置使yum保留已经下载的rpm包,供以后升级或重新安装时使用。
修改/etc/yum.conf即可:

[main]
cachedir=/home/soft1/yumcache
keepcache=1
debuglevel=2

chchedir是放置下载的包的地方,可以修改为自己想放置的位置。
keepcache为1时表示保存已经下载的rpm包。


- [ ] 2. 搭建局域网yum源 http://ask.apelearn.com/question/7627

-yum局域网软件源搭建

 来源:CSDN  作者:bhq2010

1、搭建Apache服务器或ftp服务器
yum安装或二进制包安装

2、准备RPM包把CentOS的DVD1和DVD2.iso都下载下来,把DVD1.iso里的所有内容解压出来,放到/var/www/html/centos-6目录下,然后把DVD2.iso解压出来的Packages目录下的rpm包复制到/var/html/centos-6/Packages目录下,这样/var/html/centos-6/Packages里面就有了6000多个rpm包。

3、创建yum仓库
准备createrepo:yum -y install createrepo
创建repository:createrepo /var/www/html/centos-6/
创建完成之后,会在/var/www/html/centos-6/repodata下生成一些文件。


4、使用软件源

在其他centos机器上试试软件源能不能用。

首先修改机器上软件源配置文件:
```
# cd /etc/yum.repos.d/
# mkdir bk
# mv *.repo bk/
# cp bk/CentOS-Base.repo ./
# vi CentOS-Base.repo

CentOS-Base.repo文件修改之后如下:

[base]
name=CentOS-$releasever - Base
baseurl=http://*.*.*.*/centos-6/
gpgcheck=1(改成0下面那行就不用设置了)
gpgkey=http:///*.*.*.*/centos-6/RPM-GPG-KEY-CentOS-6
enabled=1
#released updates 
#[updates]
#name=CentOS-$releasever - Updates
#baseurl=http:///*.*.*.*/centos-6/
#gpgcheck=1
#gpgkey=http:///*.*.*.*/centos-6/RPM-GPG-KEY-CentOS-6
#enabled = 1

保存之后,就可以使用局域网的软件源了:

- # yum update

```

原地址:http://www.linuxidc.com/Linux/2013-07/87315.htm