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

Re:Linux系统篇(九)工具篇 · 一:3分钟学会yum,让软件安装像呼吸一样简单

◆ 博主名称 晓此方-CSDN博客大家好欢迎来到晓此方的博客。⭐️Linux系列个人专栏 【主题曲】Linux⭐️Re系列专栏我们思考 (Rethink) · 我们重建 (Rebuild) · 我们记录 (Record)文章目录概要序論一、在 Linux 环境下安装软件1.1 Linux 中安装软件的三大手段1.1.1 源码安装的不足1.1.2 软件包安装的不足1.1.3 包管理器的优势以 yum 为例1.2yum的使用1.2.1指令介绍1.2.2操作案例1.2.3网络连通性检测1.2.3.1核心指令ping1.2.3.2输出信息解读1.3yum操作的进阶补充二、Linux 上的软件是谁提供的2.1 配套软件之于操作系统生态2.2 Linux 上软件的提供过程2.2.1 开发者与开源商业模式2.2.2 社区与构建系统2.2.3 我们的 Linux 机器与包管理器2.3 镜像2.3.1镜像的概念2.3.2镜像源yum源的配置概要序論Hello 大家好我是此方今天开始我会为大家带来Linux的开发工具的相关内容内容还是力求完整充实干货满满希望能够帮到大家。好我们开始。从今天开始我们要介绍的开发工具有哪些一、在 Linux 环境下安装软件在 Linux 操作系统的日常使用与运维中安装软件是基础且频繁的操作。根据自动化程度和底层原理的不同传统的软件安装手段主要分为三大类源码安装、软件包安装如 RPM以及包管理器安装如 yum/apt。在ubantu中是apt在Centos中是yum以下我们以yum示例在ubantu中完全一致。1.1 Linux 中安装软件的三大手段为了更好地理解为什么现代生产环境更倾向于使用包管理器我们需要对比这三者之间的差异及其各自的局限性。1.1.1 源码安装的不足源码安装是最原始、最灵活的安装方式。用户通常需要通过git clone或下载.tar.gz压缩包获取源代码随后经过configure、make、make install三部曲完成安装。然而这种方式存在明显的不足编译门槛高要求用户环境必须提前配置好对应的编译器如 gcc, g、构建工具以及所有的底层库文件。过程繁琐且耗时大型软件的编译可能耗费数小时且一旦报错排查成本极高。难以管理源码安装的软件通常分散在/usr/local/等目录下不具备统一的卸载与版本升级机制。1.1.2 软件包安装的不足为了简化安装过程开发者将源码预先编译好打包成特定格式的安装包如 CentOS 中的.rpm文件或 Ubuntu 中的.deb文件。这种方式类似于 Windows 下的.exe安装程序。尽管它免去了编译的痛苦但仍存在一个致命的知识点缺陷依赖问题Dependency Hell。手动处理依赖当你安装软件包 A 时系统可能会提示它依赖于 B而当你尝试安装 B 时又发现它依赖于 C 和 D。版本兼容性风险用户很难手动判断当前系统中已有的库文件版本是否满足该软件包的严苛要求强行安装极易导致系统库冲突或软件无法运行。补充linux的根目录/下有这么多分门别类的目录就是为了方便你在安装一个东西的时候能把这个东西的依赖分门别类的放到不同的目录下。1.1.3 包管理器的优势以 yum 为例针对上述手段的痛点包管理器Package Manager应运而生。类似于我们的应用商店在 CentOS 中我们最常用的工具是yumYellowdog Updater, Modified它本质上是 RPM 的前端工具并引入了“软件仓”的概念。与前两者相比其核心优势体现在全自动解决依赖关系这是包管理器最显著的优势。当你执行yum install时它会自动分析该软件所需的所有依赖包并从云端仓库一并下载安装。这种“一键式”体验彻底解决了令人头疼的依赖缺失与版本兼容性问题。网络化获取与安装yum能够自动从配置好的镜像源Repo中通过网络下载最新的软件包确保了获取渠道的安全与便捷。全局共享与权限管理在 Linux 中使用yum安装软件通常需要root权限。软件一旦安装到系统中便实现了“一次安装全员使用”的共享机制方便了多用户环境下的统一管理。生命周期管理包管理器提供了完善的查询check、更新update和卸载remove功能使得维护系统软件环境变得井然有序。注册表安装好了程序之后把程序的信息写入注册表。,root装的软件——普通用户都能用。因为我是安装在系统里面不是安装在home里。1.2yum的使用1.2.1指令介绍指令名称yum (Yellowdog Updater, Modified)指令重要性★★★★★说明基本用法yum install 包名安装软件、yum remove 包名卸载软件、yum list列出可用包。最常用选项-y“免确认”开关让 Linux 在安装软件时自动执行。我们知道在windows系统上npm经常被用来下载东西但是npm更加像yum而不是rpm我们接下来讲你就明白了。1.2.2操作案例下载[rootVM-0-9-opencloudos ~]# yum install slBaseOS9- x86_64368kB/s|3.8kB 00:00 BaseOS9- x86_6425MB/s|1.6MB 00:00 AppStream9- x86_64775kB/s|3.8kB 00:00 AppStream9- x86_6489MB/s|17MB 00:00 extras9- x86_64187kB/s|3.0kB 00:00 Extra PackagesforOpenCloudOS9- EPOL434kB/s|3.0kB 00:00 Extra PackagesforOpenCloudOS9- EPOL44MB/s|19MB 00:00 Dependencies resolved.Package Architecture Version Repository SizeInstalling: sl x86_645.02-2.oc9 EPOL16k Transaction SummaryInstall1Package Total download size:16k Installed size:21k Is this ok[y/N]: y Downloading Packages: sl-5.02-2.oc9.x86_64.rpm69kB/s|16kB 00:00 -------------------------------------------------------------------------------------------------------------- Total69kB/s|16kB 00:00 Running transaction check Transaction check succeeded. Running transactiontestTransactiontestsucceeded. Running transaction Preparing:1/1 Installing:sl-5.02-2.oc9.x86_641/1 Running scriptlet: sl-5.02-2.oc9.x86_641/1 Verifying:sl-5.02-2.oc9.x86_641/1 Installed: sl-5.02-2.oc9.x86_64 Complete![rootVM-0-9-opencloudos ~]#[rootVM-0-9-opencloudos ~]# sl卸载[rootVM-0-9-opencloudos ~]# yum remove sl #可以带上x86_64也可以不带Dependencies resolved.Package Architecture Version Repository SizeRemoving: sl x86_64 体系结构5.02-2.oc9 版本 EPOL21k Transaction SummaryRemove1Package Freed space:21k Is this ok[y/N]: y Running transaction check Transaction check succeeded. Running transactiontestTransactiontestsucceeded. Running transaction Preparing:1/1 Erasing:sl-5.02-2.oc9.x86_641/1 Running scriptlet: sl-5.02-2.oc9.x86_641/1 Verifying:sl-5.02-2.oc9.x86_641/1 Removed: sl-5.02-2.oc9.x86_64 Complete![rootVM-0-9-opencloudos ~]# sl-bash: /usr/bin/sl: No suchfileor directory[rootVM-0-9-opencloudos ~]#查找[rootVM-0-9-opencloudos ~]# yum list | grep lrzszlrzsz.x86_640.12.20-6.oc9 System[rootVM-0-9-opencloudos ~]#直接按会被大量的安装包信息刷屏。使用-y选项下载man-pageswhbbite-alicloud ~]$sudoyum-yinstallman-pages为什么后面跟着x86_64?因为开发者将源码可能会编译好几份来适配不同的系统我们的系统去拉去这些软件的时候一定会根据它自己的系统来拉去自己需要的。1.2.3网络连通性检测1.2.3.1核心指令ping命令格式ping -c3 www.baidu.com作用检测当前主机与目标主机如百度之间的网络是否打通。参数含义*-c3表示发送 3 次 ICMP 数据包后自动停止Count 3。如果不加这个参数Linux 会无限次地发包直到你按下Ctrl C。1.2.3.2输出信息解读根据图片中的红框标注主要关注点如下正常情况看到64 bytes from ...说明收到了目标主机的回音Reply。time8.57 ms表示往返延迟数值越小说明网络质量越好。结论有回音、无报错→ \rightarrow→正常联网。异常情况显示Network is unreachable或没有任何回音。结论报错或超时→ \rightarrow→未正常联网。1.3yum操作的进阶补充指令功能使用场景yum makecache构建本地缓存更换软件源如阿里云、清华源后同步最新索引。yum search 关键字模糊搜索软件包只记得部分名字或寻找实现某功能的工具时使用。yum clean all清理缓存垃圾磁盘空间不足或 YUM 报错索引损坏时的修复手段。yum upgrade系统级软件更新想把系统补丁和版本一口气提升到最新状态。二、Linux 上的软件是谁提供的理解了 Linux 软件安装的演进我们自然会产生下一个疑问我们在yum install时那些源源不断的软件包究竟出自谁手又是通过怎样的途径来到我们的机器上的这不仅仅是一个技术问题更关乎 Linux 庞大的生态系统。2.1 配套软件之于操作系统生态如何评估一款操作系统的优劣绝不仅仅是看它的内核版本有多高。而是由其生态所决定的。一个健康的操作系统生态是由多个维度共同构成的内核版本提供最底层的硬件管理和核心功能。文档与社区支持完善的文档和活跃的社区如 CentOS、Ubuntu 社区能帮助用户快速解决问题。用户群体与应用场景使用者越多生态越繁荣。核心问题解决能力是否能高效解决特定领域的问题。而在在这其中一款操作系统背后的配套软件无疑是生态中至关重要的一环。为什么因为操作系统本身只是一个平台真正为用户创造价值的是运行其上的应用程序。如果一个系统虽然高效但其上缺乏好用的编译器、Web服务器、数据库等配套软件或者这些软件的获取极其困难那么这个操作系统生态就是不完整的也难以被大众接受。Linux 的成功很大程度上归功于其背后极其丰富的开源软件生态。2.2 Linux 上软件的提供过程那么这些软件是如何从开发者的电脑上最终安装到我们的 Linux 机器上的呢这是一个多方协作的过程。我们将这个过程概括为三个主要阶段涉及三个核心主体2.2.1 开发者与开源商业模式一切源于开发者。他们编写源代码并通常选择开源的方式发布。这里有一个重要的知识点开源本质上是一种商业模式。它不一定意味着免费更多的是意味着代码的透明与协作。这种模式保证了软件来源的源源不断和持续更新。2.2.2 社区与构建系统开发者发布源码后Linux 发行版社区如 CentOS 社区、Ubuntu 社区 www.centos.org / ubuntu.org接过了接力棒。社区不仅提供云服务器更重要的是建立了一套构建系统。社区志愿者或员工会将源码在不同硬件架构上进行编译修复兼容性问题并将其打包成 RPM 或 DEB 格式。(社区运行不下去了依赖这个社区的公司会自发为这个社区捐款。)在这个过程中软件会被分类Base 源稳定源包含操作系统运行所必需的核心、稳定的软件。EPEL 源扩展源由 Fedora 社区维护新出的软件都是在这个里面等到一段时间后慢慢移入base源。有这两个源的原因是让软件池更加干净。除了这两个还有update等等其他的一些。2.2.3 我们的 Linux 机器与包管理器最后回到我们的 Linux 机器:我们的机器是如何知道去哪里下载这些软件的呢答案就在操作系统内部内置的配置文件中。在 CentOS 中这些配置文件通常位于/etc/yum.repos.d/目录下。当你运行yum install时yum或 apt会读取这些配置文件中的下载链接repo地址然后自动连接到社区提供的服务器进行下载和安装。2.3 镜像2.3.1镜像的概念在上述过程中存在一个现实问题社区的服务器通常在国外对于国内用户来说直接下载速度极慢且不稳定。为了解决这个问题镜像Mirror技术被广泛应用。什么是镜像国内的大型互联网公司如阿里、腾讯、百度、高校如清华、中科大会定期将国外社区服务器上的所有软件包“克隆”一份存放在自己位于国内的服务器上。这些国内的服务器就是国外原版服务器的镜像源。优势国内用户通过访问国内的镜像源可以获得极快的下载速度极大地提升了软件安装的体验。配置用户只需要修改 Linux 机器上/etc/yum.repos.d/目录下的配置文件将默认的国外下载链接切换为国内的镜像源链接即可。我们使用的是国内厂商的云服务器提供的Linux系统一般不需要自己配置yum源。使用虚拟机的需要自己配置yum源。2.3.2镜像源yum源的配置yum源都在哪儿如下文件夹/etc/yum.repos.d/我们打开它。[rootVM-0-9-opencloudos ~]# cd /etc/yum.repos.d/[rootVM-0-9-opencloudos yum.repos.d]# lltotal12-rw-r--r--1root root869Jun192025epol.repo -rw-r--r--1root root1101Nov2110:09 epol.repo.rpmnew -rw-r--r--1root root2897Jun192025OpenCloudOS.repo[rootVM-0-9-opencloudos yum.repos.d]# vim epol.repoepol.repoepol.repo.rpmnewOpenCloudOS.repo这些都是yum源。其中epol.repo是基础yum源。我们打开它使用vim我后面会专门讲[rootVM-0-9-opencloudos yum.repos.d]# vim epol.repo打开之后就是下面这个样子看比如说baseurlhttp://mirrors.tencentyun.com/epol/9/Everything/$basearch/os/你在装这个机器的时候就默认给你的 yum 源给他改了不是国外的那个而是云厂商的镜像不需要你手动配置。虚拟机里面的一般都是国外的原生镜像源。如下我们找到了一张图片。有的镜像源是开放的有的镜像源是企业内部的比如你直接把你刚才那个基础yum源的网址去复制到浏览器不一定能打开。这么一条yum源是怎么组成的好我们正式来修改yum源。备份原始 yum 源配置文件cp/etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup[rootCentOS-Base-repo]# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下载新的 yum 源配置文件阿里源curl-o/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo清空缓存并重新生成缓存sudoyum clean allsudoyum makecache更新系统软件包sudoyum update好的本期内容就到这里如果对你有帮助还不要忘记点赞三联支持。我是此方我们下期再见。bye!

相关文章:

Re:Linux系统篇(九)工具篇 · 一:3分钟学会yum,让软件安装像呼吸一样简单

◆ 博主名称: 晓此方-CSDN博客 大家好,欢迎来到晓此方的博客。 ⭐️Linux系列个人专栏: 【主题曲】Linux ⭐️Re系列专栏:我们思考 (Rethink) 我们重建 (Rebuild) 我们记录 (Record) 文章目录概要&序論一、在 Linux 环境下…...

基于PanoSim5.0虚拟仿真平台的自主代客泊车AVP系统开发教程

1. PanoSim5.0与AVP系统开发入门指南 第一次接触PanoSim5.0时,我和大多数开发者一样被它丰富的功能模块震撼到了。这个国产仿真平台不仅支持高精度的车辆动力学建模,还能实现逼真的传感器仿真和环境渲染。对于自主代客泊车(AVP)这种需要反复测试的场景来…...

Narrative-craft:工程化叙事框架的设计、实现与集成指南

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“Narrative-craft”,作者是chengjialu8888。光看名字,你可能会觉得这又是一个讲“叙事”或者“故事创作”的抽象工具。但点进去仔细研究后,我发现它远不止于此。这…...

Kali+MSF 安全攻防实操|Windows 渗透完整流程教程

入侵电脑,并没有我们想象的那么难,今天我们的文章主要是给一些基础比较薄弱的小伙伴们准备的,如果你从来没有利用msf进入过对方计算机,就赶紧找个风和日丽的下午,跟着博主一起来试试吧~ 01 什么是msf 演示环境 02 …...

IGH-1.6.2-创龙RK3506-RT-----8-----my_master.c讲解【应用层PDO读写】

本文解决三个应用层问题: 第一,如何从 TxPDO 里读取 3 个 KEY。 第二,如何向 RxPDO 写入 5 个 LED。 第三,如何新增一个 UINT8 数据 PDO。 当前工程里的过程数据指针是 domain_pd,它是应用层读写 PDO 的基础。LED 和 KEY 的字节偏移、bit 位置,都是前面注册 PDO entry …...

基于GitHub Actions的AI智能体部署指南:exoclaw-github实战解析

1. 项目概述:在GitHub里养一只会看代码的“螃蟹”如果你在GitHub上维护过开源项目,肯定遇到过这样的场景:新开的Issue描述不清,得来回问好几轮才能定位问题;PR提交上来,你得逐行审阅代码,既费时…...

ARM ETE Trace ID寄存器详解与应用

1. ARM ETE Trace ID寄存器概述在ARM架构的嵌入式调试系统中,Trace ID寄存器(TRCIDR)是嵌入式跟踪宏单元(ETE)的核心组件。这些寄存器提供了非侵入式的实时程序流分析能力,对于芯片验证、性能优化和系统调试具有不可替代的价值。ETE的Trace ID寄存器从TR…...

过零电压比较器基础知识及Multisim电路仿真

目录 2.9 过零电压比较器 2.9.1 过零电压比较器基础知识 1.电路结构与核心定义 2. 工作原理 3. 核心特点与用途 2.9.2 过零电压比较器Multisim电路仿真 2. 仿真逻辑与工作原理 3. 波形解读(右侧瞬态分析结果) 摘要:过零电压比较器是一种阈值电压为0V的单限比较器,利…...

OptiSearch:浏览器扩展实现AI与搜索引擎的无缝集成

1. 项目概述:当搜索遇到AI,一次查询,双重答案作为一名长期在信息检索和效率工具领域折腾的开发者,我一直在思考一个问题:我们每天在搜索引擎和AI聊天机器人之间要切换多少次标签页?搜索一个技术问题&#x…...

RAG:嵌入模型评估与选型

在RAG系统中,嵌入模型是检索质量的关键组件,它决定了系统能否真正“理解”用户意图并从海量知识中精准召回相关信息,其语义匹配精度直接决定了整个RAG的性能上限。 一、嵌入模型评估指标 1.1 公开基准 MTEB v2 是目前全球公认最权威的大规…...

AI技能开发脚手架:从零构建大模型应用的标准化起点

1. 项目概述:一个为AI技能开发量身定制的脚手架如果你正在或打算开发一个基于大语言模型的AI技能(Skill),无论是想集成到ChatGPT的GPTs里,还是想构建一个独立的AI Agent,那么你大概率会遇到一个共同的起点问…...

Gemini3.1Pro发布:多模态AI再进化

如果你最近也在跟踪 2026 年的 AI 动态,应该会发现一个很明显的变化:大模型的竞争重点,已经从“会不会生成内容”,转向“能不能真正理解复杂任务并参与工作流”。像KULAAI(dl.877ai.cn) 这类 AI 聚合平台&a…...

Nature级研究启动前必做这5步:Perplexity智能检索校准清单(20年顶刊审稿人压箱底工作流)

更多请点击: https://intelliparadigm.com 第一章:Nature级研究启动前的智能检索认知革命 在高影响力科研项目(如 Nature、Science 级别)立项初期,传统关键词检索已无法应对跨学科文献爆炸、语义歧义与隐性知识关联等…...

ARM HCR_EL2寄存器解析与虚拟化控制

1. ARM HCR_EL2寄存器架构解析HCR_EL2(Hypervisor Configuration Register)是ARMv8/v9架构中用于控制虚拟化行为的关键系统寄存器。作为Hypervisor的主要控制接口,它定义了EL2对低特权级(EL1/EL0)执行环境的监控策略。…...

Markdown元数据自动化管理:mdac-filler工具核心功能与实战指南

1. 项目概述:一个为Markdown文档自动填充元数据的工具如果你经常用Markdown写文档、博客或者项目README,肯定遇到过这样的场景:每次新建一个文件,都得手动去文件头部敲一堆“Front Matter”元数据,比如标题、日期、标签…...

开源状态监控工具openclaw-status:从原理到部署的完整实践指南

1. 项目概述:一个开源状态监控工具的诞生最近在折腾一个开源项目,叫openclaw-status,是vibe-with-me-tools组织下的一个子项目。简单来说,这是一个用于监控和展示各种服务、应用、设备状态的工具。听起来是不是有点像那些商业化的…...

蓝桥杯EDA国赛备赛

一.电路设计部分(1)13届国赛要求:数码管驱动电路设计区域内,使用给定的元器件(锁存器-U6、电容等)和网络标识补充完成数码管驱动电路,实现单片机对数码管的显示控制。参考答案:1. 10…...

基于Electron的本地字幕翻译工具开发全解析

1. 项目概述:一个本地化的字幕翻译利器最近在折腾一些海外纪录片和课程视频,发现一个挺普遍的需求:手头有外文字幕文件(比如SRT、ASS),想把它翻译成中文,但又不希望把视频或字幕上传到任何在线服…...

用ChatGPT批量生成高互动Instagram内容:5步工作流+4类避坑红线(数据实测CTR提升217%)

更多请点击: https://intelliparadigm.com 第一章:用ChatGPT批量生成高互动Instagram内容:5步工作流4类避坑红线(数据实测CTR提升217%) 借助ChatGPT API 与 Instagram Graph API 的协同调度,可构建轻量级自…...

深度强化学习在航天控制中的仿真到实物迁移挑战

1. 深度强化学习在航天控制领域的应用背景卫星近距离操作是航天任务中的一项关键技术挑战,涉及轨道交会、在轨服务、空间目标检测等多种场景。传统基于模型预测控制(MPC)的方法需要精确的环境动力学模型,而实际太空环境中存在诸多…...

Bunge组织架构重组:农业巨头的战略转型解析

1. 全球农业巨头Bunge的组织架构重组解析2017年11月,总部位于纽约白原市的Bunge Limited(NYSE: BG)宣布了一项重大组织架构调整,将原有的五个运营公司模式精简为三个地理区域——北美、南美和欧洲/亚洲。作为在40多个国家拥有约32…...

CxFlatUI——一款开源免费、现代化的 WinForm UI 控件库

文章目录一、前言二、项目概述三、应用场景四、功能模块五、功能特点六、功能演示七、源码地址一、前言 对于仍在使用 WinForms 技术栈构建企业内部系统、工具软件、桌面管理端、工业控制端或数据录入客户端的团队而言,传统 WinForms 默认控件在视觉表现、交互质感…...

千问 LeetCode 2281.巫师的总力量和 Python3实现

LeetCode 2281. 巫师的总力量和(Sum of Total Strength of Wizards) 是一道难度较高的题目,核心在于 贡献法 单调栈 前缀和的前缀和(prefix sum of prefix sums)。下面给出 清晰、高效、符合 Python3 习惯 的实现&am…...

ComfyUI全面掌握-知识点详解——自定义节点安装与首次 AI 绘图(实操+排错)

本文为系列第 6 篇(第一章第 5 个知识点),讲解自定义节点的作用与安装方式,手把手教读者加载默认工作流、完成首次 AI 绘图,解读核心参数并排查常见问题。 目录 一、引言:自定义节点是什么?为什…...

千问 LeetCode 2281.巫师的总力量和 public int totalStrength(int[] strength)

LeetCode 2281. 巫师的总力量和 是一道经典的 贡献法 + 单调栈 + 前缀和的前缀和 题目。题目要求对数组的所有非空连续子数组,计算: min(subarray) * sum(subarray) 的总和,并对 10^9 + 7 取模。 ✅ 解题思路(核心思想) 我们 不枚举所有子数组(那样是 O(n)),而是 枚…...

混合人工智能架构可以将神经形态系统转变为可靠的发现机器。

基于ON-OFF神经元的高阶伊辛机架构。图片来源:Nature Communications (2026)。DOI:10.1038/s41467-026-71937-4来源:https://techxplore.com/news/2026-05-hybrid-ai-architecture-neuromorphic-reliable.html主导世界的AI机器可以分为三大类…...

Python调用Claude API实战:非官方库集成与自动化应用指南

1. 项目概述与核心价值 最近在尝试构建一些智能化的个人工作流时,我遇到了一个痛点:如何将 Anthropic 公司强大的 Claude 模型,像使用 OpenAI 的 GPT 模型那样,方便地集成到自己的脚本、应用或者自动化工具里。OpenAI 的 API 封装…...

Cortex-R52 MBIST与March算法在嵌入式存储测试中的应用

1. Cortex-R52 MBIST测试技术解析在嵌入式系统开发中,存储器可靠性直接影响整个系统的稳定性。作为Arm Cortex-R系列中的实时处理器,Cortex-R52集成了PMC-R52(Programmable Memory Controller)模块,专门用于执行存储器…...

构建本地AI记忆系统:五大记忆库与心跳回忆机制详解

1. 项目概述:一个让AI助手真正“记住你”的本地记忆系统 如果你用过OpenClaw、Claude Code或者任何AI助手,肯定遇到过这样的场景:昨天刚跟它详细讨论了一个项目方案,今天再问,它要么含糊其辞,要么又得从头解…...

[具身智能-670]:ROS2 Node内部的工作原理:rclpy.init()、node = MyNode() 、rclpy.spin(node)

一、三个函数的一句话功能rclpy.init()初始化 ROS2 全局系统(上下文、信号处理、DDS)。node MyNode()创建节点对象,注册名字,分配通信句柄,不创建线程。rclpy.spin(node)进入主线程死循环,不断检查消息 / …...