yum
(1)yum概念
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)。
(2)yum客户端的配置文件
/etc/yum.conf: 为所有仓库提供公共配置
/etc/yum.repos.d/*.repo: 为仓库的指向提供配置
仓库指向的定义:
[repositoryID]
name=Some name for this repository
baseurl=url://path/to/repository/
enabled={1|0} 禁用此源
gpgcheck={1|0} 是否检查
gpgkey=url 公钥的位置
enablegroups={1|0}
failovermethod={roundrobin|priority}
roundrobin:意为随机挑选,默认值
priority:按顺序访问
cost= 默认为1000
(3)配置yum仓库时可用的变量:
$releasever: 当前OS的发行版的主版本号
$arch: 平台,i386,i486,i586,x86_64等
$basearch:基础平台;i386, x86_64
$YUM0-$YUM9:自定义变量
示例:
http://server/centos/ releasever/ basearch/
http://server/centos/7/x86_64
http://server/centos/6/i384
(4)yum源的来源
阿里云repo文件: http://mirrors.aliyun.com/repo/
CentOS系统的yum源
阿里云:
https://mirrors.aliyun.com/centos/$releasever/os/x86_64/
EPEL的yum源:
阿里云:
https://mirrors.aliyun.com/epel/$releasever/x86_64
yum源可以来自souhu、aliyun等一些网站。
(5)yum命令
usage: yum [options] [command] [package …]
显示yum repolist [all|enabled|disabled]
all: 列出所有仓库
enabled:列出可用的仓库
disabled:列出不可用的仓库yum list 显示程序包;
yum list GLOBING 可以使用通配符模糊查找;
yum list {available 显示没有装好的包|installed显示已经装好的包|updates显示更新的包} [glob_exp1][…]
yum info FILENAME 查看程序包的信息;示例:
[root@centos7 ~]#yum info vsftpd
查看指定的特性(可以是某文件)是由哪个程序包所提供:
yum provides | whatprovides feature1 [feature2][…]
安装
yum install PACKAGES
yum reinstall PACKAGES 重新安装;
升级
yum update [package1] [package2] [...]
yum downgrade package1 [package2] [...] (降级)
检查
yum check-update
卸载
yum remove | erase package1 [package2] [...]
[root@centos7 ~]#yum remove tree #卸载tree
注意:卸载时只卸载要卸载的包,依赖的包不卸载。
清除缓存:
清除/var/cache/yum/$basearch/$releasever缓存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
缓存问题有可能倒置不能使用yum;遇到问题清除缓存;
搜索
搜索:yum search string1 [string2] [...]
以指定的关键字搜索程序包名及summary信息
查看指定包所依赖的capabilities:
yum deplist package1 [package2] [...]
查看yum事务历史:
yum history [info|list|packages-list|packages-info|summary|addon-info|redo重新执行|undo撤销此前操作;| rollback|new|sync|stats]
日志 :/var/log/yum.log
示例
[root@centos7 ~]#yum history list
Loaded plugins: fastestmirror, langpacks
ID | Login user | Date and time | Action(s) | Altered
——————————————————————————-
2 | root | 2017-08-02 22:50 | Install | 2 <
1 | System | 2017-07-14 11:19 | Install | 1257 >
history list
[root@centos7 ~]#yum history undo 2选项:
–nogpgcheck:禁止进行gpg check
-y: 自动回答为“yes”
-q:静默模式 必须分开写
–disablerepo=repoidglob:临时禁用此处指定的repo示例:
[root@localhost~]#yum install -y tree --disablerepo="172.16.0.1_cobbler_ks_mirror_7_"
–enablerepo=repoidglob:临时启用此处指定的repo
–noplugins:禁用所有插件
yum-config-manager 命令的使用:
–add-repo=地址(repodate的父目录路径)
–disable “reponame” 禁用仓库
–enable “reponame” 启用仓库示例:
[root@localhost~]#yum-config-manager --add-repo= http://172.16.0.1/cobbler/ks_mirror/7/ #创建仓库
[root@localhost~]#yum-config-manager --disable "centos 7" #禁用centos 7仓库
[root@localhost~]#yum-config-manager --enable "centos 7" #启用centos 7仓库
包组管理的相关命令:
yum grouplist 列包组
前面加+ 表示没有安装;- yum安装则不安装
yum groupinstall group1 [group2] [...] 安装组包
yum groupupdate group1 [group2] [...] 升级组包
yum grouplist [hidden] [groupwildcard] [...]
yum groupremove group1 [group2] [...] 移除组包
yum groupinfo group1 [...] 显示组信息
注意:遇到安装问题有可能有二个问题,一个是安装路径问题,另一个是缓存问题;包组大小对文件名不敏感;
(6)如何配置yum仓库示例如下
1、必须先把光盘挂载到一个目录下;
2、将/etc/yum.repos.d/下的repo库移动到一个文件夹中,以免产生干扰;
[root@centos7 ~]#cd /etc/yum.repos.d/
[root@centos7 ~]# ls
[root@centos7 ~]# mkdir bak/
[root@centos7 ~]#mv *.repo bak/
3、编辑base.repo文件 这个文件的结尾必须是.repo结尾。
[root@centos7 ~]# vim base.repo
[base] #ID必须要有
name=CentOS 7 #名字可有可无,如果没有的话报错,建议写上;
baseurl=file:///run/media/root/CentOS\ 7\ x86_64/ #路径必须是repodata的父目录
gpgcheck=0 #是否开启公钥检查 1表示检查 0表示不检查
enabled=1 #是否开启这个库 1表示开启 0表示不开启
4、检查是否安装成功
[root@centos7 ~]# yum repolist
示例2:
如何搭建第三方软件的ios镜像,我模拟一个centos6和centos7上搭建;centos7作为server,centos6作为client;
1、安装ftp
[root@centos7 ~]#rpm -ivh /run/media/root/CentOS\ 7\ x86_64/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm
2、启动服务
[root@centos7 ~]#systemctl start vsftpd
3、 关闭selinux
[root@centos7 ~]#getenforce
Enforcing
[root@centos7 ~]#setenforce 0 #临时生效;
4、清空防火墙
[root@centos7 ~]#iptables -F
5、在cmd上输入地址查看是否通。
6、挂载iso镜像;
[root@centos7 ~]#dd if=/dev/sr0 of=centos7.iso bs=5M count=10 #模拟一个光盘
[root@centos7 ~]#mount centos7.iso /var/ftp/pub/7
7、同第五步一样查看是否有文件;
8、centos6上创建库
[root@localhost~]#cd /etc/yum.repos.d/
[root@localhost/etc/yum.repos.d]#mkdir bak/
[root@localhost/etc/yum.repos.d]#mv *.repo bak/
[root@localhost/etc/yum.repos.d]#vim base.repo
[base]
name=centos 7
baseurl=ftp://192.168.159.136/var/ftp/pub/7/
gpgcheck=0
enabled=1
9、测试是否可用:
[root@localhost/etc/yum.repos.d]#yum repolist
如果成功就可以尽情的安装你所需要的文件了。没有网络也能很好的工作了。