当前位置: 首页 > news >正文

Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

  • 前言
  • 一、 软件包管理器
    • 1.1 传统安装方式的麻烦:从源代码说起
    • 1.2 软件包:把“乐高”提前拼好的成品
    • 1.3 包管理器:你的“软件应用商店”
    • 1.4 常见的“商店”:不同Linux系统的选择
  • 二、Linux下如何进行软件安装、升级、卸载
    • 1. 主流Linux发行版软件安装、升级、卸载
      • 1.1 Ubuntu/Debian系:APT
      • 1.2 CentOS/RHEL系:YUM与DNF
      • 1.3 其他发行版:
    • 2.软件包依赖:
      • 2.1 依赖管理的重要性
      • 2.2 常见依赖问题与解决方案
    • 3. 国内镜像源:
      • 3.1 为什么选择国内镜像源?
      • 3.2 主流国内镜像站推荐
      • 3.3 镜像源配置步骤(以Ubuntu、CentOS为例)
        • 3.3.1 Ubuntu/Debian系(以清华源为例)
          • 步骤1:备份原配置
          • 步骤2:替换为国内源(清华源)
          • 步骤3:更新软件源索引
        • 3.3.2 CentOS/RHEL系(以阿里云源为例)
          • 步骤1:备份原配置(可选)
          • 步骤2:替换为国内源(阿里云源)
          • 步骤3:更新软件源缓存


前言

  • 在前序博客中,我们系统讲解了 Linux 权限体系、基础操作指令,分步演示了 VMware 17 Pro 与 CentOS 9 Stream 的安装流程,并完成了 Vim 编辑器配置及 C++ 开发环境搭建。
  • 本节博客将聚焦软件包管理体系,深入解析 Linux 环境下软件包的安装、升级及卸载机制,帮助读者掌握主流包管理工具的核心操作逻辑

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Linux知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12879535.html?spm=1001.2014.3001.5482


一、 软件包管理器

对于刚接触Linux的我们来说,理解软件包和包管理器可以从我们熟悉的手机或电脑使用经验入手

  • 比如大家在手机上装App,很少会自己编写代码,而是直接去应用商店搜索下载,Linux里的“软件包”就相当于手机里的App安装包,“包管理器”则像应用商店,帮我们快速找到并安装这些“App”。

1.1 传统安装方式的麻烦:从源代码说起

假设你想在Linux里装一个聊天软件,如果按照最原始的方法,需要先找到这个软件的“源代码”(就像一堆工程图纸),然后自己用编译工具把它“组装”成可以直接运行的程序。这个过程就像自己动手拼乐高:

  1. 先要安装一堆编译工具(比如gcc、make),相当于准备好螺丝刀、胶水等工具;
  2. 编译过程中可能会遇到各种“依赖问题”,比如软件需要某个版本的插件,但你的电脑里没有,就得先手动找插件、安装,否则就拼不起来;
  3. 万一源代码有小错误,还得自己排查修改,对新手非常不友好
    这种方式就像“手动拼乐高”,虽然能学会原理,但太费时间,尤其对普通用户来说,只想快速用上软件,不想当“工程师”。
    在这里插入图片描述

1.2 软件包:把“乐高”提前拼好的成品

在这里插入图片描述

于是有人想了个办法:把常用软件提前编译好,打包成一个“安装包”(类似Windows的.exe安装程序),里面不仅包含可直接运行的程序,还提前打包了它需要的所有“依赖插件”,就像工厂直接生产好的乐高成品套装。这个“安装包”就是软件包

  • 比如你想装微信Linux版,不需要自己编译,只要下载一个.deb.rpm格式的软件包(不同Linux版本格式不同),告诉包管理器“我要装这个”,它就会帮你把软件放到合适的位置,连带着它需要的所有“零件”都装好,再也不用手动处理依赖问题。

1.3 包管理器:你的“软件应用商店”

在这里插入图片描述

有了软件包,还需要一个“商店”来管理它们——这就是包管理器。它的作用就像手机的应用商店:

  1. 集中管理软件库:包管理器连接着官方或第三方的“软件仓库”,里面存着成千上万的软件包,你不需要自己去各个网站找安装包,直接在命令行输入软件名称(比如“微信”),包管理器就能从仓库里找到对应的安装包;
  2. 自动解决依赖:比如你装A软件需要B插件,装B插件需要C库,包管理器会一次性把A、B、C都装好,不用你操心“先装谁”;
  3. 方便升级和卸载:就像应用商店可以一键更新所有App,包管理器也能一键升级系统里的所有软件,或者彻底卸载某个软件,不会留下残留文件。

1.4 常见的“商店”:不同Linux系统的选择

不同的Linux“家族”(发行版)常用的“包管理器商店”不同:

在这里插入图片描述

  • yum(代表系统:CentOS、RedHat、Fedora):比如你用的是CentOS系统,想装一个浏览器,打开终端输入sudo yum install firefox,yum就会从官方仓库下载Firefox的软件包并安装,全程自动。

在这里插入图片描述

  • apt(代表系统:Ubuntu、Debian):如果你用Ubuntu,命令类似sudo apt install firefox,apt的优势是仓库更新快,对新手更友好,很多Linux服务器也常用它。

二、Linux下如何进行软件安装、升级、卸载

在这里插入图片描述

Linux生态的优越性,很大程度体现在软件包管理的成熟度上。一个优秀的操作系统,需具备:

  1. 标准化的包格式(如Debian的.deb、RedHat的.rpm),确保软件分发的规范性;
  2. 自动化依赖解析,避免手动处理复杂依赖关系;
  3. 完善的软件仓库,提供海量预编译软件包,降低用户编译成本;
  4. 便捷的版本控制,支持快速升级、降级或卸载,保障系统稳定性。

这些要素共同构成了操作系统的“软件生态基础设施”,而国内镜像源的建设,则进一步优化了这一基础设施的访问效率。

1. 主流Linux发行版软件安装、升级、卸载

1.1 Ubuntu/Debian系:APT

核心工具apt-get/apt(命令行)、software-center(图形界面)
安装流程

  1. 更新软件源列表sudo apt update,获取最新软件包索引;
  2. 安装软件sudo apt install <软件名>,自动解析并安装依赖;
  3. 卸载软件sudo apt remove <软件名>(保留配置文件)或sudo apt purge <软件名>(彻底删除);
  4. 升级系统sudo apt upgrade(单个软件)或sudo apt dist-upgrade(系统级升级)。

特色:支持“渐进式升级”,通过/etc/apt/sources.list配置国内镜像源(如清华源、阿里源),显著提升下载速度。

1.2 CentOS/RHEL系:YUM与DNF

核心工具yum(CentOS 7及以下)、dnf(CentOS 8+)
安装流程

  1. 启用软件仓库:通过rpm -ivh安装repo文件,或直接编辑/etc/yum.repos.d/下的配置文件;
  2. 安装软件sudo yum install <软件名>,依赖问题由YUM自动处理;
  3. 卸载软件sudo yum remove <软件名>
  4. 升级系统sudo yum update(全系统升级)或指定软件升级。

进化:CentOS 8引入的DNF(Dandified YUM)优化了依赖解析算法,支持并行下载,效率更高。

1.3 其他发行版:

  • Arch系(Arch/Manjaro):使用pacman,强调“滚动更新”,通过pacman -S <软件名>安装,支持AUR(用户仓库)扩展生态;
  • Gentoo:基于Portage,通过emerge编译安装,用户可自定义软件配置(如CPU优化、功能裁剪);
  • SUSE:使用zypper,结合官方OBS仓库,适合企业级环境的稳定部署。

2.软件包依赖:

在这里插入图片描述

2.1 依赖管理的重要性

软件包通常依赖其他库或工具(如libc、GCC运行时),若依赖缺失或版本冲突,会导致安装失败或运行异常。包管理工具的核心价值,在于通过“依赖图”自动解析并安装所需组件。

2.2 常见依赖问题与解决方案

  1. 依赖缺失
    • 方案:通过包管理工具自动解决(如apt -f install修复破损依赖);
    • 特例:第三方软件可能需手动安装依赖(参考官方文档或使用容器化方案)。
  2. 版本冲突
    • 方案:使用apt policy <软件名>查看版本优先级,通过apt install <软件名>=<版本号>指定安装版本;
    • 进阶:利用Docker/Kubernetes等容器技术,实现“依赖隔离”。
  3. 跨发行版依赖
    • 挑战:Debian与RedHat系包格式不兼容;
    • 解决方案:使用通用二进制(如Go语言编译的可执行文件)、容器镜像,或通过alien工具转换包格式(非推荐)。

3. 国内镜像源:

3.1 为什么选择国内镜像源?

  • 速度优势:直接从国内服务器下载,避免国际链路延迟;
  • 稳定性:国内镜像站同步频率高(多数每日更新),减少“源不可用”问题;
  • 本地化支持:部分镜像站提供中文文档(如清华源的详细配置指南)。

3.2 主流国内镜像站推荐

  1. 阿里云镜像站(https://developer.aliyun.com/mirror/)

    • 特色:覆盖几乎所有主流Linux发行版(Ubuntu/CentOS/Arch等),支持Docker镜像、编程语言包(如PyPI/NPM),企业级稳定性。
  2. 清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn/)

    • 特色:教育网用户友好,提供IPv4/IPv6双栈支持,镜像列表清晰,附带详细的配置教程(如如何替换系统默认源)。
  3. 中国科学技术大学镜像站(http://mirrors.ustc.edu.cn/)

    • 特色:同步速度极快,支持反向代理(如npm、Maven中央仓库),适合开发者使用,提供多线路解析(教育网/电信/联通)。
  4. 北京交通大学镜像站(https://mirror.bjtu.edu.cn/)

    • 特色:专注于常用发行版和开发工具,状态监控清晰(显示每个镜像的同步状态),适合高校及科研机构。
  5. 网易镜像站(http://mirrors.163.com/)

    • 特色:历史悠久,支持传统Linux发行版(如Debian老版本),提供便捷的搜索功能,快速定位所需软件包。

3.3 镜像源配置步骤(以Ubuntu、CentOS为例)

3.3.1 Ubuntu/Debian系(以清华源为例)

核心文件/etc/apt/sources.list(全局软件源配置)
适用系统:Ubuntu 16.04+、Debian 9+等

步骤1:备份原配置
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak  

作用:防止配置错误导致系统无法更新,便于恢复默认源。

步骤2:替换为国内源(清华源)

使用文本编辑器(如nano、vim)打开配置文件:

sudo nano /etc/apt/sources.list  

清空原有内容,替换为以下镜像地址(根据Ubuntu版本选择对应分支,如jammy为22.04,ubuity为23.10):

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse  
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse  
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse  
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse  
# 如需使用测试版软件,取消注释以下行  
# deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse  

注意:镜像地址需与系统版本匹配,可通过lsb_release -a查看Ubuntu版本代号。

步骤3:更新软件源索引
sudo apt update  

验证:若输出中无404 Not FoundFailed to fetch错误,说明配置成功。

3.3.2 CentOS/RHEL系(以阿里云源为例)

核心文件/etc/yum.repos.d/目录下的.repo文件(每个仓库独立配置)
适用系统:CentOS 7/8、Rocky Linux、AlmaLinux等

步骤1:备份原配置(可选)
sudo mkdir -p /etc/yum.repos.d/bak && sudo cp /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/  

作用:备份官方仓库配置,避免误操作导致依赖问题。

步骤2:替换为国内源(阿里云源)
  1. 下载镜像站提供的repo文件(以CentOS 7为例):

    sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  
    

    或手动编辑文件:

    sudo nano /etc/yum.repos.d/CentOS-Base.repo  
    

    将所有baseurl字段替换为阿里云镜像地址:

    [base]  
    name=CentOS-$releasever - Base  
    baseurl=http://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/  
    gpgcheck=1  
    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7  [updates]  
    name=CentOS-$releasever - Updates  
    baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/os/  
    # 其他仓库(如extras、centosplus)同理替换  
    

    关键参数$releasever自动匹配系统版本,$basearch为架构(x86_64/arm64等)。

  2. 启用EPEL仓库(可选,用于获取额外软件包)

    sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  
    
步骤3:更新软件源缓存
sudo yum makecache  # CentOS 7及以下  
# 或  
sudo dnf makecache  # CentOS 8及以上(DNF工具)  

验证:输出中显示Metadata Cache Created,表示缓存生成成功。

通过以上步骤,可显著提升Ubuntu/CentOS系统的软件下载速度和稳定性,尤其适合国内用户环境。配置时建议选择与自身网络匹配的镜像站(如教育网选清华/中科⼤,企业网选阿里云/网易),并定期执行更新命令以获取最新软件包。


以上就是这篇博客的全部内容,下一篇我们将继续探索Linux的更多精彩内容。

我的个人主页
欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Linux知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12879535.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

相关文章:

Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

Linux操作系统从入门到实战&#xff08;六&#xff09;Linux开发工具&#xff08;上&#xff09;详细介绍什么是软件包管理器&#xff0c;Linux下如何进行软件和软件包的安装、升级与卸载 前言一、 软件包管理器1.1 传统安装方式的麻烦&#xff1a;从源代码说起1.2 软件包&…...

Java中的​​策略模式​​和​​模板方法模式

文章目录 1. 策略模式&#xff08;Strategy Pattern&#xff09;案例&#xff1a;支付方式选择 2. 模板方法模式&#xff08;Template Method Pattern&#xff09;案例&#xff1a;制作饮料流程 3. 策略模式 vs 模板方法模式4.总结 在Java中&#xff0c;策略模式和模板方法模式…...

C#里WPF使用触发器实现鼠标点击响应

在WPF里创建了一个自定义的用户控件, 要想在这个控件里实现鼠标的点击事件响应, 就需要添加事件触发器交互定义,如下代码: <ListView x:Name="ListViewMenu" ItemsSource="{Binding Path=SubItems}" Foreground="White" ScrollViewer.Ho…...

tensorflow-cpu

python3.8~3.12安装tensorflow-cpu 准备 创建并进入目录 mkdir tf-cpu cd tf-cpu编写测试代码 test_tensorflow.py import tensorflow as tf# 检查TensorFlow版本 print("\nTensorFlow version:", tf.__version__,end\n\n)# 创建一个简单的计算图并运行它 tensor …...

【AI提示词】PEST分析

提示说明 市场分析师专注于为企业、产品或国家提供PEST分析支持&#xff0c;以制定精准的市场战略。 提示词 # Role: PEST分析## Profile - language: 中文 - description: 市场分析师专注于为企业、产品或国家提供PEST分析支持&#xff0c;以制定精准的市场战略 - backgrou…...

42、在.NET 中能够将⾮静态的⽅法覆写成静态⽅法吗?

在.NET中&#xff0c;不能将非静态方法&#xff08;实例方法&#xff09;直接覆写&#xff08;Override&#xff09;为静态方法&#xff08;Static Method&#xff09;。以下是关键原因和解释&#xff1a; 1. 方法绑定的本质区别 实例方法&#xff1a;属于对象的实例&#xf…...

【嵌入式系统设计师(软考中级)】第三章:嵌入式系统软件基础知识——①软件及操作系统基础

文章目录 1. 嵌入式系统软件基础知识1.1 嵌入式软件分类1.2 嵌入式系统初始化1.3 无操作系统支持的嵌入式软件体系结构1.4 有操作系统支持的嵌入式软件体系结构1.5 嵌入式支撑软件 2. 嵌入式操作系统基础知识2.1 嵌入式操作系统基本概念2.2 处理器管理2.2.1 多道程序2.2.2 分区…...

cs224w课程学习笔记-第11课

cs224w课程学习笔记-第11课 知识图谱嵌入 前言一、知识图谱1、知识图谱特点2、关系类型 二、知识图谱嵌入1、嵌入核心思想2、嵌入模型2.1 嵌入模型transE1)、核心思想2)、训练步骤3)、模型表征能力 2.2 嵌入模型TransR2.3 DistMult嵌入模型1)、核心思想2)、表征能力 2.4 complE…...

5.10-套接字通信 - C++

套接字通信 1.1 通信效率问题 服务器端 单线程 / 单进程 无法使用&#xff0c;不支持多客户端 多线程 / 多进程 写程序优先考虑多线程&#xff1a;什么时候考虑多进程&#xff1f; 启动了一个可执行程序 A &#xff0c;要在 A 中启动一个可执行程序 B 支持多客户端连接 IO 多…...

【Linux】Linux内核的网络协议之socket理解

1. Socket&#xff08;套接字&#xff09; 的本质 它是应用程序与网络协议栈之间的编程接口&#xff08;API&#xff09;&#xff0c;用于实现网络通信。 Socket 并不是一个物理设备&#xff0c;而是一个抽象层为应用程序提供统一的网络操作接口&#xff08;如 send()、recv()…...

仿函数和函数对象

1. 概念解读&#xff1a;什么是“函数”和“函数对象”&#xff1f; 核心概念一句话总结 仿函数&#xff08;Functor&#xff09; 函数对象&#xff08;Function Object&#xff09; 它们本质是一个对象&#xff08;Object&#xff09;&#xff0c;但可以像函数&#xff08;Fu…...

Kubernetes控制平面组件:Kubelet 之 Static 静态 Pod

云原生学习路线导航页&#xff08;持续更新中&#xff09; kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计&#xff08;一&#xff09;Kubernetes架构原则和对象设计&#xff08;二&#xff09;Kubernetes架构原则和对象设计&#xff08;三&#xff09;Kubernetes控…...

Django 项目的 models 目录中,__init__.py 文件的作用

在 Django 项目的models/init.py文件中&#xff0c;这些导入语句的主要作用是将各个模型类从不同的模块中导入到models包的命名空间中。这样做有以下几个目的&#xff1a; 简化导入路径 当你需要在项目的其他地方使用这些模型时&#xff0c;可以直接从models包导入&#xff0c…...

学习日志04 java

PTA上的练习复盘 java01 编程题作业感悟&#xff1a; 可以用ai指导自己怎么调试&#xff0c;但是不要把调代码这过程里面的精华交给ai&#xff0c;就是自己去修正错误不能让ai代劳&#xff01;~~~ 1 scanner.close() Scanner *** new Scanner(System.in); ***.close(); …...

vue-pdf-embed预览PDF

一、vue-pdf-embed 链接&#xff1a;Yarn 1、安装插件 npm install vue-pdf-embed 2、文件中引入&#xff08;分页效果已实现&#xff0c;样式请自行修改&#xff09; <template><div class"download-pdf-preview" style"height: 450px; border:1…...

C++GO语言微服务之Dockerfile docker-compose

目录 01 01-知识点概述 02 02-dockerfile复习 03 03-环境变量ENV的使用 04 04-WORKDIR的使用 05 05-USER和ARG的使用 06 06-ONBUILD的使用 07 07-dockerfile的缓存相关的参数 08 08-dockerfile的编写 09 09-测试-没成功-好像是网不行 01 10-docker-compose介绍 02 11…...

【漫话机器学习系列】255.独立同分布(Independent and Identically Distributed,简称 IID)

深入理解独立同分布&#xff08;IID&#xff09;&#xff1a;机器学习与统计学的基石 在机器学习、深度学习、统计建模等领域&#xff0c;我们经常会遇到一个重要假设&#xff1a;独立同分布&#xff08;Independent and Identically Distributed&#xff0c;简称 IID&#xf…...

树莓派4 yolo 11l.pt性能优化后的版本

树莓派4 使用 Picamera2 拍摄图像&#xff0c;然后通过 YOLO11l.pt 进行目标检测&#xff0c;并在实时视频流中显示结果。但当前的代码在运行时可能会比较卡顿&#xff0c;主要原因包括&#xff1a; picam2.capture_array() 是一个较慢的操作&#xff1b;YOLO 推理可能耗时较长…...

AD22 快速定义PCB板框与DXF导入定义

自行定义板框 1. 初步评估&#xff1a;选中所有的器件&#xff0c;选中‘在矩形区域排列’ 将元件放好后&#xff0c;可以再将元件紧凑一下 2. 设置原点&#xff0c;并在下方选中机械一层 从原点出发&#xff0c;点击快捷键PL 画框线 3. 对线条长度取整&#xff0c;且最好是5…...

LInux系统文件与目录管理(二)

提示&#xff1a;第二部分对第一部分收尾 文章目录 常见的命令如下一、文件查看命令1. more命令2.less命令3.head命令4.tail命令5.nl命令&#xff08;了解&#xff09;6.创建目录命令7.创建文件命令>: 覆盖重定向>>: 追加重定向 8.touch命令9.echo命令10.文件或目录复…...

Redisson在业务处理中失败后的应对策略:保障分布式系统的可靠性

分布式系统中的数据一致性与高可用性一直是开发者面临的难题。作为Redis官方推荐的Java客户端&#xff0c;Redisson凭借其强大的分布式能力成为解决这些问题的利器。但在实际业务场景中&#xff0c;网络抖动、资源竞争、节点故障等问题可能导致操作失败&#xff0c;本文将深入探…...

windows下docker 运行 ros2humble arm64

目前要想运行arm版ros humble 目前最好的解决方案是使用qemu模拟。 1.拉取 ubuntu22.04 docker pull ubuntu:22.04 --platformarm642.安装小鱼ros2 humble wget http://fishros.com/install -O fishros && . fishros3.安装eqmu docker run --rm --privileged multia…...

表的增删改查 -- 2

目录 3、查询&#xff08;R&#xff09; 3.7、条件查询&#xff1a;where 3.8、分页查询&#xff1a;limit 3.9、查询总结 4、修改&#xff08;U&#xff09; 5、删除&#xff08;D&#xff09; 3、查询&#xff08;R&#xff09; 3.7、条件查询&#xff1a;where selec…...

Linux系统管理与编程20:Apache

兰生幽谷&#xff0c;不为莫服而不芳&#xff1b; 君子行义&#xff0c;不为莫知而止休。 做好网络和yum配置&#xff0c;用前面dns规划的www的IP进行。 #!/bin/bash #----------------------------------------------------------- # File Name: myWeb.sh # Version: 1.0 # …...

dfs 第一次加训 详解 下

目录 P1706 全排列问题 思路 B3618 寻找团伙 思路 B3621 枚举元组 思路 B3622 枚举子集&#xff08;递归实现指数型枚举&#xff09; 思路 B3623 枚举排列&#xff08;递归实现排列型枚举&#xff09; B3625 迷宫寻路 思路 P6183 [USACO10MAR] The Rock Game S 总结…...

vue2/3 中使用 @vue-office/docx 在网页中预览(docx、excel、pdf)文件

1. 安装依赖&#xff1a; #docx文档预览组件npm install vue-office/docx vue-demi0.14.6#excel文档预览组件npm install vue-office/excel vue-demi0.14.6#pdf文档预览组件npm install vue-office/pdf vue-demi0.14.6 vue2.6版本或以下还需要额外安装 vue/composition-api …...

Excel表的导入与导出

Excel表的导入与导出 根据excel表来建立所需的数据库表格 <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.10.3</version></dependency><dependency><groupId>cn.hutool&…...

Redis 中常见的数据类型有哪些?

Redis 常见的数据类型包括 5 种基础类型&#xff08;String、Hash、List、Set、Zset&#xff09;和 3 种特殊类型&#xff08;HyperLogLog、Bitmap、Geospatial&#xff09;。以下是详细说明&#xff1a; 一、5 种基础数据类型 1. 字符串&#xff08;String&#xff09; 特点…...

消息队列如何保证消息可靠性(kafka以及RabbitMQ)

目录 RabbitMQ保证消息可靠性 生产者丢失消息 MQ丢失消息 消费端丢失了数据 Kakfa的消息可靠性 生产者的消息可靠性 Kakfa的消息可靠性 消费者的消息可靠性 RabbitMQ保证消息可靠性 生产者丢失消息 1.事务消息保证 生产者在发送消息之前&#xff0c;开启事务消息随后生…...

基于STM32、HAL库的BMP390L气压传感器 驱动程序设计

一、简介: BMP390L 是 Bosch Sensortec 生产的一款高精度气压传感器,专为需要精确测量气压和海拔高度的应用场景设计。BMP390L 具有更低的功耗、更高的精度和更快的响应速度。 二、硬件接口: BMP390L 引脚STM32L4XX 引脚说明VDD3.3V电源GNDGND地SCLPB6 (I2C1 SCL)I2C 时钟线…...

QMK键盘固件中LED锁定指示灯的配置与使用详解(实操部分+拓展)

QMK键盘固件中LED锁定指示灯的配置与使用详解 大家好!今天就跟大家一起探索QMK固件中LED锁定指示灯的配置与使用。无论你是键盘DIY新手还是老司机,相信这篇教程都能帮你解锁新技能! 一、基础配置:定义LED引脚 在QMK固件中配置LED锁定指示灯非常简单,只需在config.h文件…...

【日撸 Java 三百行】Day 12(顺序表(二))

目录 Day 12&#xff1a;顺序表&#xff08;二&#xff09; 一、顺序表的方法 1. 顺序查找 拓展&#xff1a;顺序查找中的哨兵思想 2. 插入 3. 删除 二、代码及测试 拓展&#xff1a; 小结 Day 12&#xff1a;顺序表&#xff08;二&#xff09; Task&#xff1a; 今天…...

Python爬虫实战:研究ajax异步渲染加密

一、引言 在当今数字化时代,数据已成为推动各行业发展的核心驱动力。网络爬虫作为一种高效的数据采集工具,能够从互联网上自动获取大量有价值的信息。然而,随着 Web 技术的不断发展,越来越多的网站采用了 AJAX(Asynchronous JavaScript and XML)异步渲染技术来提升用户体…...

Golang企业级商城高并发微服务实战

Golang企业级商城高并发微服务实战包含内容介绍&#xff1a; 从零开始讲了百万级单体高并发架构、千万级微服务架构&#xff0c;其中包含Rpc实现微服务、微服务的跨语言调用jsonrpc和protobuf、protobuf的安装、protobuf高级语法、protobuf结合Grpc实现微服务实战、微服务服务…...

从经典力扣题发掘DFS与记忆化搜索的本质 -从矩阵最长递增路径入手 一步步探究dfs思维优化与编程深度思考

1引子&#xff1a; DFS和递归法的一道经典例题矩阵最长递增子序列这个题写完之后脑袋产生了许多突发奇想&#xff1a; 1 第一个堆栈代码段这些底层C语言内部管理的工具它是怎么进行内存分配的&#xff1f;能不能深究&#xff1f; 2 第二个这个DFS和计划数组存储的思路到底抽象…...

我开源了一个免费在线工具!UIED Tools

UIED Tools - 免费在线工具集合 最近更新&#xff1a;修改了文档说明&#xff0c;优化了项目结构介绍 这是设计师转开发的第一个开源项目&#xff0c;bug和代码规范可能有些欠缺。 这是一个功能丰富的免费在线工具集合网站&#xff0c;集成了多种实用工具&#xff0c;包括 AI …...

geoserver发布arcgis瓦片地图服务(最新版本)

第一步&#xff1a;下载geoserver服务&#xff0c;进入bin目录启动 需要提前安装好JDK环境&#xff0c;1.8及以上版本 安装完成&#xff0c;页面访问端口&#xff0c;进入控制台界面,默认用户名密码admin/geoserver 第二步&#xff1a;下载地图 破解版全能电子地图下载器&…...

RN 鸿蒙混合开发实践(踩坑)

#三方框架# #React Native # 1 。环境配置&#xff1b; 安装 DevEco 开发工具&#xff1b; Node 版本16&#xff1b; hdc环境配置 hdc 是 OpenHarmony 为开发人员提供的用于调试的命令行工具&#xff0c;鸿蒙 React Native 工程使用 hdc 进行真机调试。hdc 工具通过 OpenHa…...

2025年阿里云ACP大数据分析师认证模拟试题(附答案解析)

这篇文章的内容是阿里云ACP大数据分析师认证考试的模拟试题。 所有模拟试题由AI自动生成&#xff0c;主要为了练习和巩固知识&#xff0c;并非所谓的 “题库”&#xff0c;考试中如果出现同样试题那真是纯属巧合。 1、ABC公司现有大量的图片和视频信息&#xff0c;以下哪种产…...

go语言实现IP归属地查询

效果: 实现代码main.go package mainimport ("encoding/json""fmt""io/ioutil""net/http""os" )type AreaData struct {Continent string json:"continent"Country string json:"country"ZipCode …...

Qt中解决UI线程阻塞导致弹窗无法显示的两种方法

在Qt应用程序开发中,我们经常会遇到这样的问题:当执行一个耗时操作时,整个界面会卡住,无法响应任何用户操作,甚至连一个简单的提示弹窗都无法正常显示。本文将介绍两种解决这个问题的方法,并通过完整的代码示例进行说明。 问题描述 先来看一个常见的错误示例: #inclu…...

位运算题目:黑板异或游戏

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;黑板异或游戏 出处&#xff1a;810. 黑板异或游戏 难度 8 级 题目描述 要求 给定一个整数数组 nums \texttt{nums} nums&#xff0c;表示写在黑板…...

LegoGPT,卡内基梅隆大学推出的乐高积木设计模型

LegoGPT 是由卡内基梅隆大学开发的一款创新性乐高积木设计模型&#xff0c;能够根据用户的文本提示生成结构稳固、可组装的乐高模型。该模型基于自回归语言模型和大规模乐高设计数据集进行训练&#xff0c;用户只需输入简单的文字描述&#xff0c;LegoGPT 就能逐步构建出物理稳…...

深度 |国产操作系统“破茧而出”:鸿蒙电脑填补自主生态空白

真心为国内能有像华为这样的技术型公司而自豪&#xff0c;一步步突围技术封锁。从这篇信息&#xff0c;可以给软件从业者一个启示&#xff1a;鸿蒙生态将是一个新的机会&#xff0c;值得好好把握。 鸿蒙电脑正成为中国电子信息技术新坐标。 超10亿鸿蒙生态设备、2800家鸿蒙智…...

【Python】Python常用数据类型判断方法详解

在Python编程中,准确判断数据类型是处理逻辑分支、类型转换和异常处理的基础。本文结合核心方法与实践场景,系统介绍type()、isinstance()等常用判断方式,并分析其适用性与最佳实践。 一、直接类型判断方法 type()函数 • 功能:返回对象的精确类型,适用于简单类型判断。 •…...

【美国将取消对能源之星支持 严重影响AI服务器】

1992年美国政府在共和党执政期间推出了影响深远的“能源之星”计划&#xff08;Energy Star&#xff09;&#xff0c;很多人可能并不知道能源执行计划&#xff0c;但这个蓝色星星标签估计大多数人都不会陌生。能源之星计划从推出以来不止得到各类消费电子制造商认可&#xff0c…...

《 C++ 点滴漫谈: 三十七 》左值?右值?完美转发?C++ 引用的真相超乎你想象!

摘要 本文全面系统地讲解了 C 中的引用机制&#xff0c;涵盖左值引用、右值引用、引用折叠、完美转发等核心概念&#xff0c;并深入探讨其底层实现原理及工程实践应用。通过详细的示例与对比&#xff0c;读者不仅能掌握引用的语法规则和使用技巧&#xff0c;还能理解引用在性能…...

【生产实践】Linux中/usr/bin、/usr/sbin与/usr/local的关系解析(2025年技术规范)

一、核心定位与功能划分 /usr/bin&#xff1a;用户级通用命令库 • 定位&#xff1a;存储系统预装的用户级可执行文件&#xff0c;这些命令通常由Linux发行版官方软件包管理器&#xff08;如APT、YUM&#xff09;安装&#xff0c;属于系统默认功能的一部分。 • 示例命令&#…...

数据可视化:用一张图讲好一个故事

在这个信息爆炸的时代&#xff0c;数据无处不在&#xff0c;但如何让复杂的数据变得通俗易懂&#xff1f;数据可视化就是一把神奇的钥匙。它不仅能将枯燥的数字转化为生动的图像&#xff0c;还能挖掘出数据背后隐藏的故事。然而&#xff0c;很多人对数据可视化的理解还停留在表…...

C++获取目录中所有图片路径的函数get_image_paths解析

本文将全面解析一个用于获取目录中图片路径的C函数get_image_paths&#xff0c;从基础语法到高级概念&#xff0c;涵盖C标准库、文件系统操作、异常处理等多个方面。 原始代码 std::vector<std::string> get_image_paths(const std::string& directory_path) {log_…...