软件的类型

源码包
需要编译
二进制包
已编译
常见二进制包
RedHat/Centos
RPM
工具
rpm
yum(在线安装,自动解决依赖关系)
Ubuntu/Debain
DPKG
工具
dpkg
apt(在线安装,自动解决依赖关系)
注意!不管是源码包,还是二进制包,安装时都可能会有依赖关系

yum官方源

阿里云
https://developer.aliyun.com/mirror/
中科大
http://centos.ustc.edu.cn/
网易
http://mirrors.163.com/

  1. [root@localhost ~]# yum repolist # 查看默认的源
  2. 仓库标识 仓库名称
  3. AppStream CentOS-8 - AppStream
  4. BaseOS CentOS-8 - Base
  5. extras CentOS-8 - Extras

加入阿里云软件仓库,下面的是centos8的添加命令

  1. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. rm -rf /etc/yum.repos.d/*.repo
  3. curl -o /etc/yum.repos.d/CentOS-Base.repo
  4. https://mirrors.aliyun.com/repo/Centos-8.repo
  5. yum makecache

EPEL(Extra Packages for Enterprise Linux)为“红帽系”的操作系统提供额外的软件包
yum -y install epel-release

yum常用命令

查看可用仓库

  1. [root@localhost ~]# yum clean all # 清空缓存及其他文件
  2. [root@localhost ~]# yum makecache # 重建缓存
  3. [root@localhost ~]# yum repolist # 查询可用的仓库

软件包安装

  1. [root@localhost ~]# yum -y install httpd vsftpd *vnc
  2. [root@localhost ~]# yum -y reinstall httpd
  3. [root@localhost ~]# yum update httpd
  4. [root@localhost ~]# yum update
  5. [root@localhost ~]# yum -y install /root/httpd-2.4.6-
  6. 93.el7.centos.x86_64.rpm # 从本地安装
  7. [root@localhost ~]# yum -y install
  8. http://centos.ustc.edu.cn/centos/7/os/x86_64/Packages/httpd-2.4.6-
  9. 93.el7.centos.x86_64.rpm # 从URL安装
  10. [root@localhost ~]# yum grouplist # 安装环境
  11. Available Environment Groups: 可用环境组
  12. Minimal Install 最小安装
  13. Compute Node 计算节点
  14. Infrastructure Server 基础结构服务器
  15. File and Print Server 文件和打印服务器
  16. Basic Web Server 基本Web服务器
  17. Virtualization Host 虚拟化主机
  18. Server with GUI GUI服务器
  19. GNOME Desktop 桌面桌面
  20. KDE Plasma Workspaces KDE等离子工作区
  21. Development and Creative Workstation 开发创意工作站
  22. Available Groups: 可用组 (表示还未安装的)
  23. Compatibility Libraries 兼容性库
  24. Console Internet Tools 控制台Internet工具
  25. Development Tools 开发工具
  26. Graphical Administration Tools 图形管理工具
  27. Legacy UNIX Compatibility 传统的Unix兼容性
  28. Scientific Support 科学支持
  29. Security Tools 安全工具
  30. Smart Card Support 智能卡支持
  31. System Administration Tools 系统管理工具
  32. System Management 系统管理
  33. [root@localhost ~]# yum groupinstall "GNOME 桌面"
  34. [root@localhost ~]# yum -y remove httpd
  35. [root@localhost ~]# yum -y groupremove "GNOME 桌面"

查询软件包是否存在

  1. [root@localhost ~]# yum list httpd
  2. [root@localhost ~]# yum list |grep httpd
  3. [root@localhost ~]# yum list installed
  4. [root@localhost ~]# yum info httpd
  5. [root@localhost ~]# yum groupinfo "GNOME 桌面"

卸载

  1. [root@localhost ~]# yum -y remove httpd
  2. [root@localhost ~]# yum -y groupremove "GNOME 桌面"

history

  1. [root@localhost ~]# yum history
  2. [root@localhost ~]# yum history info 4
  3. [root@localhost ~]# yum history undo 4

扩展查询

从包名和包描述中根据关键字查找

  1. [root@localhost ~]# yum list |grep locate
  2. [root@localhost ~]# yum search locate

根据配置文件查找软件包

  1. [root@localhost ~]# yum provides /etc/ssh/sshd_config
  2. [root@localhost ~]# yum provides */sshd_config

查找命令 ifconfig 属于哪个包

  1. [root@localhost ~]# yum provides ifconfig

yum自建源

Base源[centos7光盘文件]
第三方软件源[yum缓存]

  1. 提供基础软件包Base[光盘]
    2. 提供update软件包[yum缓存]
    3. 提供其他软件包如 nginx , zabbix , docker [yum缓存]

配置防火墙

  1. [root@localhost ~]# firewall-cmd --permanent --add-service=ftp
  2. [root@localhost ~]# firewall-cmd --reload

关闭selinux

  1. [root@localhost ~]# setenforce 0
  2. [root@localhost ~]# sed -i "s/=enforcing/=disabled/g" /etc/sysconfig/selinux

FTP

  1. [root@localhost ~]# yum -y install vsftpd
  2. [root@localhost ~]# systemctl start vsftpd
  3. [root@localhost ~]# systemctl enable vsftpd

替换为阿里源

  1. [root@server yum.repos.d]# pwd
  2. /etc/yum.repos.d
  3. [root@server yum.repos.d]# rm -rf *
  4. wget -O /etc/yum.repos.d/CentOS-Base.repo
  5. http://mirrors.aliyun.com/repo/Centos-7.repo
  6. [root@server yum.repos.d]# yum clean all
  7. [root@server yum.repos.d]# yum makecache

实验一:提供update

  1. [root@localhost ~]# yum clean all
  2. # 清理缓存和下载的包
  3. [root@localhost ~]# yum update --downloadonly # 仅下载更新包
  4. [root@localhost ~]# ls /var/cache/yum/x86_64/7/base/packages/ # 查看下载的包
  5. =====上述方法仅下载,本身不安装,最佳做法如下========
  6. [root@localhost ~]# vim /etc/yum.conf
  7. keepcache=1 # 开启yum缓存
  8. [root@localhost ~]# yum update -y
  9. [root@localhost ~]# mkdir /var/ftp/update
  10. [root@localhost ~]# find /var/cache/yum/x86_64/7/ -iname "*.rpm" -exec cp -
  11. rf {} /var/ftp/update/ \;
  12. [root@localhost ~]# yum -y install createrepo
  13. [root@localhost ~]# createrepo /var/ftp/update/ # 创建源的数据库

客户端测试(另外一台centos7上)

  1. [root@localhost ~]# rm -rf /etc/yum.repos.d/*.repo
  2. [root@localhost ~]# vi /etc/yum.repos.d/update.repo
  3. [update]
  4. name=centos update
  5. baseurl=ftp://192.168.72.134/update
  6. gpgcheck=0 # 关闭软件包校验
  7. enabled=1 # 启用这个仓库

实验二:提供特定软件源

提供update源仅限环境一致的情况下,不然不同环境更新包不一样,无法完成
在yum服务器上

  1. [root@localhost ~]# yum clean all
  2. [root@localhost ~]# mkdir /var/ftp/nginx
  3. [root@localhost ~]# vi /etc/yum.repos.d/nginx.repo
  4. [nginx]
  5. name=nginx repo
  6. baseurl=http://nginx.org/packages/centos/7/$basearch/
  7. gpgcheck=0
  8. enable=1
  9. [root@localhost ~]# yum -y install nginx --downloadonly
  10. [root@localhost ftp]# find /var/cache/yum/x86_64/7/ -iname "*.rpm" -exec cp
  11. -rf {} /var/ftp/nginx \;
  12. [root@localhost ~]# createrepo /var/ftp/nginx/

客户端测试

  1. [root@localhost ~]# vi /etc/yum.repos.d/nginx.repo
  2. [nginx]
  3. name=nginx repo
  4. baseurl=ftp://192.168.72.134/nginx
  5. gpgcheck=0
  6. enbale=1
  7. [root@localhost ~]# yum -y install nginx

实验三:搭建本地yum仓库

  1. 挂载本地光盘:
  2. [root@localhost ~]# mount /dev/cdrom /media/cdrom
  3. 备份yum配置:
  4. [root@localhost ~]# mv /etc/yum.repos.d/* /mnt/
  5. 配置本地yum
  6. [root@localhost ~]# cat > /etc/yum.repos.d/local.repo <<EOF
  7. [base]
  8. name=Centos 7 Release 7.1.1503
  9. baseurl=file:///media/cdrom
  10. enabled=1
  11. gpcheck=0
  12. EOF