yum仓库

发布时间 2023-11-19 21:39:39作者: 一个低调的wy

yum仓库

1. 基本概念

linux安装软件方式

1.rpm安装

​ rpm安装是红帽公司开发的软件管理系统,类似于360的软件管家,rpm安装删除都需要依赖关系,所有我们只用rpm来查询软件是否安装、查询软件配置文件等信息

2.编译安装

​ 将源代码(用c、java、python编程语言写的代码)编译后可以使用

3.yum安装

​ yum安装是升级版的rpm,底层原理还是用的rpm,它是c/s架构,需要客户端和服务端配合使用,

4.二进制安装

​ 二进制安装是编译安装的一种,省去了编译安装的步骤,直接将可执行文件包拷贝过来就可以了

​ 缺点:二进制包很大,例如mysql源码包只有50M,但是它的二进制包有500M

​ centos7中哪个文件夹存放二进制包?

/bin、/sbin存放的是可直接执行的二进制包,它们都是软链接,指向/usr/bin、/usr/sbin

yum原理

image-20231116160216940

​ 服务端要有Packages目录(各种rpm安装包),元数据repodata目录;要想作为服务端,必须要有RPM包和元信息

​ 什么是元信息:依赖关系和包的位置

​ 客户端存放配置文件,配置文件中一定要写yum仓库的地址

​ baseurl=地址,该地址是Packages和repodata这两个目录的上级目录

​ yum依赖于环境,依赖于服务端和客户端,允许跨网络

如何实现安装

image-20231116161223466

​ ① 当yum install时,yum客户端根据配置文件找到yum仓库的位置;

​ ② 接着,从yum仓库里面的repodata中下载元信息;

​ ③ 因为元信息中存放的是依赖关系和安装包的位置,然后,从元信息中找到安装包的位置;

​ ④ 最后,将包下载到本地

2. yum配置文件

yum主配置文件

位置 /etc/yum.conf

[root@localhost /]# rpm -qc yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf



[main]
cachedir=/var/cache/yum/$basearch/$releasever  
// yum下载的rpm包的缓存目录,$basearch 表示硬件架构(x86),$releasever 表示当前系统的版本号(7)


keepcache=0 							     
// 是否保存缓存,0  不保存,1 保存

debuglevel=2                                  
// 调试级别

logfile=/var/log/yum.log                     
// 日志文件位置

exactarch=1                                 
// 是否允许不同版本的rpm安装

obsoletes=1                                
// undate的一个参数,允许旧版本的运行

gpgcheck=1                                
// 是否验证秘钥,1 表示验证秘钥,0 表示不验证

plugins=1                                
// 是否允许插件,1 表示可以

installonly_limit=5                     
// 保存几个内核,5 表示5个

bugtracker_url=http://bugs.centos.org/set_project.php?
// 如果有bug,上传到这个位置中

project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

# in /etc/yum.repos.d
// 存放配置文件的目录


yum的repo配置文件中可用的变量:   这些变量只能在yum仓库的主配置文件使用
$releasever   当前centos版本号,当前os发行版的主版本号,有8、7、6
$arch         CPU架构,如x86_64、aarch64
$basearch     系统基础平台,如x86_64、i386
$contentdir   表示目录,如centos-7
$YUM0-$YUM9   自定义变量	

yum缓存文件

位置 /var/cache/yum/x86_64/7/

[root@localhost /]# cd /var/cache/yum/x86_64/7/
[root@localhost 7]# ls
base    timedhosts      updates
extras  timedhosts.txt


base目录   存放元信息

yum仓库配置文件

位置 /etc/yum.repos.d/*.repo

[root@localhost 7]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo       CentOS-Media.repo
CentOS-CR.repo         CentOS-Sources.repo
CentOS-Debuginfo.repo  CentOS-Vault.repo
CentOS-fasttrack.repo


// 默认存放的是centos官方yum源,需要联网才能yum安装

yum日志文件

位置 /var/log/yum.log

[root@localhost yum.repos.d]# tail -f /var/log/yum.log 
Nov 15 21:40:13 Erased: libvirt-daemon-driver-storage-gluster-3.2.0-14.el7.x86_64
Nov 15 21:40:13 Erased: libvirt-daemon-driver-storage-rbd-3.2.0-14.el7.x86_64
Nov 15 21:40:13 Erased: libvirt-daemon-driver-q

3. yum命令详解

查询

  • yum list
  • yum info
  • yum search
  • yum provides

依赖关系

安装包分为主包和辅助包(依赖包)

yum list

yum list

[root@localhost yum.repos.d]# yum list          # 显示所有可用的包

yum list [软件名]

[root@localhost yum.repos.d]# yum list httpd    # 显示软件名的所有可用的包
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
可安装的软件包
httpd.x86_64                           2.4.6-99.el7.centos.1                            updates
[root@localhost yum.repos.d]# 

yum info

yum info

[root@localhost yum.repos.d]# yum info      // 显示所有可用包的信息

yum info [软件名]

[root@localhost yum.repos.d]# yum info httpd    // 显示该软件名的所有可用包的信息
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
可安装的软件包
名称    :httpd
架构    :x86_64
版本    :2.4.6
发布    :99.el7.centos.1
大小    :2.7 M
源    :updates/7/x86_64
简介    : Apache HTTP Server
网址    :http://httpd.apache.org/
协议    : ASL 2.0
描述    : The Apache HTTP Server is a powerful, efficient, and extensible
         : web server.

[root@localhost yum.repos.d]# 

yum search 关键词

[root@localhost yum.repos.d]#  yum search ftp
ftp.x86_64 : The standard UNIX FTP (File Transfer Protocol) client
lftp-scripts.noarch : Scripts for lftp
syslinux-tftpboot.noarch : SYSLINUX modules in /var/lib/tftpboot, available for network booting
tftp.x86_64 : The client for the Trivial File Transfer Protocol (TFTP)
tftp-server.x86_64 : The server for the Trivial File Transfer Protocol (TFTP)
vsftpd.x86_64 : Very Secure Ftp Daemon
vsftpd-sysvinit.x86_64 : SysV initscript for vsftpd daemon
curl.x86_64 : A utility for getting files from remote servers (FTP, HTTP, and others)
lftp.i686 : A sophisticated file transfer program
lftp.x86_64 : A sophisticated file transfer program
wget.x86_64 : A utility for retrieving files using the HTTP or FTP protocols


在yum仓库中查看包含“ftp”的所有安装包
模糊查找

yum provides

yum provides 关键词

[root@localhost yum.repos.d]# yum provides ftp
ftp-0.17-67.el7.x86_64 : The standard UNIX FTP (File Transfer Protocol) client
源    :base


在yum仓库中查找这个命令来源于哪个包
精确查找

yum provides */ftp

[root@localhost yum.repos.d]# yum provides */ftp	
vsftpd-3.0.2-29.el7_9.x86_64 : Very Secure Ftp Daemon
源    :updates
匹配来源:
文件名    :/var/ftp

ftp-0.17-67.el7.x86_64 : The standard UNIX FTP (File Transfer Protocol) client
源    :@base
匹配来源:
文件名    :/usr/bin/ftp

selinux-policy-targeted-3.13.1-268.el7_9.2.noarch : SELinux targeted base policy
源    :updates
匹配来源:
文件名    :/etc/selinux/targeted/active/modules/100/ftp

yum provides mime.types 精确查找mime.types

[root@localhost yum.repos.d]# yum provides mime.types
# 不加路径,查找不到
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
No matches found
[root@localhost yum.repos.d]# 


# yum provides mime.types  查找不到,所以使用yum provides */mime.types查找才能查到
[root@localhost yum.repos.d]# yum provides */mime.types
# 加通配符,加路径

怎么知道网页(或其他地方)中什么情况点击会下载,什么情况点击会显示

vim /etc/nginxnginx.conf
include	/etc/nginx/mime.types;
# mime.types规定什么类型是显示,什么类型是下载


[root@localhost yum.repos.d]# vim /etc/nginx/mime.types
types {
    text/html                                        html htm shtml;
    text/css                                         css;
    text/xml                                         xml;
    image/gif                                        gif;
    image/jpeg                                       jpeg jpg;
    application/javascript                           js;
    application/atom+xml                             atom;
    application/rss+xml                              rss;

    text/mathml                                      mml;
    text/plain                                       txt;
    text/vnd.sun.j2me.app-descriptor                 jad;
    text/vnd.wap.wml                                 wml;
    text/x-component                                 htc;

    image/png                                        png;
    image/svg+xml                                    svg svgz;
    image/tiff                                       tif tiff;
    image/vnd.wap.wbmp                               wbmp;
    image/webp                                       webp;
    image/x-icon                                     ico;
    image/x-jng                                      jng;
    image/x-ms-bmp                                   bmp;

    font/woff                                        woff;
    font/woff2                                       woff2;

    application/java-archive                         jar war ear;
    application/json                                 json;
    application/mac-binhex40                         hqx;
    application/msword                               doc;
    application/pdf                                  pdf;
    application/postscript                           ps eps ai;
    application/rtf                                  rtf;
    application/vnd.apple.mpegurl                    m3u8;
    application/vnd.google-earth.kml+xml             kml;
    application/vnd.google-earth.kmz                 kmz;
    application/vnd.ms-excel                         xls;
    application/vnd.ms-fontobject                    eot;
    application/vnd.ms-powerpoint                    ppt;
    application/vnd.oasis.opendocument.graphics      odg;
    application/vnd.oasis.opendocument.presentation  odp;
    application/vnd.oasis.opendocument.spreadsheet   ods;
    application/vnd.oasis.opendocument.text          odt;
    application/vnd.openxmlformats-officedocument.presentationml.presentation
                                                     pptx;
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                                                     xlsx;
    application/vnd.openxmlformats-officedocument.wordprocessingml.document
                                                     docx;
    application/vnd.wap.wmlc                         wmlc;
    application/x-7z-compressed                      7z;
    application/x-cocoa                              cco;
    application/x-java-archive-diff                  jardiff;
    application/x-java-jnlp-file                     jnlp;
    application/x-makeself                           run;
    application/x-perl                               pl pm;
    application/x-pilot                              prc pdb;
    application/x-rar-compressed                     rar;
    application/x-redhat-package-manager             rpm;
    application/x-sea                                sea;
    application/x-shockwave-flash                    swf;
    application/x-stuffit                            sit;
    application/x-tcl                                tcl tk;
    application/x-x509-ca-cert                       der pem crt;
    application/x-xpinstall                          xpi;
    application/xhtml+xml                            xhtml;
    application/xspf+xml                             xspf;
    application/zip                                  zip;

    application/octet-stream                         bin exe dll;
    application/octet-stream                         deb;
    application/octet-stream                         dmg;
    application/octet-stream                         iso img;
    application/octet-stream                         msi msp msm;

    audio/midi                                       mid midi kar;
    audio/mpeg                                       mp3;
    audio/ogg                                        ogg;
    audio/x-m4a                                      m4a;
    audio/x-realaudio                                ra;

    video/3gpp                                       3gpp 3gp;
    video/mp2t                                       ts;
    video/mp4                                        mp4;
    video/mpeg                                       mpeg mpg;
    video/quicktime                                  mov;
    video/webm                                       webm;
    video/x-flv                                      flv;
    video/x-m4v                                      m4v;
    video/x-mng                                      mng;
    video/x-ms-asf                                   asx asf;
    video/x-ms-wmv                                   wmv;
    video/x-msvideo                                  avi;
}

 text/html                                        html htm shtml;
 text/css                                         css;
 text/xml                                         xml;
 image/gif                                        gif;
 image/jpeg
    
 前面是大类,后面是小类
 text		html
 image		gif

yum groupinfo

yum groupinfo 包组名

[root@localhost ~]# yum groupinfo "GNOME Desktop"
// 这里加引号,是因为如果不加引号,系统会识别成两个软件包;如果加引号,系统会识别成一个包

yum grouplist

yum grouplist

[root@localhost yum.repos.d]# yum grouplist
已加载插件:fastestmirror, langpacks
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * epel: ftp.iij.ad.jp
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   Cinnamon 桌面环境
   MATE 桌面环境
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工作站
可用组:
   Cinnamon
   Fedora Packager
   Haskell
   LXQt 桌面环境
   MATE
   Milkymist
   TurboGears 应用程序构架
   Xfce
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   教育软件
   智能卡支持
   电子实验室
   科学记数法支持
   系统管理
   系统管理工具
   通用桌面
完成
[root@localhost yum.repos.d]# 

安装更新

  • yum install
  • yum group install
  • yum update
  • yum groupupdate

yum install

yum install -y 软件名

[root@localhost yum.repos.d]# yum install -y httpd
# -y  在安装过程中,会需要确认,-y = yes 确认所有

yum groupinstall

字符界面想要安装图形化界面

#########安装图形化##########################
#如无法使用请先升级
yum -y upgrade
#再安装
yum groups install -y "GNOME Desktop"

yum安装时,空格与引号的区别

yum update

[root@localhost yum.repos.d]# yum update

[root@localhost yum.repos.d]# yum upgrade

yum upgrade升级会移除过时的包,
yum update(更新将保留过时的包)可能会也可能不会这样去做
但是删除过时的包可能会有风险,因为可能会删除当前使用的包
因此,对于升级软件来看,使用yum update是更为安全的选择

yum groupupdate

[root@localhost yum.repos.d]# yum groupupdate 

卸载

  • yum remove
  • yum groupremove
  • yum history
  • yum history undo
  • yum history redo

yum remove

yum remove -y 软件名

[root@localhost /]# yum remove -y httpd

yum groupremove

同yum remove,不做赘述

yum history

yum history

[root@localhost /]# yum history
已加载插件:fastestmirror, langpacks
ID     | 登录用户                 | 日期和时间       | 操作           | 变更数 
-------------------------------------------------------------------------------
    10 | root <root>              | 2023-11-16 19:19 | Erase          |    1   
     9 | root <root>              | 2023-11-16 19:01 | Install        |    3   
     8 | root <root>              | 2023-11-16 18:28 | Install        |    3   
     7 | root <root>              | 2023-11-16 18:27 | Install        |    1   
     6 | root <root>              | 2023-11-16 16:50 | Install        |    1   
     5 | root <root>              | 2023-11-15 22:27 | Install        |    1   
     4 | root <root>              | 2023-11-15 22:24 | Erase          |    1 EE
     3 | root <root>              | 2023-11-15 21:41 | Install        |    1   
     2 | root <root>              | 2023-11-15 21:40 | Erase          |   14 EE
     1 | 系统 <空>                | 2023-10-24 00:09 | Install        | 1372   
history list
[root@localhost /]# 

yum history undo

[root@localhost /]# yum history -y undo 9
# 据上yum history可知,id=9是安装了软件,利用undo id号卸载

已加载插件:fastestmirror, langpacks
Undoing transaction 9, from Thu Nov 16 19:01:35 2023
    安装 httpd-2.4.6-99.el7.centos.1.x86_64       @updates
    依赖安装 httpd-tools-2.4.6-99.el7.centos.1.x86_64 @updates
    依赖安装 mailcap-2.1.41-2.el7.noarch              @base
没有匹配的可移除软件包:httpd-0:2.4.6-99.el7.centos.1
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd-tools.x86_64.0.2.4.6-99.el7.centos.1 将被 删除
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

===============================================================================================
 Package              架构            版本                             源                 大小
===============================================================================================
正在删除:
 httpd-tools          x86_64          2.4.6-99.el7.centos.1            @updates          168 k
 mailcap              noarch          2.1.41-2.el7                     @base              62 k
未安装:
 httpd                x86_64          2.4.6-99.el7.centos.1            -                 0.0  

事务概要
===============================================================================================
移除    2 软件包
未安装  1 软件包

安装大小:230 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : httpd-tools-2.4.6-99.el7.centos.1.x86_64                                   1/2 
  正在删除    : mailcap-2.1.41-2.el7.noarch                                                2/2 
  验证中      : mailcap-2.1.41-2.el7.noarch                                                1/2 
  验证中      : httpd-tools-2.4.6-99.el7.centos.1.x86_64                                   2/2 

删除:
  httpd-tools.x86_64 0:2.4.6-99.el7.centos.1           mailcap.noarch 0:2.1.41-2.el7          

完毕!
[root@localhost /]# 


# yum history 与 yum remove 相比,前者卸载更干净,它会把依赖环境也卸载掉

yum history redo

[root@localhost /]# yum history
已加载插件:fastestmirror, langpacks
ID     | 登录用户                 | 日期和时间       | 操作           | 变更数 
-------------------------------------------------------------------------------
    11 | root <root>              | 2023-11-16 19:23 | Erase          |    2   
    10 | root <root>              | 2023-11-16 19:19 | Erase          |    1   
     9 | root <root>              | 2023-11-16 19:01 | Install        |    3   
     8 | root <root>              | 2023-11-16 18:28 | Install        |    3   
     7 | root <root>              | 2023-11-16 18:27 | Install        |    1   
     6 | root <root>              | 2023-11-16 16:50 | Install        |    1   
     5 | root <root>              | 2023-11-15 22:27 | Install        |    1   
     4 | root <root>              | 2023-11-15 22:24 | Erase          |    1 EE
     3 | root <root>              | 2023-11-15 21:41 | Install        |    1   
     2 | root <root>              | 2023-11-15 21:40 | Erase          |   14 EE
     1 | 系统 <空>                | 2023-10-24 00:09 | Install        | 1372   
history list
[root@localhost /]# 


现在多了一条id=11的记录,是卸载记录,Erase

如果后悔卸载,可以有两种方式
yum history redo 9 (把id=9重新安装一遍)
yum history undo 11(11是卸载,我把11的卸载卸载掉,不就变向等于重新安装)


[root@localhost /]# yum history redo 9 -y
# 把id=9的操作在做一遍

4. 搭建yum仓库

  • 利用光盘镜像搭建本地yum仓库
  • 使用http搭建yum仓库
  • 使用ftp搭建yum仓库
  • 自建yum仓库

利用光盘镜像搭建本地yum仓库

1. 挂载光盘镜像
[root@localhost /]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sr0              11:0    1  4.2G  0 rom  /mnt

[root@localhost /]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载

[root@localhost /]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 40137576 4155428 35982148   11% /
devtmpfs                  917604       0   917604    0% /dev
tmpfs                     933524       0   933524    0% /dev/shm
tmpfs                     933524    9232   924292    1% /run
tmpfs                     933524       0   933524    0% /sys/fs/cgroup
/dev/sda1                1038336  182372   855964   18% /boot
/dev/mapper/centos-home 19593216   33052 19560164    1% /home
tmpfs                     186708      12   186696    1% /run/user/42
tmpfs                     186708       0   186708    0% /run/user/0
/dev/sr0                 4414592 4414592        0  100% /mnt
[root@localhost /]# 



2. 写配置文件
[root@localhost /]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo         CentOS-Media.repo      epel.repo
CentOS-Debuginfo.repo  CentOS-Sources.repo    epel-testing.repo
[root@localhost yum.repos.d]# mkdir f1 ; mv *.repo f1
[root@localhost yum.repos.d]# ls
f1
[root@localhost yum.repos.d]# vim local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0



3. 清理yum缓存,建立元数据
[root@localhost yum.repos.d]# yum clean all && yum makecache
已加载插件:fastestmirror, langpacks
正在清理软件源: local
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
已加载插件:fastestmirror, langpacks
local                                                                   | 3.6 kB  00:00:00     
(1/4): local/group_gz                                                   | 156 kB  00:00:00     
(2/4): local/filelists_db                                               | 3.1 MB  00:00:00     
(3/4): local/primary_db                                                 | 3.1 MB  00:00:00     
(4/4): local/other_db                                                   | 1.2 MB  00:00:00     
Determining fastest mirrors
元数据缓存已建立
[root@localhost yum.repos.d]# 



4. 安装软件看看
[root@localhost yum.repos.d]# yum install -y tree
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

===============================================================================================
 Package            架构                 版本                        源                   大小
===============================================================================================
正在安装:
 tree               x86_64               1.6.0-10.el7                local                46 k

事务概要
===============================================================================================
安装  1 软件包

总下载量:46 k
安装大小:87 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : tree-1.6.0-10.el7.x86_64                                                   1/1 
  验证中      : tree-1.6.0-10.el7.x86_64                                                   1/1 

已安装:
  tree.x86_64 0:1.6.0-10.el7  
  
完毕!
[root@localhost yum.repos.d]# 

使用http搭建yum仓库(局域网)

服务端
1. 安装httpd
[root@localhost ~]# yum install -y httpd
[root@localhost ~]# ss -antp | grep httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# ss -antp | grep httpd
LISTEN     0      128         :::80                      :::*                   users:(("httpd",pid=9016,fd=4),("httpd",pid=9015,fd=4),("httpd",pid=9014,fd=4),("httpd",pid=9013,fd=4),("http",pid=9012,fd=4),("httpd",pid=9011,fd=4))

[root@localhost ~]# rpm -qc httpd
/var/www/html


2. 将光盘镜像中的yum仓库挂载到httpd的html目录下
[root@localhost html]# mount /dev/sr0 /var/www/html/centos-7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost html]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 40137576 3916696 36220880   10% /
devtmpfs                  917604       0   917604    0% /dev
tmpfs                     933524       0   933524    0% /dev/shm
tmpfs                     933524    9352   924172    2% /run
tmpfs                     933524       0   933524    0% /sys/fs/cgroup
/dev/mapper/centos-home 19593216   33052 19560164    1% /home
/dev/sda1                1038336  182372   855964   18% /boot
tmpfs                     186708       4   186704    1% /run/user/42
tmpfs                     186708      24   186684    1% /run/user/0
/dev/sr0                 4414592 4414592        0  100% /var/www/html/centos-7
[root@localhost html]# 



客户端
1. 写配置文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost 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@localhost yum.repos.d]# mkdir f1 ; mv *.repo f1
[root@localhost yum.repos.d]# ls
f1
[root@localhost yum.repos.d]# vim local-http.repo
[http]
name=http
baseurl=http://192.168.32.11/centos-7
gpgcheck=0


2. 清缓存,建立元数据
[root@localhost yum.repos.d]# yum clean all && yum makecache
已加载插件:fastestmirror, langpacks
正在清理软件源: http
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
已加载插件:fastestmirror, langpacks
http                                                             | 3.6 kB  00:00:00     
(1/4): http/group_gz                                             | 156 kB  00:00:00     
(2/4): http/filelists_db                                         | 3.1 MB  00:00:00     
(3/4): http/primary_db                                           | 3.1 MB  00:00:00     
(4/4): http/other_db                                             | 1.2 MB  00:00:00     
Determining fastest mirrors
元数据缓存已建立
[root@localhost yum.repos.d]# 


3. 安装软件看看
[root@localhost yum.repos.d]# yum install -y tree
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

========================================================================================
 Package          架构               版本                        源                大小
========================================================================================
正在安装:
 tree             x86_64             1.6.0-10.el7                http              46 k

事务概要
========================================================================================
安装  1 软件包

总下载量:46 k
安装大小:87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm                                     |  46 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : tree-1.6.0-10.el7.x86_64                                            1/1 
  验证中      : tree-1.6.0-10.el7.x86_64                                            1/1 

已安装:
  tree.x86_64 0:1.6.0-10.el7       
  
完毕!
[root@localhost yum.repos.d]# 

使用ftp搭建yum仓库(局域网)

服务端
1. 安装服务端ftp(vsftpd)
[root@localhost ~]# yum install -y vsftpd     # 安装服务端ftp(vsftpd)
[root@localhost ~]# systemctl start vsftpd    # 启动vsftpd
[root@localhost ~]# ss -antp | grep ftp       # 查看vsftpd是否启动成功
LISTEN     0      32          :::21                      :::*                   users:(("vsftpd",pid=8987,fd=4))
[root@localhost ~]# 


2. 将光盘镜像挂载到vsftpd的目录下
[root@localhost ~]# rpm -ql vsftpd
/var/ftp
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir centos-7
[root@localhost ftp]# ls
centos-7  pub
[root@localhost ftp]# cd /
[root@localhost /]# mount /dev/sr0 /var/ftp/centos-7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost /]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 40137576 3894752 36242824   10% /
devtmpfs                  917604       0   917604    0% /dev
tmpfs                     933524       0   933524    0% /dev/shm
tmpfs                     933524    9188   924336    1% /run
tmpfs                     933524       0   933524    0% /sys/fs/cgroup
/dev/sda1                1038336  182360   855976   18% /boot
/dev/mapper/centos-home 19593216   33052 19560164    1% /home
tmpfs                     186708      24   186684    1% /run/user/0
/dev/sr0                 4414592 4414592        0  100% /var/ftp/centos-7
[root@localhost /]# 



客户端
1. 安装客户端ftp(ftp)
[root@localhost ~]# yum install -y ftp


2. 测试下是否能连接到服务端(linux、windows)
[root@localhost ~]# ftp 192.168.32.12
Name (192.168.32.12:root): anonymous
Password:
ftp> cd centos-7
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,32,12,239,106).
150 Here comes the directory listing.
-rw-rw-r--    3 0        0              14 Sep 05  2017 CentOS_BuildTag
drwxr-xr-x    3 0        0            2048 Sep 05  2017 EFI
-rw-rw-r--    3 0        0             227 Aug 30  2017 EULA
-rw-rw-r--    3 0        0           18009 Dec 09  2015 GPL
drwxr-xr-x    2 0        0            2048 Sep 05  2017 LiveOS
drwxrwxr-x    2 0        0          641024 Sep 04  2017 Packages
-rw-rw-r--    3 0        0            1690 Dec 09  2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--    3 0        0            1690 Dec 09  2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--    1 0        0            2883 Sep 06  2017 TRANS.TBL
drwxr-xr-x    3 0        0            2048 Sep 05  2017 images
drwxr-xr-x    2 0        0            2048 Sep 05  2017 isolinux
drwxr-xr-x    2 0        0            4096 Sep 05  2017 repodata
226 Directory send OK.

ftp:192.168.32.11
ftp:192.168.32.11/centos-7


3. 写配置文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost 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@localhost yum.repos.d]# mkdir f1 && mv *.repo f1
[root@localhost yum.repos.d]# ls
f1
[root@localhost yum.repos.d]# vim local-ftp.repo


4. 清缓存,建立元数据
[root@localhost yum.repos.d]# yum clean all ; yum makecache
已加载插件:fastestmirror, langpacks
正在清理软件源: ftp
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
已加载插件:fastestmirror, langpacks
ftp                                                              | 3.6 kB  00:00:00     
(1/4): ftp/group_gz                                              | 156 kB  00:00:00     
(2/4): ftp/filelists_db                                          | 3.1 MB  00:00:00     
(3/4): ftp/primary_db                                            | 3.1 MB  00:00:00     
(4/4): ftp/other_db                                              | 1.2 MB  00:00:00     
Determining fastest mirrors
元数据缓存已建立
[root@localhost yum.repos.d]# 



5. 安装软件看看
[root@localhost yum.repos.d]# yum install -y tree
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

========================================================================================
 Package           架构                版本                      源                大小
========================================================================================
正在安装:
 tree              x86_64              1.6.0-10.el7              ftp               46 k

事务概要
========================================================================================
安装  1 软件包

总下载量:46 k
安装大小:87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm                                     |  46 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : tree-1.6.0-10.el7.x86_64                                            1/1 
  验证中      : tree-1.6.0-10.el7.x86_64                                            1/1 

已安装:
  tree.x86_64 0:1.6.0-10.el7                                                   
完毕!
[root@localhost yum.repos.d]# 

自建yum仓库


搭建国内yum仓库

网络yum仓库源种类

base源 基础源,安装包是有限的

extra源 额外源

epel源 第三方源,niginx

# 安装第三方源
[root@localhost yum.repos.d]# yum install -y epel-release.noarch   

update源 更新源

使用国内源搭建国内yum仓库

1. 写新的配置文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost 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@localhost yum.repos.d]# mkdir f1 ; mv *.repo f1
[root@localhost yum.repos.d]# ls
f1
[root@localhost yum.repos.d]# vim new-base.repo

# base源
[new-base]
name=new-base
# 清华云、华为云、腾讯云、阿里云
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
        https://mirrors.huaweicloud.com/centos/7/os/x86_64/
        http://mirrors.cloud.tencent.com/centos/7/os/x86_64/
        https://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0

# 第三方源
[new-epel]
name=new-epel
# 清华云、华为云、腾讯云、阿里云
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
        https://mirrors.huaweicloud.com/centos/7/os/x86_64/
        http://mirrors.cloud.tencent.com/centos/7/os/x86_64/
        https://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0

# 更新源
[new-update]
name=new-update
# 清华云、华为云、腾讯云、阿里云
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
        https://mirrors.huaweicloud.com/centos/7/os/x86_64/
        http://mirrors.cloud.tencent.com/centos/7/os/x86_64/
        https://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0


2. 清缓存,建立元数据
[root@localhost yum.repos.d]# yum clean all && yum makecache
已加载插件:fastestmirror, langpacks
正在清理软件源: epel new-base update
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
已加载插件:fastestmirror, langpacks
epel                                                             | 3.6 kB  00:00:00     
new-base                                                         | 3.6 kB  00:00:00     
update                                                           | 3.6 kB  00:00:00     
(1/12): epel/group_gz                                            | 153 kB  00:00:00     
(2/12): epel/primary_db                                          | 6.1 MB  00:00:00     
(3/12): epel/other_db                                            | 2.6 MB  00:00:00     
(4/12): new-base/group_gz                                        | 153 kB  00:00:00     
(5/12): epel/filelists_db                                        | 7.2 MB  00:00:01     
(6/12): new-base/filelists_db                                    | 7.2 MB  00:00:01     
(7/12): new-base/primary_db                                      | 6.1 MB  00:00:01     
(8/12): update/group_gz                                          | 153 kB  00:00:00     
(9/12): new-base/other_db                                        | 2.6 MB  00:00:00     
(10/12): update/filelists_db                                     | 7.2 MB  00:00:01     
(11/12): update/primary_db                                       | 6.1 MB  00:00:01     
(12/12): update/other_db                                         | 2.6 MB  00:00:00     
Determining fastest mirrors
 * epel: mirrors.aliyun.com
 * new-base: mirrors.aliyun.com
 * update: mirrors.aliyun.com
元数据缓存已建立


3. 安装软件
[root@localhost yum.repos.d]# yum install -y tree
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * new-base: mirrors.aliyun.com
 * new-epel: mirrors.aliyun.com
 * new-update: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

========================================================================================
 Package         架构              版本                       源                   大小
========================================================================================
正在安装:
 tree            x86_64            1.6.0-10.el7               new-base             46 k

事务概要
========================================================================================
安装  1 软件包

总下载量:46 k
安装大小:87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm                                     |  46 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : tree-1.6.0-10.el7.x86_64                                            1/1 
  验证中      : tree-1.6.0-10.el7.x86_64                                            1/1 

已安装:
  tree.x86_64 0:1.6.0-10.el7                                                            
完毕!
[root@localhost yum.repos.d]# 

2. yum实验

升级内核

编译安装

yum安装

内核一般不需要升级,但是当出现重大bug时才会升级

利用elrepo源在centos 7安装新版内核

https://www.elrepo.org/

1. 安装elrepo源,生成仓库文件elrepo.repo
yum install -y https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm



2. 打开内核库 (内核库默认关闭)
[root@localhost yum.repos.d]# yum repolist all
elrepo-kernel               ELRepo.org Community Enterprise Linux Kernel Re 禁用
[root@localhost yum.repos.d]# vim elrepo.repo 
[elrepo-kernel]
name=ELRepo.org Community Enterprise Linux Kernel Repository - el7
baseurl=http://elrepo.org/linux/kernel/el7/$basearch/
        http://mirrors.coreix.net/elrepo/kernel/el7/$basearch/
        http://mirror.rackspace.com/elrepo/kernel/el7/$basearch/
        http://repos.lax-noc.com/elrepo/kernel/el7/$basearch/
mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo-kernel.el7
enabled=0
# enabled默认为0,关闭;改为1,打开
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0
[root@localhost yum.repos.d]# yum repolist all
elrepo-kernel               ELRepo.org Community Enterprise Linux Kernel Re 启用:     4



3. 升级内核
[root@localhost yum.repos.d]# yum list *kernel*
[root@localhost yum.repos.d]# yum install -y kernel-lt.x86_64



总结
因为,升级内核前需要打开内核库,但是打开内核库这个操作需要在elrepo.repo这个配置文件中修改
所以,我们需要下载elrepo源

如何离线使用yum(只下载不安装)

思路
先找一台可以上网的主机,只下载相关的软件安装包到指定目录,不安装该软件
再通过U盘或者其他方式将下载好的软件安装吧拷贝到不能上网的主机上,即可安装该软件
一定要在最小化安装环境中安装,因为在图形化界面中,已经安装了相关依赖环境,他就不会安装
yum install nginx --downloadonly --downloaddir=/data/
--downloadonly  #只下载相关包默认至某一目录
--downloaddir=绝对目录路径  #下载到某一目录  



1. 只下载不安装相关软件安装包,到指定目录下
[root@localhost data]# yum install -y epel-release.noarch   
# 因为nginx在epel第三方源中
[root@localhost data]# yum install -y nginx --downloadonly --downloaddir=/opt/data/Packages/



2. 建立元数据
[root@localhost data]# yum -y install createrepo
[root@localhost repodata]# createrepo -v /opt/data
# 它会自动建立repodata目录



3. 建立自己的yum仓库,/etc/yum.repos.d/目录下写新的配置文件
[root@localhost repodata]# cd /etc/yum.repos.d/
[root@localhost repodata]# mkdir f1 ; mv *.repo f1
[root@localhost repodata]# vi local.repo
[local]
name=local
# 这个路径目录下必须有Packages、repodata两个目录
baseurl=file:///opt/data
gpgcheck=0
[root@localhost repodata]# yum clean all && yum makecache
[root@localhost repodata]# yum install -y nginx


总结
在建立自己的yum仓库前,必须先下载需要的软件安装包和建立相应的元数据后,才能写新的配置文件
如果建立元数据在写新的配置文件和其yum clean all && yum makecache后,那么这个元数据里面就没有你下载的软件安装包的位置,也就无法安装你下载的软件了

如何把epel源放到本地(自建yum仓库)

没有外网  又想使用这个epel源      

yum install epel-release
#安装epel源    生成epel仓库文件
reposync -r epel -p /root/
#下载同步epel源  根据epel仓库文件去找目录

yum -y install createrepo
#安装建立元数据命令
createrepo -v /root/epel
#建立元数据    软件目录  依赖关系  



1. 下载并同步软件安装包到指定目录
[root@localhost opt]# yum install epel-release       # 先安装epel源
[root@localhost opt]# reposync -r epel -p /opt/      # 再把epel源同步到指定目录下
# epel这个目录会被同步到/opt目录下面




2. 安装元数据命令,并建立元数据
[root@localhost opt]# yum -y install createrepo      # 安装元数据命令
[root@localhost opt]# createrepo -v /root/epel       # 建立相应的元数据



3. 写自己的配置文件,指明yum仓库的位置在哪里



4. 清缓存,建立元数据

误删rpm软件


自动挂载光盘

磁盘满了,怎么处理

先解决问题,再解决扩容

用du命令找到大的文件夹,然后锁定大文件,先把大文件删除恢复生产;再申请买磁盘扩容,或者像其他办法解决磁盘满的问题

在浏览器中输入www.baidu.com时,发生了什么?

10个运维命令

cut

uniq

sort

tr

ss -antp

route -n

find

grep

awk

sed

free

top

ps aux

iostat

df -h

du -d 1