【Linux】 rpm安装包保存到本地并批量安装
目录
一、开启rpm安装包缓存到本地仓库
1. 修改yum.conf文件
2. 清理yum缓存
3. yum命令安装软件包
二、如何将rpm安装包保存到指定目录
方法一:yumdownloader
1. 安装yum-utils
2. yumdownloader命令参数说明
3. yumdownloader安装示例
方法二:yum --downloadonly
方法三:reposync
1. reposync命令参数说明
2. 查看yum源对应的仓库
3. 下载对应仓库下的rpm包到指定目录
4. reposync其他命令
三、rpm包批量安装
Linux系统的时候大家都有一个烦恼,用yum安装的软件包不知道去哪里了,不像windows那样直观可以将安装包放到一个地方保存起来,接下来为大家介绍yum安装后如果保存rpm包到本地。
一、开启rpm安装包缓存到本地仓库
1. 修改yum.conf文件
sed -i "s/keepcache=0/keepcache=1/g" /etc/yum.conf 修改配置文件中的keepcache参数
如果没有keepcache参数,需要手动加到配置文件yum.conf
2. 清理yum缓存
yum clean all
3. yum命令安装软件包
yum install -y httpd
可以看到已经安装到BaseOS仓库和AppStream仓库

查看安装目录如下,根据提示可以在具体的仓库找到对应的rpm包:

可以发现安装一个httpd相关依赖安装在不同的仓库:BaseOS仓库和AppStream仓库
如何可以指定所安装的rpm包保存到一个指定的文件下?下面是具体方法。
二、如何将rpm安装包保存到指定目录
方法一:yumdownloader
如果只想通过yum下载软件的软件包,但是不需要进行安装的话,可以使用yumdownloader命令;
1. 安装yum-utils
yumdownloader命令在软件包【yum-utils】里面,需要安装yum-utils
# yum install -y yum-utils
2. yumdownloader命令参数说明
usage: dnf download [-c [config file]] [-q] [-v] [--version]
[--installroot [path]] [--nodocs] [--noplugins]
[--enableplugin [plugin]] [--disableplugin [plugin]]
[--releasever RELEASEVER] [--setopt SETOPTS]
[--skip-broken] [-h] [--allowerasing] [-b | --nobest] [-C]
[-R [minutes]] [-d [debug level]] [--debugsolver]
[--showduplicates] [-e ERRORLEVEL] [--obsoletes]
[--rpmverbosity [debug level name]] [-y] [--assumeno]
[--enablerepo [repo]] [--disablerepo [repo] | --repo
[repo]] [--enable | --disable] [-x [package]]
[--disableexcludes [repo]] [--repofrompath [repo,path]]
[--noautoremove] [--nogpgcheck] [--color COLOR]
[--refresh] [-4] [-6] [--destdir DESTDIR] [--downloadonly]
[--comment COMMENT] [--bugfix] [--enhancement]
[--newpackage] [--security] [--advisory ADVISORY]
[--bz BUGZILLA] [--cve CVES]
[--sec-severity {Critical,Important,Moderate,Low}]
[--forcearch ARCH] [--source] [--debuginfo]
[--debugsource] [--arch [arch]] [--resolve] [--alldeps]
[--url] [--urlprotocols {http,https,rsync,ftp}]
packages [packages ...]
General DNF options:
- -c [config file], --config [config file]
- 配置文件位置
- -q, --quiet 静默执行
- -v, --verbose 详尽执行
- --version 显示 DNF 的版本并退出
- --installroot [path] 设置目标根目录
- --nodocs 不要安装文档
- --noplugins 禁用所有插件
- --enableplugin [plugin]
- 启用指定名称的插件
- --disableplugin [plugin]
- 禁用指定名称的插件
- --releasever RELEASEVER
- 覆盖在配置文件和仓库文件中 $releasever 的值
- --setopt SETOPTS 设置任意配置和仓库选项
- --skip-broken 通过跳过软件包来解决依赖问题
- -h, --help, --help-cmd
- 显示命令帮助
- --allowerasing 允许解决依赖关系时删除已安装软件包
- -b, --best 在事务中尝试最佳软件包版本。
- --nobest 不将事务限制在最佳候选
- -C, --cacheonly 完全从系统缓存运行,不升级缓存
- -R [minutes], --randomwait [minutes]
- 最大命令等待时间
- -d [debug level], --debuglevel [debug level]
- 调试输出级别
- --debugsolver 转储详细解决结果至文件
- --showduplicates 在 list/search 命令下,显示仓库里重复的条目
- -e ERRORLEVEL, --errorlevel ERRORLEVEL
- 错误输出级别
- --obsoletes 对 upgrade 启用 dnf 的过期处理逻辑,或对 info、list 和 repoquery
- 启用软件包过期的显示功能
- --rpmverbosity [debug level name]
- rpm调试输出等级
- -y, --assumeyes 全部问题自动应答为是
- --assumeno 全部问题自动应答为否
- --enablerepo [repo] 启用附加仓库。列出选项。支持通配符,可以指定多次。
- --disablerepo [repo] 停用仓库。列出选项。支持通配符,可指定多次。
- --repo [repo], --repoid [repo]
- 启用指定 id 或 glob 的仓库,可以指定多次
- --enable 使用 config-manager 命令启用 repos (自动保存)
- --disable 使用 config-manager 命令禁用 repos (自动保存)
- -x [package], --exclude [package], --excludepkgs [package]
- 用全名或通配符排除软件包
- --disableexcludes [repo], --disableexcludepkgs [repo]
- 禁用 excludepkgs
- --repofrompath [repo,path]
- 附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。
- --noautoremove 禁用删除不再被使用的依赖软件包
- --nogpgcheck 禁用 gpg 签名检查 (如果 RPM 策略允许)
- --color COLOR 配置是否使用颜色
- --refresh 在运行命令之前将元数据标记为过期
- -4 仅解析 IPv4 地址
- -6 仅解析 IPv6 地址
- --destdir DESTDIR, --downloaddir DESTDIR
- 设置软件包要复制到的目录
- --downloadonly 仅下载软件包
- --comment COMMENT 为事务添加一个注释
- --bugfix 在更新中包括与 bug 修复有关的软件包
- --enhancement 在更新中包括与功能增强有关的软件包
- --newpackage 在更新中包括与新软件包有关的软件包
- --security 在更新中包括与安全有关的软件包
- --advisory ADVISORY, --advisories ADVISORY
- 在更新中包括修复指定公告所必须的软件包
- --bz BUGZILLA, --bzs BUGZILLA
- 在更新中包括修复给定 BZ 所必须的软件包
- --cve CVES, --cves CVES
- 在更新中包括修复给定 CVE 所必须的软件包
- --sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low}
- 在更新中包括匹配给定安全等级的安全相关的软件包
- --forcearch ARCH 强制使用一个架构
- Download command-specific options:
- --source 取而代之下载源代码软件包 src.rpm
- --debuginfo 取而代之下载 -debuginfo 软件包
- --debugsource 取而代之下载 -debugsource 软件包
- --arch [arch], --archlist [arch]
- 限定查询指定架构的软件包。
- --resolve 解析并下载所需的依赖关系
- --alldeps 当运行时使用 --resolve,下载所有依赖软件包 (不排除已安装的软件包)
- --url, --urls 打印 rpm 可被下载的 url 列表而不是直接下载
- --urlprotocols {http,https,rsync,ftp}
- 当执行时带有 --url 参数,则限制使用指定协议
3. yumdownloader安装示例
# yumdownloader --destdir=/tmp --resolve lrzsz
在tmp目录下可以看到下载的文件

方法二:yum --downloadonly
yum命令的参数有很多,其中就有只是下载而不需要安装的命令,并且也会自动解决依赖;通常和【–downloaddir】参数一起使用
# yum install --downloadonly --downloaddir=/tmp/ vsftpd(安装包)
# yum reinstall --downloadonly --downloaddir=/tmp/ vsftpd (安装包)
说明:如果该服务器已经安装了需要下载的软件包,那么使用【install】下载就不行,可以用【reinstall】下载。放心(不会真的安装或重新安装,因为后面加了【–downloadonly】,表明只是下载。)
如果提示没有【–downloadonly】选项则需要安装【yum-plugin-downloadonly】软件包
# yum install -y yum-plugin-downloadonly
方法三:reposync
该命令更为强大,可以将远端yum仓库里面的包全部下载到本地。这样构建自己的yum仓库,就不会遇到没有网络导致更新包无法下载的问题。该命令也是来自于【yum-utils】里面。
1. reposync命令参数说明
[root@master02 ~]# reposync --help
usage: dnf reposync [-c [config file]] [-q] [-v] [--version]
[--installroot [path]] [--nodocs] [--noplugins]
[--enableplugin [plugin]] [--disableplugin [plugin]]
[--releasever RELEASEVER] [--setopt SETOPTS]
[--skip-broken] [-h] [--allowerasing] [-b | --nobest] [-C]
[-R [minutes]] [-d [debug level]] [--debugsolver]
[--showduplicates] [-e ERRORLEVEL] [--obsoletes]
[--rpmverbosity [debug level name]] [-y] [--assumeno]
[--enablerepo [repo]] [--disablerepo [repo] | --repo
[repo]] [--enable | --disable] [-x [package]]
[--disableexcludes [repo]] [--repofrompath [repo,path]]
[--noautoremove] [--nogpgcheck] [--color COLOR]
[--refresh] [-4] [-6] [--destdir DESTDIR] [--downloadonly]
[--comment COMMENT] [--bugfix] [--enhancement]
[--newpackage] [--security] [--advisory ADVISORY]
[--bz BUGZILLA] [--cve CVES]
[--sec-severity {Critical,Important,Moderate,Low}]
[--forcearch ARCH] [-a [arch]] [--delete]
[--download-metadata] [-g] [-m]
[--metadata-path METADATA_PATH] [-n] [--norepopath]
[-p DOWNLOAD_PATH] [--remote-time] [--source] [-u]
下载远程仓库中的全部软件包
General DNF options:
- -c [config file], --config [config file]
- 配置文件位置
- -q, --quiet 静默执行
- -v, --verbose 详尽执行
- --version 显示 DNF 的版本并退出
- --installroot [path] 设置目标根目录
- --nodocs 不要安装文档
- --noplugins 禁用所有插件
- --enableplugin [plugin]
- 启用指定名称的插件
- --disableplugin [plugin]
- 禁用指定名称的插件
- --releasever RELEASEVER
- 覆盖在配置文件和仓库文件中 $releasever 的值
- --setopt SETOPTS 设置任意配置和仓库选项
- --skip-broken 通过跳过软件包来解决依赖问题
- -h, --help, --help-cmd
- 显示命令帮助
- --allowerasing 允许解决依赖关系时删除已安装软件包
- -b, --best 在事务中尝试最佳软件包版本。
- --nobest 不将事务限制在最佳候选
- -C, --cacheonly 完全从系统缓存运行,不升级缓存
- -R [minutes], --randomwait [minutes]
- 最大命令等待时间
- -d [debug level], --debuglevel [debug level]
- 调试输出级别
- --debugsolver 转储详细解决结果至文件
- --showduplicates 在 list/search 命令下,显示仓库里重复的条目
- -e ERRORLEVEL, --errorlevel ERRORLEVEL
- 错误输出级别
- --obsoletes 对 upgrade 启用 dnf 的过期处理逻辑,或对 info、list 和 repoquery
- 启用软件包过期的显示功能
- --rpmverbosity [debug level name]
- rpm调试输出等级
- -y, --assumeyes 全部问题自动应答为是
- --assumeno 全部问题自动应答为否
- --enablerepo [repo] 启用附加仓库。列出选项。支持通配符,可以指定多次。
- --disablerepo [repo] 停用仓库。列出选项。支持通配符,可指定多次。
- --repo [repo], --repoid [repo]
- 启用指定 id 或 glob 的仓库,可以指定多次
- --enable 使用 config-manager 命令启用 repos (自动保存)
- --disable 使用 config-manager 命令禁用 repos (自动保存)
- -x [package], --exclude [package], --excludepkgs [package]
- 用全名或通配符排除软件包
- --disableexcludes [repo], --disableexcludepkgs [repo]
- 禁用 excludepkgs
- --repofrompath [repo,path]
- 附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。
- --noautoremove 禁用删除不再被使用的依赖软件包
- --nogpgcheck 禁用 gpg 签名检查 (如果 RPM 策略允许)
- --color COLOR 配置是否使用颜色
- --refresh 在运行命令之前将元数据标记为过期
- -4 仅解析 IPv4 地址
- -6 仅解析 IPv6 地址
- --destdir DESTDIR, --downloaddir DESTDIR
- 设置软件包要复制到的目录
- --downloadonly 仅下载软件包
- --comment COMMENT 为事务添加一个注释
- --bugfix 在更新中包括与 bug 修复有关的软件包
- --enhancement 在更新中包括与功能增强有关的软件包
- --newpackage 在更新中包括与新软件包有关的软件包
- --security 在更新中包括与安全有关的软件包
- --advisory ADVISORY, --advisories ADVISORY
- 在更新中包括修复指定公告所必须的软件包
- --bz BUGZILLA, --bzs BUGZILLA
- 在更新中包括修复给定 BZ 所必须的软件包
- --cve CVES, --cves CVES
- 在更新中包括修复给定 CVE 所必须的软件包
- --sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low}
- 在更新中包括匹配给定安全等级的安全相关的软件包
- --forcearch ARCH 强制使用一个架构
- Reposync command-specific options:
- -a [arch], --arch [arch]
- 只下载这个 ARCH 的软件包
- --delete 删除已不在仓库中的本地软件包
- --download-metadata 下载所有元数据。
- -g, --gpgcheck 下载后删除无法通过 GPG 签名检查的软件包
- -m, --downloadcomps 同时下载并解压 comps.xml
- --metadata-path METADATA_PATH
- 存储下载的仓库元数据的位置。默认为 --download-path 的值。
- -n, --newest-only 只下载最新的软件包 per-repo
- --norepopath 不要在下载路径中添加仓库名(reponame)。
- -p DOWNLOAD_PATH, --download-path DOWNLOAD_PATH
- 在何处存储已下载的仓库
- --remote-time 根据服务器上的文件设置本地文件的本地时间戳
- --source 只下载源软件包
- -u, --urls 只列出要下载内容的 url,不实际下载
常用参数
--repo 指定已经本地配置的yum仓库的repo源的名称
-p 指定下载的路径
2. 查看yum源对应的仓库
#yum repolist
仓库如下:

3. 下载对应仓库下的rpm包到指定目录
以openresty为例
# reposync --downloadonly --repo openresty -p /tmp
下载后以仓库名称为文件目录,openresty所有的安装包保存到/tmp/openresty目录下,如下所示:
reposync强大的功能解决了局域网机房在无互联网环境下的软件安装问题,只需要将事先通过reposync下载好的rpm安装包拷贝到目标服务器下,一键安装即可。
4. reposync其他命令
#1. 同步整个源到指定目录
# reposync -p /tmp/repo/# 2. 同步指定源到指定目录
# reposync --repo=openresty -p /tmp/repo/ # 3. 更新同步过的源
# reposync -n --repo=openresty -p /tmp/repo/
对于每个仓库的yum源阶段性的都有版本更新,要保证通过reposync下载的yum源都是最新的,需要构建job,通过crontab构建一个任务,如下:
#每星期六晚上23 : 00 执行yum仓库openresty rpm包更新
0 23 * * 6 root reposync --downloadonly --repo openresty -p /tmp
三、rpm包批量安装
我们通过yum或者yumdownloader或者reposync下载后的rpm安装包到局域网的一台服务器上安装时发现安装包几十个,甚至上百个rpm包,总不能一个一个安装,需要批量安装。命令如下:
# cd /tmp/repo/ #保存rpm安装包的目录
# rpm -Uvh *.rpm --nodeps --force
参数说明:
-U:升级软件,若未软件尚未安装,则安装软件。
-v:表示显示详细信息。
-h:以"#"号显示安装进度。
--force:强制安装
--nodeps:不考虑安装依赖的关系
参考资料
【精选】reposync命令详解--reposync同步aliyunyum库到本地_repo sync_风情客家__的博客-CSDN博客
通过yum命令只下载rpm包不安装
相关文章:
【Linux】 rpm安装包保存到本地并批量安装
目录 一、开启rpm安装包缓存到本地仓库 1. 修改yum.conf文件 2. 清理yum缓存 3. yum命令安装软件包 二、如何将rpm安装包保存到指定目录 方法一:yumdownloader 1. 安装yum-utils 2. yumdownloader命令参数说明 3. yumdownloader安装示例 方法二ÿ…...
数据分析案例-某公司员工数据信息可视化(文末送书)
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
浅谈wheel滚轮事件
<divonWheel{(ee) > {// new WheelEvent(自定义,e) 获取 e[wheelDelta],e[deltaY] 判断滚轮方向var e new WheelEvent(syntheticWheel,ee)console.log(滚动触发事件, e,ee);console.log(滚动触发事件e.wheelDelta, e[wheelDelta],e[deltaY]);console.log(滚动触发事件e.…...
FTP服务器操作手册
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP协议是File Transfer Protocol(文件传输协议),专门用来传输文件的协议。FTP服务器是企业里经常用到的服务器,今天就介绍一…...
Android使用Glide类加载服务器中的图片
Glide类用于从服务器中获取图片并加载进ImageView。 一、添加依赖 Glide为第三方框架,使用时需添加依赖: 在 Gradle Scripts / build.gradle(Module:app) / dependencies方法 中添加 implementation com.github.bumptech.glide:glide:4.12.0 添加后…...
【打靶】vulhub打靶复现系列3---Chronos
【打靶】vulhub打靶复现系列3---Chronos 一、主机探测 结合之前的方法(arp探测、ping检测),因为我们的靶机和攻击机都在第二层,所以打靶时候我们更依赖arp协议 tips:我在运行期间发现,netdiscover窗口没关…...
基于Java的新闻发布管理系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…...
CRM系统如何选型?
不少企业都想要使用CRM客户管理系统,但往往在CRM选型阶段就被折腾的五迷三道。CRM系统选型难在哪里?下面我们从企业用户和CRM厂商两方面进行分析,来说说关于CRM系统选型的那些事。 企业自身原因: 1、认知偏差 看到一个观点&…...
山东大学开发可解释深度学习算法 RetroExplainer,4 步识别有机物的逆合成路线
逆合成旨在找到一系列合适的反应物,以高效合成目标产物。这是解决有机合成路线的重要方法,也是有机合成路线设计的最简单、最基本的方法。 早期的逆合成研究多依赖编程,随后这一工作被 AI 接替。然而,现有的逆合成方法多关注单步逆…...
使用antv x6注册vue组件报错,TypeError: Object(...) is not a function (teleport.js:3:23)
typeError: Object(…) is not a function at …/…/…/node_modules/.pnpm/antvx6-vue-shape2.1.1_antvx62.15.2vue2.7.10/node_modules/antv/x6-vue-shape/es/teleport.js (teleport.js:3:23) 点击定位到报错的位置为 reactive应该是vue 2.7.*版本才有的 由于项目在index.ht…...
Python开发利器KeymouseGo,开源的就是香
1、介绍 在日常工作中,经常会遇到一些重复性的工作,不管是点击某个按钮、写文字,打印,还是复制粘贴拷贝资料之类的,需要进行大量的重复操作。按键精灵大家想必都听说过,传统的方式,可以下载个按…...
什么是 Node.js
目标 什么是 Node.js,有什么用,为何能独立执行 JS 代码,演示安装和执行 JS 文件内代码 讲解 Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码,因为这个特点,它可以用来编写服务器后端的应用…...
08-flex布局
flex布局 1.定位布局- 定位流分类1.1.静态定位1.2.相对定位1.3.绝对定位1.4.固定定位1.5.粘滞定位1.6.z-index - 1.1.静态定位( Static positioning)- 1.2.什么是相对定位?( Relative positioning )- 相对定位注意点- 相对定位应…...
HTML5和HTML的区别
HTML5的概念分为广义和狭义两种。 狭义的概念HTML5是指HTML语言的第5个版本,而HTML是指5之前的版本。 广义的概念HTML5是指由HTML5、CSS3、JavaScript所组成的开发环境。而HTML是指HTML语言本身。 1、HTML5与HTML狭…...
【Amazon】跨AWS账号级别迁移弹性IP地址操作流程
文章目录 一、实验背景二、适用场景三、实验目标四、实验说明五、实验步骤1. 登录AWS控制台[源账户]2. 启用弹性 IP 地址转移[源账户]3. 接受转移的弹性 IP 地址[目标账户]4. <可选>禁止转移弹性IP地址[源账户] 六、结果验证七、注意事项八、附录1. 多弹性IP地址多AWS账号…...
2023-python pdf转换为PPT代码
from pdf2image import convert_from_path from pptx import Presentation from pptx.util import Inches import os# 用户输入PDF文件路径 pdf_file_path input("请输入PDF文件的路径:")# 提取文件名(不包括扩展名)作为PPT文件名…...
学会场景提问,让AI“小助手”为我所用
文章目录 一、故事叙述提问举例 二、产品描述提问举例 三、报告撰写提问举例 四、邮件和信件撰写提问举例 五、新间稿和公告撰写提问举例 六、学术论文和专业文章撰写提问举例 我们知道AI技术不仅能够自动生成文章和内容,还可以根据我们的需求提供创意灵感和解决问题…...
前端,CSS,背景颜色跟随轮播图片改变而改变(附源码)
首先看效果! 比如轮播图时红色,那么背景的底色也是红色,轮播图时黄色,背景的底色也是黄色,这就是根据轮播图的图片切换,而改变背景颜色随轮播图颜色一致 话不多说,直接上代码!非常简…...
对文件夹内的所有图像进行随机调整对比度和应用高斯滤波
import os import random from PIL import Image, ImageEnhance, ImageFilter# 输入和输出文件夹路径 input_folder rE:\深度学习数据集 output_folder rE:\深度学习数据集\对比度、高斯滤波# 确保输出文件夹存在,如果不存在则创建 if not os.path.exists(output_…...
ios上架上传构建版本的windows工具
ios上架的必要步骤,是将打包好的二进制ipa文件,上传到app store的构建版本里,苹果并没有提供上传构建版本的工具,这里我介绍下windows下上传构建版本的方案。 下面说下上传的基本步骤: 第一步,上传前要先…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...
