• 第6章 Linux的软件包管理 (二)


    文档配套视频讲解链接地址

    1. 腾讯课堂视频链接地址 : 23_软件包管理_apt管理工具1
    2. 腾讯课堂视频链接地址 : 24_软件包管理_apt管理工具2

    6.4 apt命令行管理工具

    APT系列工具可能是Deb软件包管理工具中功能最强大的。Ubuntu将所有的开发软件包存放在Internet上的许许多多镜像站点上。用户可以选择其中最适合自己的站点作为软件源。然后,在APT工具的帮助下,就可以完成所有的软件包的管理工作,包括维护系统中的软件包数据库、自动检查软件包依赖关系、安装和升级软件包、从软件源镜像站点主动获取相关软件包等。

    常用的APT实用程序有:apt。

    1. apt install 安装软件
    sudo apt install <软件名称>
    sudo apt -f install   #修复系统的软件安装错误
    
    #例如 
    sudo apt install sl   # 小火车 安装软件, 可以使用LS 去执行这个可执行程序 
    sudo apt install  snake4 # 贪吃蛇游戏 , 可以使用snake4 启动程序 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    2. apt remove 卸载软件
    sudo apt remove  <软件名称>
    sudo apt autoremove  #  自动卸载系统不再需要的软件包 
    
    # 例如 
    sudo apt remove sl   # 卸载火车软件 
    sudo apt remove snake4   # 卸载贪吃蛇游戏
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 例如:
    linux@ubuntu:~$ sudo apt install sl   # 安装软件 
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    下列【新】软件包将被安装:
      sl
    升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
    需要下载 26.4 kB 的归档。
    解压缩后会消耗 98.3 kB 的额外空间。
    获取:1 http://mirrors.yun-idc.com/ubuntu bionic/universe amd64 sl amd64 3.03-17build2 [26.4 kB]
    已下载 26.4 kB,耗时 0(330 kB/s)
    正在选中未选择的软件包 sl。
    (正在读取数据库 ... 系统当前共安装有 162585 个文件和目录。)
    正准备解包 .../sl_3.03-17build2_amd64.deb  ...
    正在解包 sl (3.03-17build2) ...
    正在设置 sl (3.03-17build2) ...
    正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
    linux@ubuntu:~$ LS    # 运行程序 
    
    linux@ubuntu:~$ sudo apt remove sl   # 卸载软件 
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    下列软件包将被【卸载】:
      sl
    升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
    解压缩后将会空出 98.3 kB 的空间。
    您希望继续执行吗? [Y/n] y
    (正在读取数据库 ... 系统当前共安装有 162643 个文件和目录。)
    正在卸载 sl (3.03-17build2) ...
    正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
    Llinux@ubuntu:~$ LS    # 运行程序失败 
    
    Command 'LS' not found, but can be installed with:
    
    sudo apt install sl
    
    linux@ubuntu:~$ 
    linux@ubuntu:~$ sudo apt remove snake4   # 卸载贪吃蛇游戏
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    下列软件包是自动安装的并且现在不需要了:
      libshhmsg1 libshhopt1
    使用'sudo apt autoremove'来卸载它(它们)。
    下列软件包将被【卸载】:
      snake4
    升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
    解压缩后将会空出 272 kB 的空间。
    您希望继续执行吗? [Y/n] y
    (正在读取数据库 ... 系统当前共安装有 162612 个文件和目录。)
    正在卸载 snake4 (1.0.14-1build1) ...
    正在处理用于 desktop-file-utils (0.23-1ubuntu3.18.04.2) 的触发器 ...
    正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
    正在处理用于 gnome-menus (3.13.3-11ubuntu1.1) 的触发器 ...
    正在处理用于 mime-support (3.60ubuntu1) 的触发器 ...
    linux@ubuntu:~$ 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    3. apt policy 查看软件安装状态
    #policy  策略, 
    sudo apt policy <软件名称>
    
    sudo apt policy gcc     # 检查gcc 的安装状态 
    sudo apt policy sl      # 检查sl 软件安装状态
    sudo apt policy snake4  # 检查snake4 软件安装状态
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    例如:

    linux@ubuntu:~$ sudo apt policy gcc
    gcc:
      已安装:4:7.4.0-1ubuntu2.3
      候选: 4:7.4.0-1ubuntu2.3
      版本列表:
     *** 4:7.4.0-1ubuntu2.3 500
            500 http://mirrors.yun-idc.com/ubuntu bionic-security/main amd64 Packages
            500 http://mirrors.yun-idc.com/ubuntu bionic-updates/main amd64 Packages
            100 /var/lib/dpkg/status
         4:7.3.0-3ubuntu2 500
            500 http://mirrors.yun-idc.com/ubuntu bionic/main amd64 Packages
    linux@ubuntu:~$ 
    linux@ubuntu:~$ sudo apt policy sl
    sl:
      已安装:()
      候选: 3.03-17build2
      版本列表:
         3.03-17build2 500
            500 http://mirrors.yun-idc.com/ubuntu bionic/universe amd64 Packages
    linux@ubuntu:~$ sudo apt policy snake4
    snake4:
      已安装:()
      候选: 1.0.14-1build1
      版本列表:
         1.0.14-1build1 500
            500 http://mirrors.yun-idc.com/ubuntu bionic/universe amd64 Packages
            100 /var/lib/dpkg/status
    linux@ubuntu:~$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    4. apt list 软件清单
    sudo apt list  # 列出系统所有的软件包清单 
    sudo apt list <软件名称> # 列出这个软甲的清单 
    sudo apt list <软件名称>  -a  # 列出这个软件的所有版本清单 
    
    # 例如
    sudo apt list gcc
    sudo apt list gcc  -a
    sudo apt list sl -a 
    sudo apt list snake4  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    例如

    linux@ubuntu:~$ sudo apt list gcc  
    正在列表... 完成
    gcc/bionic-security,bionic-updates,now 4:7.4.0-1ubuntu2.3 amd64 [已安装]
    N: 还有 1 个版本。请使用 -a 选项来查看它(他们)。
    linux@ubuntu:~$ sudo apt list gcc  -a
    正在列表... 完成
    gcc/bionic-security,bionic-updates,now 4:7.4.0-1ubuntu2.3 amd64 [已安装]
    gcc/bionic 4:7.3.0-3ubuntu2 amd64
    
    linux@ubuntu:~$ sudo apt list sl -a 
    正在列表... 完成
    sl/bionic 3.03-17build2 amd64
    
    linux@ubuntu:~$ sudo apt list snake4
    正在列表... 完成
    snake4/bionic,now 1.0.14-1build1 amd64 [配置文件残留]    # 这个软件在卸载后, 有残留, 需要解决 
    linux@ubuntu:~$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    5. apt purge 卸载软件和配置文件
    sudo apt purge  <软件名称>
    
    sudo apt purge snake4  # 卸载软件和清除配置文件
    
    • 1
    • 2
    • 3

    例如:

    linux@ubuntu:~$ sudo apt purge snake4
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    下列软件包是自动安装的并且现在不需要了:
      libshhmsg1 libshhopt1
    使用'sudo apt autoremove'来卸载它(它们)。
    下列软件包将被【卸载】:
      snake4*
    升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
    解压缩后会消耗 0 B 的额外空间。
    您希望继续执行吗? [Y/n] y
    (正在读取数据库 ... 系统当前共安装有 162597 个文件和目录。)
    正在清除 snake4 (1.0.14-1build1) 的配置文件 ...    # 残留的配置文件被清除 
    linux@ubuntu:~$ 
    linux@ubuntu:~$ sudo apt list snake4    # 检查是否把配置文件清除 
    正在列表... 完成
    snake4/bionic 1.0.14-1build1 amd64
    linux@ubuntu:~$ 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    6. apt search 搜索软件包

    在可以用的软件包中搜索制定的包 , 如果找到,该命令将返回名称与搜索词匹配的包。

    sudo apt search <软件包名称>
    
    # 例如 
    sudo apt search snake4
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 例如
    
    linux@ubuntu:~$ sudo apt search snake4
    正在排序... 完成
    全文搜索... 完成  
    snake4/bionic 1.0.14-1build1 amd64
      Snake game
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    7. apt update 更新软件目录

    从服务器更新软件信息到本地 ,保持本地的软件信息和服务器一致 。

    sudo apt update    # 更软软件源信息 
    
    sudo apt list --upgradable   # 查看可升级的软件信息
    
    • 1
    • 2
    • 3

    例如:

    linux@ubuntu:~$ sudo apt update 
    命中:1 http://mirrors.yun-idc.com/ubuntu bionic InRelease
    获取:2 http://mirrors.yun-idc.com/ubuntu bionic-backports InRelease [74.6 kB]
    获取:3 http://mirrors.yun-idc.com/ubuntu bionic-security InRelease [88.7 kB]
    获取:4 http://mirrors.yun-idc.com/ubuntu bionic-updates InRelease [88.7 kB]
    获取:5 http://mirrors.yun-idc.com/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [9,264 B]
    获取:6 http://mirrors.yun-idc.com/ubuntu bionic-security/main amd64 Packages [2,365 kB]
    获取:7 http://mirrors.yun-idc.com/ubuntu bionic-security/main i386 Packages [1,225 kB]
    获取:8 http://mirrors.yun-idc.com/ubuntu bionic-security/main amd64 DEP-11 Metadata [55.3 kB]
    获取:9 http://mirrors.yun-idc.com/ubuntu bionic-security/universe i386 Packages [1,032 kB]
    获取:10 http://mirrors.yun-idc.com/ubuntu bionic-security/universe amd64 Packages [1,222 kB]
    获取:11 http://mirrors.yun-idc.com/ubuntu bionic-security/universe Translation-en [282 kB]
    获取:12 http://mirrors.yun-idc.com/ubuntu bionic-security/universe amd64 DEP-11 Metadata [61.1 kB]
    获取:13 http://mirrors.yun-idc.com/ubuntu bionic-security/multiverse amd64 DEP-11 Metadata [2,464 B]
    获取:14 http://mirrors.yun-idc.com/ubuntu bionic-updates/multiverse amd64 DEP-11 Metadata [2,464 B]
    获取:15 http://mirrors.yun-idc.com/ubuntu bionic-updates/universe amd64 Packages [1,837 kB]
    获取:16 http://mirrors.yun-idc.com/ubuntu bionic-updates/universe i386 Packages [1,623 kB]
    获取:17 http://mirrors.yun-idc.com/ubuntu bionic-updates/universe Translation-en [398 kB]
    获取:18 http://mirrors.yun-idc.com/ubuntu bionic-updates/universe amd64 DEP-11 Metadata [302 kB]
    获取:19 http://mirrors.yun-idc.com/ubuntu bionic-updates/main amd64 Packages [2,706 kB]
    获取:20 http://mirrors.yun-idc.com/ubuntu bionic-updates/main i386 Packages [1,523 kB]
    获取:21 http://mirrors.yun-idc.com/ubuntu bionic-updates/main amd64 DEP-11 Metadata [297 kB]
    已下载 15.2 MB,耗时 3(5,401 kB/s)                              
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    有 1 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。
    linux@ubuntu:~$ 
    linux@ubuntu:~$ apt list --upgradable   # 查看可升级的软件信息
    正在列表... 完成
    rsync/bionic-security,bionic-updates 3.1.2-2.1ubuntu1.5 amd64 [可从该版本升级:3.1.2-2.1ubuntu1.4]
    N: 还有 2 个版本。请使用 -a 选项来查看它(他们)。
    linux@ubuntu:~$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    8. apt upgrade 更新软件到最新

    把系统升级到最新

    image-20220822141609480

    sudo apt upgrade   # 把系统所有的软件升级到最新 , 类似windows的更新 
    
    • 1
    • 例如
    linux@ubuntu:~$ sudo apt upgrade 
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    正在计算更新... 完成
    下列软件包是自动安装的并且现在不需要了:
      libshhmsg1 libshhopt1
    使用'sudo apt autoremove'来卸载它(它们)。
    下列软件包将被升级:
      rsync
    升级了 1 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
    1 standard security update
    需要下载 335 kB 的归档。
    解压缩后会消耗 0 B 的额外空间。
    您希望继续执行吗? [Y/n] y
    获取:1 http://mirrors.yun-idc.com/ubuntu bionic-security/main amd64 rsync amd64 3.1.2-2.1ubuntu1.5 [335 kB]
    已下载 335 kB,耗时 1(311 kB/s)
    (正在读取数据库 ... 系统当前共安装有 162598 个文件和目录。)
    正准备解包 .../rsync_3.1.2-2.1ubuntu1.5_amd64.deb  ...
    正在将 rsync (3.1.2-2.1ubuntu1.5) 解包到 (3.1.2-2.1ubuntu1.4)...
    正在设置 rsync (3.1.2-2.1ubuntu1.5) ...
    正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
    正在处理用于 ureadahead (0.100.0-21) 的触发器 ...
    正在处理用于 systemd (237-3ubuntu10.53) 的触发器 ...
    linux@ubuntu:~$ 
    linux@ubuntu:~$ sudo apt autoremove
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    下列软件包将被【卸载】:
      libshhmsg1 libshhopt1
    升级了 0 个软件包,新安装了 0 个软件包,要卸载 2 个软件包,有 0 个软件包未被升级。
    解压缩后将会空出 85.0 kB 的空间。
    您希望继续执行吗? [Y/n] y
    (正在读取数据库 ... 系统当前共安装有 162597 个文件和目录。)
    正在卸载 libshhmsg1 (1.4.2-1) ...
    正在卸载 libshhopt1 (1.1.7-3) ...
    正在处理用于 libc-bin (2.27-3ubuntu1.6) 的触发器 ...
    linux@ubuntu:~$ 
    
    linux@ubuntu:~$ sudo apt upgrade 
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    正在计算更新... 完成
    升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
    linux@ubuntu:~$ sudo apt autoremove
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
    linux@ubuntu:~$ 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    9. apt clean 删除下载的软件包

    在安装软件时 , 需要先下载软件包到本地, 之后才可以安装软件包

    软件包被下载在: /var/cache/apt/archives/

    sudo apt autoclean   # 清除老版本的软件包 , 保留新版本的软件包 
    sudo apt clean       # 把所有下载的软件包删除掉 
    
    • 1
    • 2
    linux@ubuntu:~$ ls /var/cache/apt/archives/
    apport_2.20.9-0ubuntu7.28_all.deb                                 liblwres160_1%3a9.11.3+dfsg-1ubuntu1.17_amd64.deb
    apport-gtk_2.20.9-0ubuntu7.28_all.deb                             liblzma5_5.2.2-1.3ubuntu0.1_amd64.deb
    libklibc_2.0.4-9ubuntu2.2_amd64.deb                               xwayland_2%3a1.19.6-1ubuntu4.11_amd64.deb
    libldap-2.4-2_2.4.45+dfsg-1ubuntu1.11_amd64.deb                   xxd_2%3a8.0.1453-1ubuntu1.8_amd64.deb
    libldap-common_2.4.45+dfsg-1ubuntu1.11_all.deb                    xz-utils_5.2.2-1.3ubuntu0.1_amd64.deb
    liblouis14_3.5.0-1ubuntu0.4_amd64.deb                             zlib1g_1%3a1.2.11.dfsg-0ubuntu2.1_amd64.deb
    liblouis-data_3.5.0-1ubuntu0.4_all.deb                            zlib1g_1%3a1.2.11.dfsg-0ubuntu2.2_amd64.deb
    liblua5.2-0_5.2.4-1.1build1_amd64.deb
    linux@ubuntu:~$ du -mh /var/cache/apt/archives/   # 查看目录的大小 
    du: 无法读取目录'/var/cache/apt/archives/partial': 权限不够
    4.0K	/var/cache/apt/archives/partial
    396M	/var/cache/apt/archives/ 
    linux@ubuntu:~$ 
    linux@ubuntu:~$ sudo apt autoclean 
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    Del rsync 3.1.2-2.1ubuntu1.4 [334 kB]
    Del zlib1g 1:1.2.11.dfsg-0ubuntu2.1 [56.4 kB]
    linux@ubuntu:~$  
    linux@ubuntu:~$ sudo apt clean 
    linux@ubuntu:~$ du -mh /var/cache/apt/archives/
    du: 无法读取目录'/var/cache/apt/archives/partial': 权限不够
    4.0K	/var/cache/apt/archives/partial
    28K	/var/cache/apt/archives/
    linux@ubuntu:~$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    10. apt show 软件包的详细信息

    查看软件包的详细信息

    sudo apt show <软件的名称>
    
    # 例如
    sudo apt show gcc     # 查看gcc 软件包的详细信息
    sudo apt show snake4  # 查看snake4 软件包的详细信息
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 例如
    linux@ubuntu:~$ sudo apt show gcc
    Package: gcc
    Version: 4:7.4.0-1ubuntu2.3
    Priority: optional
    Build-Essential: yes
    Section: devel
    Source: gcc-defaults (1.176ubuntu2.3)
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 51.2 kB
    Provides: c-compiler
    Depends: cpp (>= 4:7.4.0-1ubuntu2.3), gcc-7 (>= 7.4.0-1~)
    Recommends: libc6-dev | libc-dev
    Suggests: gcc-multilib, make, manpages-dev, autoconf, automake, libtool, flex, bison, gdb, gcc-doc
    Conflicts: gcc-doc (<< 1:2.95.3)
    Supported: 5y
    Download-Size: 5,184 B
    APT-Manual-Installed: yes
    APT-Sources: http://mirrors.yun-idc.com/ubuntu bionic-security/main amd64 Packages
    Description: GNU C 编译器
     这是 GNU C 编译器,一个高度精炼和优化的 C 编译器。
     .
     这是一个提供默认 GNU C 编译器的依赖包。
    
    N: 有 1 条附加记录。请加上 ‘-a’ 参数来查看它们
    linux@ubuntu:~$ sudo apt show snake4
    Package: snake4
    Version: 1.0.14-1build1
    Priority: optional
    Section: universe/games
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Alexandre Dantas <eu@alexdantas.net>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 272 kB
    Depends: libc6 (>= 2.14), libshhmsg1 (>= 1.4.2), libshhopt1 (>= 1.1.7), libx11-6, libxaw7, libxpm4, libxt6
    Homepage: http://shh.thathost.com/pub-unix/#snake4
    Download-Size: 36.2 kB
    APT-Sources: http://mirrors.yun-idc.com/ubuntu bionic/universe amd64 Packages
    Description: Snake game
     This is a basic but nice implementation of the snake game. The objective
     is to "snake around" and eat fruit, while avoiding the evil headbanger
     and not crashing into your tail.
     .
     Features five levels of difficulty and a site-wid
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
  • 相关阅读:
    jwt和token的区别
    视频监控系统/安防视频平台EasyCVR广场视频细节优化
    链接脚本(1) --- 在默认的链接脚本中插入段
    模型对象CSS2DObject始终在画布的左上角(问题解决)
    公司需要同步大量数据,如何缓解传输压力提高同步效率?
    《Unity3D高级编程之进阶主程》第四章 UI(一) - NGUI和UGUI比较
    web前端期末大作业:基于HTML+CSS+JavaScript奥迪企业bootstrap响应式网站
    GD32F4(10):GD32转RS422在115200下接收乱码分析
    【0基础学算法】快速排序(超详细讲解+私人笔记+源码)
    MongoTemplate | 多条件查询
  • 原文地址:https://blog.csdn.net/shengli001842/article/details/127692989