Linux 软件管理
文章目录
- dpkg软件包管理工具
- APT软件包管理工具
- apt-get命令
- apt-cache
Linux操作系统主要支持RPM和Deb两种软件包管理工具。
RPM(Redhat Package Manager)是一种用于互联网下载包的打包及安装工具。
其原始设计理念是开放的,不仅可以在Redhat平台上使用,也可以在SUSE上使用。
dpkg软件包管理工具
dpkg创建于1993年,是最早的Deb包管理工具,可用于安装、编译、卸载和查询Deb软件包。
dpkg不能从镜像站获取软件包,主要用于对已下载到本地和已安装的软件包进行管理。
dpkg在安装软件包时,无法检查软件包的依赖关系,
因此在对一个软件的依赖关系不清楚的情况下,使用dpkg对用户的开发工作不太友好。
为了帮助用户获取软件包(获取存在依赖关系的软件包),则出现了更高级的APT软件包管理工具。
dpkg软件包管理命令的语法格式如下所示。
dpkg [选项] <package>
选项 | 功能 |
---|---|
-i | 安装一个已经下载至本地的.deb 软件包 |
-s | 检测软件包的安装状态 |
-r | 移除一个已安装成功的软件包 |
-L | 列出安装的软件包清单 |
-P | 移除已经安装的软件包以及配置文件 |
如果已经获取到Deb软件包,并且确定需要安装该软件包时,就可以使用命令“dpkg –i”进行安装,
该命令并不能自动解决Deb软件包的依赖性问题。
选择已经下载的本地安装包进行测试。
用户在不确定某一软件包是否安装的情况下,
为了避免出现软件包重复安装或者未安装导致系统服务无法使用,
可以使用命令“dpkg -s”检测软件包的安装状态。
用户不再需要使用某个软件包时,可以考虑将其从系统中移除,从而减少磁盘空间的占用。
命令“dpkg -r”与“dpkg -P”都可以实现对软件包的卸载。
其中“dpkg -r”只卸载软件包安装到系统中的文件,但保留原有的配置文件,
如果重新安装该软件,仍然可以使用原有的配置;
命令“dpkg -P”删除软件的同时清除原有的配置文件。
上述两种方式在卸载文件时都不解决软件包的依赖性问题,只会显示相应的提示。
因此使用时需要慎重考虑依赖性问题,避免出现卸载失败,导致产生垃圾文件。
用户需要查询与某个系统功能相关的软件包是否安装,
但又不确定软件包的具体名字与信息时,可以使用命令“dpkg -l”进行查询,
其功能为查看当前系统中已经安装的所有软件包信息。
一般可以借助管道符号“|”进行分页的查询
sudo dpkg -l | less # 查看软件包信息
用户需要获取软件包安装到系统中的文件列表时,可以使用命令“dpkg -L”。
通俗地说,软件包安装到系统之后,其产生的各种配置文件可能会分布在系统的各个子目录中,
用户需要对某些配置文件进行重新设置时,即可通过此命令进行寻找。
sudo dpkg -L gcc # 查看软件配置文件的路径
软件包的命名规则:Filename_Version_Reversion_Architechure.deb
Filename - 代表软件包的名字;
Version - 代表软件版本;
Reversion - 代表修订版本;
Architechure - 代表体系结构。版本修订由系统开发者或软件创建人指定。
Linux操作系统为每一个软件包设置了优先级,用来作为软件包管理器进行安装或卸载的依据。
在Linux操作系统中,任何高优先级的软件包都不能依赖于低优先级的软件包。
试想如果一个用来维护整个系统运行的软件包却依赖于一个可选择安装的软件包,
那么被依赖的软件如果不安装,系统必然将无法运行。
使用命令“dpkg -l”除了可以显示已经安装的软件包以外,还可以显示软件包的状态,
这些状态记录了用户的安装行为。Ubuntu对软件包定义了两种状态。
(1)期望状态:用户希望某个软件包处于的状态。
(2)当前状态:用户操作软件包后的状态。
类别 | 定义 |
---|---|
required(必须) | 该级别软件包为保证系统正常运行所必须的 |
important(重要) | 该级别软件包实现系统底层功能,若缺少将会影响系统正常使用 |
standard(基本) | 该级别软件包是操作系统的标准件 |
optional(可选) | 该级别软件包是否安装不影响系统的正常运行 |
extra(额外) | 该级别软件包可能与其他高级别软件包存在冲突 |
类别 | 状态 | 状态符 | 描述 |
---|---|---|---|
期望状态 | 未知(unknown) | u | 用户对软件包的未定义具体的操作 |
期望状态 | 已安装(install) | i | 软件包已安装或升级 |
期望状态 | 删除(remove) | r | 软件包已删除,不删除配置文件 |
期望状态 | 清除(purge) | p | 用户期望完全删除软件包,包括配置文件 |
期望状态 | 保持(hold) | h | 用户希望软件包保持现有状态 |
期望状态 | 未安装(Not) | n | 软件包的描述信息已知,未在系统中安装 |
当前状态 | 已安装(installed) | i | 已完全安装配置了该软件包 |
当前状态 | 仅存配置(config - file) | c | 软件包已删除,配置文件依然保留 |
当前状态 | 仅解压缩(unpacked) | U | 已将软件包中的所有文件释放,但未执行安装和配置 |
当前状态 | 配置失败(Failed - config) | F | 尝试安装此软件,但由于错误没有完成安装 |
当前状态 | 不完全安装(Half - installed) | H | 已经开始提取后的配置工作,但由于错误没有完成安装 |
依赖关系 | 关系描述 |
---|---|
依赖(depends) | 运行软件包 A 必须安装软件包 B,可能还需要软件包 B 的特定版本 |
推荐(recommends) | 软件包 A 缺少的用户需要使用的功能可以由软件包 B 提供 |
建议(suggests) | 软件包 B 能够增强软件包 A 的功能 |
替换(replaces) | 软件包 B 安装的文件被软件包 A 的文件删除或覆盖 |
冲突(conflicts) | 如果系统中安装了软件包 B,则软件包 A 将无法运行 |
提供(provides) | 软件包 A 中包含了软件包 B 的所有文件和功能 |
APT软件包管理工具
APT(Advanced Packaging Tool)是一种快速、实用、高效的软件包管理工具。
当软件包更新时,能自动管理关联文件和维护已有的配置文件。
Ubuntu将所有的开发软件包存放在Internet上的镜像站点中,用户可以选择合适的镜像站点作为软件源,然后利用APT工具的帮助,完成对软件包的管理维护工作,包括从软件镜像站点获取相关软件包、安装升级软件包、自动检测软件包依赖关系等。
最常用的APT实用程序有apt-get、apt-cache等。
APT软件包管理工具不同于dpkg,其解决了一个重要的问题,就是软件卸载过程中的软件包的依赖性问题。
Ubuntu系统采用集中式的软件仓库机制,将各种类型的软件包存放在软件仓库中,然后将仓库置于各种镜像服务器中,并保持一致。对于用户而言,这些散布在互联网中的服务器就是软件源(Reposity),或者称为镜像源站点。服务器会定期上传软件包的最新版本,这样Ubuntu的用户就可以随时获取最新版本的软件包由于每个用户所处的网络环境不同,因此用户并不是随意地访问镜像站点。
Ubuntu系统使用软件源配置文件“/etc/apt/sources.list”列出最适合访问的镜像站点地址,从而保证用户可以有选择地访问。
软件源配置文件只是列出了Ubuntu系统可以访问的镜像站点地址,并没有明确镜像站点中的软件资源。
因此,安装软件包会导致查询整个服务器上的所有资源,工作效率是很低的。
于是就有必要为这些软件资源建立索引文件,以便于主机进行查询。
APT相关配置文件
(1)镜像站配置文件
“/etc/apt/sources.list”是APT镜像站配置文件,初始存放的是Ubuntu的官方镜像站点地址,用户从该地址获取所需的软件包资源。
(2)本地索引列表
“/var/lib/apt/lists”目录中存放的是APT本地软件包的索引文件。每一个索引文件与“/etc/apt/sources.list”文件中配置的每一个仓库相对应,并且列出相应软件仓库中每一个软件的最新版本信息。APT通过这些索引文件确定软件包的安装状态等信息。
(3)本地文件下载缓存
“/var/cache/apt/archives”目录是APT的本地缓存目录,用来保存最新下载的Deb软件包。
apt-get命令
在Ubuntu系统中,通常使用apt-get管理软件包。
在了解软件包名字的情况下,通过apt-get可以自动完成软件包的获取、更新、编译、卸载等,
并检测软件包的依赖关系。
apt-get会自动下载安装与原软件包具有依赖性关系的软件包,
但不会下载与原软件包存在推荐和建议关系的软件包。
需要注意的是,apt-get本身不具备管理软件功能,只提供一个软件包管理的命令行平台。
通过在该平台运行各种子命令,可完成具体的管理任务。
apt-get [子命令] [子选项] 软件包名
子命令 | 功能描述 |
---|---|
update | 下载更新软件包列表信息 |
upgrade | 将系统中所有软件包升级到最新版本 |
install | 下载所需安装包并安装配置 |
remove | 卸载软件包 |
autoremove | 将不满足依赖关系的软件包自动卸载 |
source | 下载源码包 |
build - dep | 为源码包构建编译环境 |
dist - upgrade | 发布版升级 |
dselect - upgrade | 根据 dselect 的选择来进行软件包升级 |
clean | 删除缓存区中所有已经下载的包文件 |
autoclean | 删除缓存区中老版本的已下载的包文件 |
check | 检查系统中依赖关系的完整性 |
子选项 | 选项描述 |
---|---|
-d | 仅下载软件包,不安装或解压 |
-f | 修复系统中存在的软件包依赖性问题 |
-m | 当出现缺少关联软件包时,仍试图继续进行 |
-q | 将输出作为日志保留,不获取命令执行进度 |
-purge | 与 remove 子命令一起使用,删除软件包以及配置文件(完全删除) |
-reinstall | 与 install 子命令一起使用,重新安装软件包 |
-b | 在下载完源码包后,编译生成相应的软件包 |
-s | 不做实际操作,只模拟命令执行结果 |
-y | 对执行过程中的所有询问都执行肯定的回答,不用手动输入回应 |
-u | 获取已升级的软件包列表 |
-h | 获取帮助信息 |
-v | 获取 apt-get 版本号 |
将表所示的子命令和子选项进行合理搭配即可实现不同的需求。
其中“apt-get check”与“apt-get install -f”通常组合使用,
即检查软件包依赖关系之后,进行依赖关系修复。
使用命令“apt-get update”可刷新软件源,并建立一个更新软件包列表。
具体而言,执行命令“apt-get update”会扫描软件源服务器,
并为该服务器的软件包资源建立索引文件,并保存在“/var/lib/apt/lists”目录中。
当用户需要安装、更新软件时,系统将根据这些索引文件,向服务器申请资源。
因此,在计算机空闲情况下,可经常使用“apt-get update”进行软件源刷新,
以便于用户获取或更新需要的软件服务。
用户在通过apt-get下载软件时,经常会遇到下载慢或卡顿停止的现象。
这与Ubuntu系统的默认镜像站点有很大关系,
一般情况下“/etc/apt/sources.list”中设置的站点为Ubuntu官方镜像站点,这会导致默认从国外下载软件。
针对上述情况,用户可选择将软件源更换为国内的镜像站点,这样软件下载速度会变得更快。
最好选择与自己所使用的Ubuntu版本一致的镜像源。
例如,输入“Ubuntu 16.04更新源”进行搜索,即可获取到网易云、阿里云、高等院校等各种开源镜像站。
更换镜像源的步骤如下所示。
(1)对镜像站点配置文件进行备份,避免出现修改失误导致文件损坏的情况。
(2)通过gedit编辑器打开配置文件,并将文件中的所有内容全部删除。
(3)将图中指示复制的部分,复制到配置文件中,保存退出。
(4)刷新软件源,获取服务器中软件资源并建立索引。如例所示。
linux@ubuntu:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.old # (1)
linux@ubuntu:~$ sudo gedit /etc/apt/sources.list # (2)
linux@ubuntu:~$ sudo apt-get update # (4)
使用命令“apt-get upgrade”即可将系统中所有软件包一次性升级到最新版
(如需获取软件包并安装,则使用“apt-get install”)。
此时系统将会扫描软件包更新列表(update刷新列表),找到最新版软件包;
然后检查软件包的依懒关系,找到支持该软件正常运行的其他所有软件包,并从镜像站点下载;
最后解压软件包,并自动完成安装与配置。
示例:下载安装XChat聊天室软件的过程
软件包列表读取完成后,apt-get开始检查xchat软件包的依赖关系,
可以看到与xchat存在依赖关系的软件包有4个,
分别是tcl8.5、liblaunchpad-integration1、libsexy2、xchat-common。
选择继续执行后,开始下载软件包,全部下载结束后,软件包开始解压缩,
并按照依赖关系的先后顺序,依次完成安装与配置。
(1)不完全卸载:apt-get remove,删除一个软件包时,也会删除与该软件包有依赖关系的其他软件包。
(2)完全卸载:apt-get --purge remove,在卸载软件包文件的同时,删除该软件包所使用的配置文件。
linux@ubuntu:~$ sudo apt-get remove xchat
linux@ubuntu:~$ sudo apt-get --purge remove xchat
当已经安装的软件包出现损坏的情况需要修复,或者需要更新软件包中的文件到最新版本,
可以使用命令“apt-get --reinstall install”进行软件包的重新安装。
如果软件包在安装过程中产生故障导致安装中断,则可能会造成关联的软件包只安装了一部分。
此时可能会出现既不能重新安装也不能删除的情况。
如出现该情况,则可以使用“apt-get -f install”命令修复软件包依赖关系。
另外,也可以使用“apt-get check”检查依赖关系。
如果用户认为软件包缓存区中的文件没有任何价值,则可以选择将其删除。
命令“apt-get clean”用于清理整个软件包缓存区。
如果用户希望保留最新版本的软件包,只删除其余版本的软件包,则可以使用“apt-get autoclean”。
linux@ubuntu:~$ ls /var/cache/apt/archives
linux@ubuntu:~$ sudo apt-get autoclean
apt-cache
apt-cache是APT软件包管理工具的另一个工具集。
不同的子命令与子选项配合使用,可实现查询软件源和软件包的相关信息以及软件包依赖关系。
apt-cache命令的语法格式如下所示。
通过在该平台运行各种子命令,可完成具体的管理任务。
apt-cache [子选项] [子命令] 软件包名apt-cache stats # 查询数据源的统计信息
apt-cache search xchat # 通过关键字查询软件包信息
apt-cache show gcc # 用来获取指定软件包的详细信息
apt-cache dumpavail # 获取软件包信息
apt-cache showpkg # 获取软件包信息
apt-cache policy quota # 获取软件包当前的安装状态,确认软件包的版本
子选项 | 描述 |
---|---|
-p | 软件包缓存 |
-s | 源代码包的缓存 |
-q | 关闭进度获取 |
-i | 与 unmet 命令一起使用,获取重要的依赖关系 |
-c | 读取指定的配置文件 |
-h | 获取帮助信息 |
子命令 | 描述 |
---|---|
showpkg | 获取二进制软件包的常规描述符信息 |
showsrc | 获取源码包的详细描述信息 |
show | 获取二进制软件包的详细描述信息 |
stats | 获取软件源的基本统计信息 |
dump | 获取软件源的所有软件包的简要信息 |
dumpavail | 获取当前系统中已安装的所有软件包的描述信息 |
unmet | 获取所有未满足的依赖关系 |
search | 根据正则表达式检索软件包 |
depends | 获取该软件包的依赖信息 |
rdepends | 获取所有依赖于该软件包的软件包 |
pkgnames | 列出所有已安装软件包的名字 |
policy | 获取软件包当前的安装状态 |
相关文章:
Linux 软件管理
文章目录 dpkg软件包管理工具APT软件包管理工具apt-get命令apt-cache Linux操作系统主要支持RPM和Deb两种软件包管理工具。 RPM(Redhat Package Manager)是一种用于互联网下载包的打包及安装工具。 其原始设计理念是开放的,不仅可以在Redhat平…...
电力实训中应注意以下安全事项
电力实训中应注意以下安全事项: 一、环境准备与设备检查 保持实训场地整洁通风,清除易燃物与杂物,确保操作空间充足。 电路容量需匹配设备功率,安装漏电保护器及空气开关。 非带电金属设备外壳应接地,定期检查线路…...
序列化-流量统计
新建文件夹及文件 编写流量统计的Bean对象 package com.root.mapreduce.writable; import org.apache.hadoop.io.Writable; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; //1 继承Writable接口 public class FlowBean implements Writab…...
矩阵游戏--二分图的匈牙利算法
https://www.luogu.com.cn/problem/P1129 学习路线---https://blog.csdn.net/qq_39304630/article/details/108135381 1.二分图就是两个独立的两个集合,如这里是行和列 2.匈牙利匹配就是媒婆拉媒,没伴侣或者伴侣可以换就将当前的塞给她 3.最后true的…...
spring security解析
Spring Security 中文文档 :: Spring Security Reference 1. 密码存储 最早是明文存储,但是攻击者获得数据库的数据后就能得到用户密码。 于是将密码单向hash后存储,然后攻击者利用彩虹表(算法高级(23)-彩虹表&…...
【技巧】chol分解时,矩阵非正定时的临时补救措施,以MATLAB为例
针对非正定矩阵无法进行标准Cholesky分解的解决方案及MATLAB代码实现,结合不同应用场景的需求分层解析 文章目录 数值修正方法修正Cholesky分解LDL分解 矩阵变换与重构特征值修正乘积法构造正定矩阵 替代分解与降维方法QR分解与SVD主成分分析(PCA&#x…...
Hi3518E官方录像例程源码流程分析(三)
文章目录 第二阶段,初始化第一阶段计算好的参数SAMPLE_COMM_SYS_Init 第三阶段,启动VI和chn捕获SAMPLE_COMM_VI_StartVi()SAMPLE_COMM_VI_StartBT656小阶段1 SAMPLE_COMM_VI_StartMIPI_BT1120()小阶段1 SAM…...
37.Java 异步回调(CompletableFuture 概述、CompletableFuture 使用)
一、CompletableFuture 概述 CompletableFuture 在 Java 里面被用于异步编程,异步通常意味着非阻塞,可以使得任务单独运行在与主线程分离的其他线程中,并且通过回调可以在主线程中得到异步任务的执行状态,是否完成,和是…...
数学建模AI智能体(4.16大更新)
别的不说就说下面这几点,年初内卷到现在,就现阶段AI水平,卷出了我比较满意的作品,这里分享给各位同学,让你们少走弯路: 1.轻松辅导学生 2.帮助学习 3.突破知识壁垒,缩短与大佬的差距 4.打破…...
Python 第三节 流程控制
目录 1.分支结构 条件控制 2.循环语句 3.循环控制语句 4.嵌套循环 控制代码执行的顺序 顺序结构分支结构循环结构 1.分支结构 条件控制 让代码有自主选择的能力, 当满足某个条件的时候执行对应的操作 1.1 if语句 语法格式 if 判断条件:执行语句(当判断条件为真的时候执…...
深入探究Linux编译器gcc/g++:从基础到进阶
目录 一、编译的幕后流程 (一)预处理:宏与文件的魔法融合 (二)编译:代码规范性的严格审视 (三)汇编:迈向机器语言的关键一步 (四)连接&a…...
用户态网络缓冲区
用户态网络缓冲区 缓冲区作用 用于临时存储数据以便高效地进行读写操作。用户态缓冲区位于用户空间中,与内核空间中的缓冲区(内核缓冲区)相对。 用户态接受缓存区 粘包问题,缓存非完整数据包 生产者的速度 > 消费者的速…...
解决Flutter 2.10.5在升级Xcode 16后的各种报错
Flutter 环境 Flutter version 2.10.5Dart version 2.16.2DevTools version 2.9.2CocoaPods version 1.16.2Xcode 16.3 问题一:XCResult parsing error: Error: This command is deprecated and will be removed in a future release, --legacy flag is required t…...
【学习笔记】计算机网络(八)—— 音频/视频服务
第8章 互联网上的音频/视频服务 文章目录 第8章 互联网上的音频/视频服务8.1概述8.2 流式存储音频/视频8.2.1 具有元文件的万维网服务器8.2.2 媒体服务器8.2.3 实时流式协议 RTSP 8.3 交互式音频/视频8.3.1 IP 电话概述8.3.2 IP电话所需要的几种应用协议8.3.3 实时运输协议 RTP…...
OpenCv高阶(三)——图像的直方图、图像直方图的均衡化
目录 一、直方图 1、计算并显示直方图 2、使用matplotlib方法绘制直方图(不划分小的子区间) 3、使用opencv的方法绘制直方图 (划分16个小的子亮度区间) 4、绘制彩色图像的直方图,将各个通道的直方图值都画出来 二、…...
OpenCV 图形API(39)图像滤波----同时计算图像在 X 和 Y 方向上的一阶导数函数SobelXY()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::gapi::SobelXY 函数是 OpenCV 的 G-API 模块中用于同时计算图像在 X 和 Y 方向上的一阶导数(即 Sobel 边缘检测)的一…...
领麦微:电炖锅红外测温传感器应用,告别糊锅干烧
领麦微红外测温传感器在电炖锅中的应用,特别是在应对高温环境、实现精准测温以保留食材营养、有效防止干烧与糊锅现象,以及提供安全烹饪新保障等方面,展现出了其独特的技术优势和应用价值。以下是对这些应用特点的深入剖析: 一、高…...
(Linux操作系统)自定义shell的实现
讲自定义shell之前我们先看一个东西,那就是进程替换,我们想要父进程fork之后的子进程之后运行一个全新的程序那该怎么办呢? 这里就要用一个叫做进程替换的一个东西了,程序替换是通过特定的接⼝,加载磁盘上的⼀个全新的…...
安卓jks提取pem和pk8文件
你需要安装: Java Keytool OpenSSL 系统要求:Mac/Linux/Windows 都可以。 keytool -importkeystore -srckeystore holder-keystore.jks -destkeystore holder-keystore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass yzhafzKPj4 -dest…...
人脸检测-人脸关键点-人脸识别-人脸打卡-haar-hog-cnn-ssd-mtcnn-lbph-eigenface-resnet
链接:https://pan.baidu.com/s/1VhGdyIW5GWuTNkfbCEc5eA?pwdz0eo 提取码:z0eo --来自百度网盘超级会员V2的分享 创建环境 conda create -n 环境名称python3.8 conda activate 环境名称 然后配置环境 pip install requirements.txt 运行程序&…...
Gobuster :dir、dns、vhost
Gobuster 及其相关技术知识必须用于法律明确允许的场景!!! 1. dir 模式:目录/文件枚举 用途:扫描目标网站的目录和文件,常用于发现隐藏资源或敏感文件。 关键参数: -u URL&am…...
Vue+Threejs项目性能优化
使用Vue和Three.js开发的项目,但运行一段时间后电脑内存就满了,导致性能下降甚至崩溃,分析内存泄漏的原因优化如下: 资源释放管理 手动释放Three.js资源: 在Vue组件的beforeDestroy或destroyed生命周期中࿰…...
Leetcode - 双周赛135
目录 一、3512. 使数组和能被 K 整除的最少操作次数二、3513. 不同 XOR 三元组的数目 I三、3514. 不同 XOR 三元组的数目 II四、3515. 带权树中的最短路径 一、3512. 使数组和能被 K 整除的最少操作次数 题目链接 本题实际上求的就是数组 nums 和的余数,代码如下&…...
[特殊字符] PostgreSQL MCP 开发指南
简介 🚀 PostgreSQL MCP 是一个基于 FastMCP 框架的 PostgreSQL 数据库交互服务。它提供了一套简单易用的工具函数,让你能够通过 API 方式与 PostgreSQL 数据库进行交互。 功能特点 ✨ 🔄 数据库连接管理与重试机制🔍 执行 SQL…...
等离子体浸没离子注入(PIII)
一、PIII 是什么?基本原理和工艺 想象一下,你有一块金属或者硅片(就是做芯片的那种材料),你想给它的表面“升级”,让它变得更硬、更耐磨,或者有其他特殊功能。怎么做呢?PIII 就像是用…...
TinyEngine 2.4版本正式发布:文档全面开源,实现主题自定义,体验焕新升级!
本文由体验技术团队李璇原创。 前言 TinyEngine低代码引擎使开发者能够定制低代码平台。它是低代码平台的底座,提供可视化搭建页面等基础能力,既可以通过线上搭配组合,也可以通过cli创建个人工程进行二次开发,实时定制出自己的低…...
gemini讲USRP
您好!USRP (Universal Software Radio Peripheral) 是一种软件无线电 (SDR) 设备系列,由 Ettus Research (现为 National Instruments 旗下公司) 开发和销售。USRP 提供了一个灵活且可配置的平台,用于设计、原型开发和部署各种无线通信系统。…...
智能超表面通信控制板--通道电压并行控制版
可重构智能超表面(Reconfigurable Intelligent Surface, RIS)技术是一种新兴的人工电磁表面技术,它通过可编程的方式对电磁波进行智能调控,从而在多个领域展现出巨大的应用潜力。超表面具有低成本、低能耗、可编程、易部署等特点&…...
Spring Task(笔记)
介绍: 应用场景: cron表达式: cron表达式在线生成器: 入门案例:...
YOLOv3的改进思路与方法:解析技术难点与创新突破
YOLOv3作为目标检测领域的经典算法,凭借其出色的速度和性能平衡获得了广泛应用。然而,随着计算机视觉技术的不断发展,YOLOv3在某些场景下的局限性也逐渐显现。本文将深入分析YOLOv3的不足之处,并系统介绍常见的改进策略和方法&…...
【解锁元生代】ComfyUI工作流与云原生后端的深度融合:下一代AIGC开发范式革命
## 从单机到云原生的认知跃迁 当2023年Stable Diffusion WebUI还在争夺本地显卡性能时,ComfyUI已悄然开启工作流模块化革命;当2024年AI绘画工具陷入"参数调优内卷",云原生技术正重塑AI开发的基础设施层。二者的深度融合࿰…...
shell 编程之正则表达式与文本处理器
目录 一、正则表达式 1. 概念 2. 作用 3. 分类 二、基础正则表达式(BRE) grep 命令选项 三、扩展正则表达式(ERE) 与 BRE 的区别 四、文本处理器 1. sed 工具 2. awk 工具 五、总结 总结对比 元字符总结 工具对比与…...
Shell编程之正则表达式与文本处理器
目录 一、引言 二、正则表达式 2.1 定义与用途 2.2 基础正则表达式 2.2.1 查找特定字符 2.2.2 利用中括号 “[]” 查找集合字符 2.2.3 查找行首 “^” 与行尾字符 “$” 2.2.4 查找任意一个字符 “.” 与重复字符 “*” 2.2.5 查找连续字符范围 “{}” 2.3 元字符总结…...
TMDOG——语言大模型进行意图分析驱动后端实践
语言大模型进行意图分析驱动后端实践 项目概述 项目地址:https://github.com/TMDOG666/AI_Backend_Demo 该项目通过语言大模型,通过分析用户意图、拆分任务、构建API调用链来驱动后端实践。 以一个简单的教务系统后端为例,将教务系统后端…...
未启用CUDA支持的PyTorch环境** 中使用GPU加速解决方案
1. 错误原因分析 根本问题:当前安装的PyTorch是CPU版本,无法调用GPU硬件加速。当运行以下代码时会报错:model YOLO("yolov8n.pt").to("cuda") # 或 .cuda()2. 解决方案步骤 步骤1:验证CUDA可用性 在Pyth…...
【mysql】Mac 通过 brew 安装 mysql 、启动以及密码设置
Mac 通过 brew 安装 mysql 、启动以及密码设置 使用 brew 安装 mysqlmysql 启动mysql密码设置参考文章: 使用 brew 安装 mysql brew install mysqlmysql 启动 下载完毕,终端告诉我们mysql数据库没有设置密码的,我们可以直接执行 mysql -u r…...
Vue2 nextTick
核心源码位置 Vue 2 的 nextTick 实现主要在 src/core/util/next-tick.js 文件中。 完整源码结构 import { noop } from shared/util import { handleError } from ./error import { isIE, isIOS, isNative } from ./envexport let isUsingMicroTask falseconst callbacks …...
Ubuntu 安装 NVIDIA显卡驱动、CUDA 以及 CuDNN工具
文章目录 一、简介二、查看显卡设备三、安装显卡驱动四、安装CUDA工具箱五、安装CuDNN小结 一、简介 NVIDIA 驱动:操作系统与 NVIDIA 显卡硬件之间的桥梁,负责驱动显卡硬件的运行,显卡的“底层操作系统”,一切的基础。CUDA&#…...
LeetCode算法题(Go语言实现)_50
题目 现有一个包含所有正整数的集合 [1, 2, 3, 4, 5, …] 。 实现 SmallestInfiniteSet 类: SmallestInfiniteSet() 初始化 SmallestInfiniteSet 对象以包含 所有 正整数。 int popSmallest() 移除 并返回该无限集中的最小整数。 void addBack(int num) 如果正整数 …...
idea报错java: 非法字符: ‘\ufeff‘解决方案
解决方案步骤以及说明 BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题? 最后重新编译,即可运行!!! BOM是什么? \ufeff 是 Unicode 中的 BOM࿰…...
WPF依赖注入IHostApplicationLifetime关闭程序
WPF依赖注入IHostApplicationLifetime关闭程序 使用Application.Current.Shutdown();退出会报异常 应该使用 app.Dispatcher.InvokeShutdown(); Application.Current.Shutdown();app.Dispatcher.InvokeShutdown();static App app new();[STAThread]public static void Main(…...
如何在 IntelliJ IDEA 中安装通义灵码 - AI编程助手提升开发效率
随着人工智能技术的飞速发展,AI 编程助手已成为提升开发效率和代码质量的强大工具。在众多 AI 编程助手之中,阿里云推出的通义灵码凭借其智能代码补全、代码解释、生成单元测试等丰富功能,脱颖而出,为开发者带来了全新的编程体验。…...
【力扣】两两交换链表中的节点
两两交换链表中的节点 代码: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *n…...
数据共享交换平台之文件交换
数据共享交换平台的文件交换管理功能提供部门与部门之间的文件交换通道,满足跨部门之间文件交换需求。文件交换需要能够按照交换业务场景对交换通道进行分类管理。文件交换管理需满足如下要求: 1.文件交换统计:支持查看本部门与其他部门之间…...
什么是全球代理?如何选择全球代理服务?
在全球化不断深化的今天,互联网已经成为人类沟通、工作和学习的重要纽带。而全球代理则是这一纽带上的关键技术之一,它赋予了我们探索不同地区网络资源的能力。今天,我们来聊聊什么是全球代理、它能做什么,以及如何选择合适的全球…...
Spring Boot整合Kafka的详细步骤
1. 安装Kafka 下载Kafka:从Kafka官网下载最新版本的Kafka。 解压并启动: 解压Kafka文件后,进入bin目录。 启动ZooKeeper:./zookeeper-server-start.sh ../config/zookeeper.properties。 启动Kafka:./kafka-server-…...
【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——USB WIFI测试 #WIFI蓝牙二合一 #RTL8733BU
1)实验平台:正点原子ATK-DLMP257B开发板 2)浏览产品:https://www.alientek.com/Product_Details/135.html 3)全套实验源码手册视频下载:正点原子资料下载中心 文章目录 第四章 ATK-DLMP257B功能测试——USB…...
Doip功能寻址走UDP协议
目前使用 connect()函数的UDP客户端 ,这里接收数据 解析的地方 查看一下。 如果使用 bind()、sendto()、recvfrom() 组合 那么返回值 和发送要在做调整,,根据业务需要后续在调整 其余的 和原来的 逻辑都是一样的,只是协议变了而已。 if serv…...
硬件电路设计之51单片机(2)
声明:绘制原理图和PCB的软件为嘉立创EDA。根据B站尚硅谷嵌入式之原理图&PCB设计教程学习所作个人用笔记。 目录 一、原理图详解 1、TypeC接口 (1)TypeC接口介绍 (2)TypeC原理图 2、5V转3.3V 3、单片机电源开…...
Deeplizard 深度学习课程(一)—— Pytorch 和 Tensor 简介
前言 该pytorch笔记参考deeplizard官方网站课程,有相应视频和博客,链接如下: deeplizardhttps://deeplizard.com/learn/video/v5cngxo4mIg 1.Pytorch 简介 PyTorch 是一个深度学习框架和一个科学计算包。PyTorch 的科学计算方面主要是 PyTo…...