Oracle 12c Windows补丁升级必须用OPatch:原理、避坑与自动化验证
简介本资源是专为Windows平台Oracle 12c数据库环境定制的OPatch补丁工具集面向DBA、运维工程师及数据库开发人员用于安全、高效地应用Oracle官方补丁如PSU、BP、One-Off等解决补丁部署失败、OPatch版本不兼容、JVM识别异常等典型问题。压缩包共454个文件涵盖132个核心jar库支撑OPatch Java运行时、111个Windows动态链接库dll适配本地系统调用、21个可执行程序exe含opatch.bat、datapatch.bat等关键入口脚本以及41份Markdown格式说明文档md辅以properties配置、pl/perl脚本、sh类Unix兼容脚本等结构完整、跨场景可用。资源大小102.88MB目录组织规范含jmxremote.access权限控制、cacerts证书管理、blacklist安全策略等企业级运维要素。已有997人学习下载提供即开即用的OPatch全功能二进制套件、配套FAQ与排错指引显著降低Windows下Oracle补丁管理门槛。1. Oracle 12c for Windows 补丁升级不是“双击安装”OPatch 是唯一受控入口跳过它等于给数据库埋定时炸弹很多刚接手 Oracle 12c Windows 环境的 DBA 或运维同学第一反应是去 Oracle 官网下载一个 .exe 或 .zip双击运行、点下一步、等进度条走完——结果要么报错“OPatch version is too old”要么补丁看似成功但监听起不来、EM Express 打不开、甚至实例启动时卡在ORACLE_HOME初始化阶段。这不是你手速慢而是 Oracle 12c 在 Windows 平台对补丁管理做了硬性收口所有 PSUPatch Set Update、BPBundle Patch、Critical Patch UpdateCPU都必须通过 OPatch 工具执行且 OPatch 本身也需随补丁版本迭代升级。它不是可选插件而是 Oracle 官方唯一认可的补丁应用引擎。这份资源就是一套完整适配 Windows x64 环境的 Oracle 12.1.0.x 和 12.2.0.x 的 OPatch 工具包含最新版 12.2.0.1.32 及向下兼容脚本附带实测通过的静默安装模板、环境变量预检清单、以及最关键的——Windows 特有权限与服务依赖处理逻辑。适合正在维护生产库、准备打季度安全补丁、或被客户审计要求提供补丁追溯记录的 Windows DBA。2. OPatch 是什么不是安装器而是 Oracle 的“补丁签名验证文件原子替换回滚快照”三位一体引擎2.1 为什么 Windows 下 OPatch 不可替代三重机制决定它不能绕过Oracle 在 Windows 平台对二进制文件保护极严。.dll、.exe、ora*.dll等核心组件被加载后即被系统锁定普通覆盖会失败同时Windows 服务如OracleServiceORCL、OracleOraDB12Home1TNSListener以 SYSTEM 身份运行其进程空间内驻留的模块无法被用户态进程直接修改。OPatch 正是为解决这些底层约束而生签名验证层每个 Oracle 补丁 ZIP 包内含patchmd5.xml和inventory.xmlOPatch 启动时先校验补丁包完整性与数字签名防止篡改或损坏原子替换层OPatch 不直接覆盖运行中文件而是将新文件解压到$ORACLE_HOME/.patch_storage/下的临时目录再通过xcopy /O /X /E /H /K保留 ACL、SDDL、隐藏属性、时间戳完成静默替换并自动备份旧文件至$ORACLE_HOME/.patch_storage/patch_id/backup/回滚快照层执行opatch rollback -id patch_id时OPatch 不是从网络重新下载旧版而是从上述 backup 目录还原整个过程毫秒级且不中断监听器listener.ora 配置变更除外。提示Windows 下opatch apply默认调用cmd.exe /c start /wait启动子进程执行文件操作这是它能绕过“文件被占用”错误的关键设计也是 Linux 下fork()无法简单复现的机制。2.2 OPatch 版本与 Oracle Home 的强绑定关系12.1 和 12.2 必须用对应主版本Oracle 官方明确要求OPatch 主版本号必须与 Oracle Database 主版本号一致。例如Oracle Database 12.1.0.2 → 必须使用 OPatch 12.1.0.x如 12.1.0.13Oracle Database 12.2.0.1 → 必须使用 OPatch 12.2.0.x如 12.2.0.1.32若混用如用 12.2.0.x 的 OPatch 去打 12.1.0.x 的补丁会出现OPatch failed with error code 73—— 这是 OPatch 内置的版本校验失败码非环境问题。更隐蔽的风险是某些 12.2.0.x 的 OPatch 会尝试读取 12.1.0.x 中不存在的 inventory 结构字段导致opatch lsinventory输出乱码或崩溃。我们提供的资源包已按主版本拆分/win-opatch-12.1/含 OPatch 12.1.0.13支持 12.1.0.1 ~ 12.1.0.2/win-opatch-12.2/含 OPatch 12.2.0.1.32支持 12.2.0.1/common-scripts/含跨版本通用的check_env.bat、pre_patch_check.sql、post_patch_verify.sql2.3 Windows 环境变量与路径规范空格、长路径、大小写敏感的三重雷区Oracle 12c for Windows 对路径极其挑剔。以下配置若有一项不满足opatch命令会直接报The environment variable ORACLE_HOME is not set.即使你已在系统变量里设置了:: ✅ 正确示范全部使用短路径、无空格、全大写驱动器号 set ORACLE_HOMEC:\app\oracle\product\12.1.0\dbhome_1 set PATH%ORACLE_HOME%\OPatch;%PATH% :: 注意OPatch 目录必须是 %ORACLE_HOME%\OPatch不能是 %ORACLE_HOME%\opatch 或 %ORACLE_HOME%\OPATCH :: ❌ 错误示范常见翻车点 :: 1. 路径含中文或空格C:\Program Files\oracle\... → opatch 解析失败 :: 2. 使用小写盘符c:\app\... → Windows cmd 默认不区分但 OPatch 内部调用 Java 类时会校验路径一致性 :: 3. ORACLE_HOME 指向软链接或 junctionOPatch 会拒绝识别我们资源包中的check_env.bat会自动检测这三项并高亮报错比手动echo %ORACLE_HOME%可靠十倍。3. 补丁实战四步法从下载补丁包到验证生效全程 Windows 命令行闭环3.1 第一步确认当前 OPatch 版本与补丁兼容性关键前置动作不要跳过这步很多“补丁失败”源于 OPatch 太旧。在管理员权限的 CMD 中执行cd /d %ORACLE_HOME%\OPatch opatch version输出应类似OPatch Version: 12.2.0.1.32 OPatch succeeded.若版本低于目标补丁要求如补丁 README 中写明 “Requires OPatch version 12.2.0.1.25 or later”则必须先升级 OPatch:: 1. 下载新 OPatch ZIP如 p6880880_122010_Windows-x86-64.zip :: 2. 解压到临时目录例如 C:\temp\opatch_new\ :: 3. 停止所有 Oracle 服务重点 net stop OracleServiceORCL net stop OracleOraDB12Home1TNSListener :: 4. 替换 OPatch 目录注意必须用 /E /I /Y 强制覆盖 xcopy /E /I /Y C:\temp\opatch_new\OPatch %ORACLE_HOME%\OPatch\ :: 5. 验证 cd /d %ORACLE_HOME%\OPatch opatch version参数说明/E复制所有子目录含空目录/I若目标不存在则假定为目录/Y不提示确认。Windows 下少一个参数都可能漏掉.patch_storage子目录导致后续补丁无法回滚。3.2 第二步解压补丁包并校验完整性防下载损坏Oracle 补丁包命名规则为ppatch_number_version_platform.zip例如p34567890_122010_Windows-x86-64.zip。解压前务必校验 MD5:: 进入补丁包所在目录 cd /d C:\patches :: 使用 certutil 计算 MD5Windows 自带无需额外工具 certutil -hashfile p34567890_122010_Windows-x86-64.zip MD5 :: 输出应与 Oracle Support 文档中提供的 MD5 值完全一致区分大小写 :: 示例正确输出 :: MD5 hash of p34567890_122010_Windows-x86-64.zip: :: 1a2b3c4d5e6f78901234567890abcdef校验通过后解压到独立空目录严禁解压到%ORACLE_HOME%下mkdir C:\patches\34567890 tar -xf p34567890_122010_Windows-x86-64.zip -C C:\patches\34567890 :: 注意Windows 10/11 自带 tar 命令无需 7-Zip若报错可用 PowerShell :: Expand-Archive -Path .\p34567890_122010_Windows-x86-64.zip -DestinationPath C:\patches\345678903.3 第三步静默应用补丁生产环境唯一推荐方式切记永远不要在图形界面下双击runInstaller.exe。Windows GUI 安装器会绕过 OPatch导致 inventory 损坏、后续无法回滚。正确姿势是命令行静默:: 1. 以管理员身份打开 CMD切换到补丁解压目录 cd /d C:\patches\34567890 :: 2. 执行 OPatch 应用-silent 参数是核心 %ORACLE_HOME%\OPatch\opatch apply -silent -ocmrf C:\patches\ocm.rsp :: 参数说明 :: -silent禁用交互所有提示用默认值关键避免卡在“是否继续” :: -ocmrf指向 Oracle Configuration Manager 响应文件用于自动注册补丁信息若未部署 OCM可省略此参数 :: 无 -oh 参数时默认使用当前 %ORACLE_HOME%执行后等待 3~15 分钟取决于补丁大小成功输出末尾为OPatch succeeded.3.4 第四步验证补丁是否真正生效不止看 opatch lsinventoryopatch lsinventory只显示 inventory 记录不代表功能正常。必须做三层验证验证层级命令/操作预期结果失败含义Inventory 层%ORACLE_HOME%\OPatch\opatch lsinventory | findstr 34567890输出包含Patch 34567890及状态AppliedOPatch 未写入 inventory补丁未注册服务层net start | findstr OracleOracleServiceORCL、OracleOraDB12Home1TNSListener均在运行补丁破坏了 DLL 依赖服务无法启动SQL 层sqlplus / as sysdba EOFbrSELECT ACTION, VERSION, COMMENTS FROM DBA_REGISTRY_HISTORY WHERE ACTIONAPPLY AND BUNDLE_SERIESPSU ORDER BY ACTION_TIME DESC;brEXIT;brEOF返回34567890对应的记录VERSION 为12.2.0.1.0补丁未更新数据字典存在兼容性风险注意SQL 层验证必须连接到SYS用户且DBA_REGISTRY_HISTORY视图仅在补丁包含 SQL 脚本如catbundle.sql时才写入。纯二进制补丁如 JVM 更新不会出现此记录。4. Windows 专属避坑指南5 条血泪经验每一条都让 A同学 重装过一次系统4.1 现象opatch apply报错OPatch failed with error code 73原因OPatch 主版本与 Oracle Home 主版本不匹配如用 12.2.0.x OPatch 打 12.1.0.x 补丁或补丁包解压后目录结构被修改如手动删了etc/或files/子目录。解决严格按 3.1 节检查 OPatch 版本重新下载补丁包用tar -xf全量解压不手工删任何文件。4.2 现象补丁应用成功但lsnrctl start失败报TNS-12560: TNS:protocol adapter error原因Windows 下补丁更新了oracommon12.dll或oranls12.dll但监听器进程仍加载旧版内存镜像且 OPatch 备份的旧 DLL 被杀毒软件误删。解决手动停止监听器lsnrctl stop删除%ORACLE_HOME%\bin\*12.dll保留oraclient12.dll等客户端 DLL重启监听器lsnrctl start将%ORACLE_HOME%\bin\加入杀毒软件白名单4.3 现象opatch rollback -id 34567890报错No patch to rollback原因rollback命令必须在同一 Oracle Home 下执行且该 Home 必须是当初打补丁时的 Home。若你后来用SET ORACLE_HOME...切换过 Home或在另一台机器上执行OPatch 找不到 backup 目录。解决确认当前 CMD 的echo %ORACLE_HOME%输出与打补丁时完全一致检查%ORACLE_HOME%\.patch_storage\34567890\backup\是否存在且非空。4.4 现象补丁后 EM Express (https://localhost:5500/em) 打不开提示ORA-00942: table or view does not exist原因12.2.0.1 的 PSU 补丁常包含catqm.sql重编译脚本但 Windows 下若ORACLE_UNQNAME环境变量未设置catqm.sql会创建错误的 schema 名导致 EM 认不出视图。解决:: 1. 设置唯一数据库名必须与 dbca 创建时一致 set ORACLE_UNQNAMEORCL :: 2. 以 SYS 运行重编译脚本补丁自带 sqlplus / as sysdba %ORACLE_HOME%\rdbms\admin\catqm.sql ORCL SYSAUX TEMP NO4.5 现象opatch lsinventory输出乱码中文显示为?原因CMD 默认代码页为 GBK936但 OPatch 内部 Java 使用 UTF-8导致 inventory.xml 中的中文注释解析失败。解决在执行 OPatch 前强制 CMD 切换代码页chcp 65001 nul %ORACLE_HOME%\OPatch\opatch lsinventory血泪经验这条命令必须写在批处理脚本开头不能只在 CMD 里手动敲。因为opatch启动的 Java 进程会继承父 CMD 的代码页。5. 补丁验证进阶技巧用 SQL 脚本自动比对补丁前后性能基线把“打完了”变成“真稳了”光看opatch lsinventory显示 Applied不等于业务 SQL 就没退化。Oracle 12c 的补丁尤其是 JVM 和 SQL Plan Management 相关可能改变执行计划稳定性。我一般会在补丁前后各跑一次标准化压力脚本用 SQL 自动抓取关键指标对比。以下是我在某高校模拟项目 X 中落地的验证方法5.1 构建补丁前基线捕获 10 个核心 SQL 的执行计划哈希与平均耗时-- 创建基线表只需执行一次 CREATE TABLE patch_baseline AS SELECT sql_id, plan_hash_value, ROUND(AVG(elapsed_time)/1000000, 2) avg_sec, ROUND(AVG(buffer_gets), 0) avg_lio, COUNT(*) exec_count FROM v$sql WHERE sql_id IN (abc123xyz, def456uvw, ghi789rst) -- 替换为你的业务 SQL_ID AND last_active_time SYSDATE - 1/24 -- 近1小时活跃 GROUP BY sql_id, plan_hash_value; -- 查询基线 SELECT * FROM patch_baseline ORDER BY sql_id, avg_sec;5.2 补丁后 24 小时内用同一脚本抓取新数据并比对-- 创建对比视图实时计算差异 WITH current_stats AS ( SELECT sql_id, plan_hash_value, ROUND(AVG(elapsed_time)/1000000, 2) avg_sec, ROUND(AVG(buffer_gets), 0) avg_lio FROM v$sql WHERE sql_id IN (SELECT sql_id FROM patch_baseline) AND last_active_time SYSDATE - 1/24 GROUP BY sql_id, plan_hash_value ), diff AS ( SELECT c.sql_id, c.plan_hash_value curr_plan, b.plan_hash_value base_plan, c.avg_sec curr_sec, b.avg_sec base_sec, ROUND((c.avg_sec - b.avg_sec)/NULLIF(b.avg_sec,0)*100, 2) sec_change_pct, CASE WHEN c.plan_hash_value ! b.plan_hash_value THEN PLAN_CHANGED WHEN ABS(c.avg_sec - b.avg_sec) b.avg_sec * 0.3 THEN PERF_REGRESSION ELSE OK END status FROM current_stats c JOIN patch_baseline b ON c.sql_id b.sql_id ) SELECT sql_id, status, curr_sec, base_sec, sec_change_pct, curr_plan, base_plan FROM diff WHERE status IN (PLAN_CHANGED, PERF_REGRESSION) ORDER BY sec_change_pct DESC;输出示例abc123xyz | PERF_REGRESSION | 12.45 | 8.21 | 51.64 | 3456789012 | 9876543210这意味着该 SQL 执行时间涨了 51%且执行计划哈希值变了——立刻要查v$sql_plan看是否走了全表扫描。5.3 关键参数控制如何让 OPatch 在后台静默运行不阻塞监控脚本生产环境打补丁不能停业务太久。我习惯把 OPatch 命令包装成后台任务用start /min隐藏窗口并用timeout控制超时:: 将补丁应用封装为后台任务超时 30 分钟自动退出 start /min cmd /c cd /d C:\patches\34567890 %ORACLE_HOME%\OPatch\opatch apply -silent C:\logs\patch_34567890.log 21 echo %date% %time% PATCH_SUCCESS C:\logs\patch_status.log || echo %date% %time% PATCH_FAILED C:\logs\patch_status.log :: 检查日志是否写入成功标记轮询 30 次每次间隔 60 秒 set count0 :loop if %count%30 goto timeout findstr PATCH_SUCCESS C:\logs\patch_status.log nul goto success timeout /t 60 nul set /a count1 goto loop :success echo 补丁应用成功开始执行验证脚本... sqlplus / as sysdba C:\scripts\verify_perf.sql goto end :timeout echo 补丁应用超时请检查 C:\logs\patch_34567890.log :end从那以后我每次打补丁都强制走一遍这个带超时和自动验证的批处理流程再也不会因为“看着进度条走完了就去喝咖啡”结果回来发现监听器挂了、应用连不上、还得翻日志从头排查。补丁不是终点是下一轮稳定性的起点。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Java开发者资源地图:从入门到进阶的高效学习与工具指南

Java开发者资源地图:从入门到进阶的高效学习与工具指南

1. 这个“JAVA网站大全”到底是个什么东西第一次看到“JAVA网站大全”这个标题,很多人脑子里蹦出来的画面可能是一个导航站,左边一列链接,右边一堆广告位,点进去全是“Java学习网”“Java资源站”之类的聚合页面。但我实际折腾过一…

2026/10/9 14:01:58 阅读更多 →
万字长文解读wen进化史:从论文到TaoToken模型家族全景复盘

万字长文解读wen进化史:从论文到TaoToken模型家族全景复盘

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 14:00:55 阅读更多 →
上下文工程:AI Agent时代超越提示词工程的核心技能!TaoToken统一Key通道实战配置

上下文工程:AI Agent时代超越提示词工程的核心技能!TaoToken统一Key通道实战配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 14:00:55 阅读更多 →

最新新闻

PIC18F87J10与PCA9422协同实现电池供电系统的动态电源管理

PIC18F87J10与PCA9422协同实现电池供电系统的动态电源管理

做电池供电的便携设备时,电源管理往往比业务逻辑更让人头疼。之前我把 PCA9422 和 PIC18F87J10 搭在一起做了一套完整的电源管理方案,从硬件设计、I2C 配置、动态调压到低功耗切换都实际跑了一遍。这篇文章就是这次实践的整体记录,核心思路是…

2026/10/9 14:30:56 阅读更多 →
机械设计必看:CATIA、SolidWorks、UG、Pro/E四款软件选型解析

机械设计必看:CATIA、SolidWorks、UG、Pro/E四款软件选型解析

这标题一看就是刚入行的朋友最喜欢问的问题。我当年也是这么过来的,在宿舍里把四款软件装了个遍,挨个折腾,最后才明白一个道理: 没有“最顺手”的软件,只有“最适合你当前做的事情”的软件。 拿着CATIA去画一个简单的…

2026/10/9 14:30:56 阅读更多 →
PCA9422 + TM4C1294:电池供电设备PMIC与MCU协同电源管理设计

PCA9422 + TM4C1294:电池供电设备PMIC与MCU协同电源管理设计

直接上结论:这套“PCA9422 TM4C1294NCZAD”组合,适合做电池供电的工业采集终端、便携式仪表和物联网边缘节点,核心思路是把“实时功率级控制”交给集成化 PMIC,把“充电策略、状态监控、低功耗调度”交给 MCU。我之前在接触这类嵌…

2026/10/9 14:30:56 阅读更多 →
基于PCA9422与TM4C123的低功耗电源管理设计实战

基于PCA9422与TM4C123的低功耗电源管理设计实战

做电源管理的人大多都有过这种经历:板子画完、固件跑通,结果一测功耗,待机电流比预期高一个数量级,电池没撑过两天就报警。真正把功耗压下去,靠的不只是挑几颗低静态电流的LDO,而是整套供电架构和控制策略。…

2026/10/9 14:30:56 阅读更多 →
ArcGIS基础地理空间数据库系统设计:从建库到出图全流程

ArcGIS基础地理空间数据库系统设计:从建库到出图全流程

简介:这份PDF文档面向地理信息系统、测绘与空间数据库方向的学习者与工程技术人员,围绕基于ArcGIS的基础地理空间数据库系统设计展开,帮助读者理解空间数据与属性数据统一管理的整体思路。文档重点讲解空间数据库建库组织、点面体三类数据分类…

2026/10/9 14:30:56 阅读更多 →
CAP理论与数据库分片架构:一致性、可用性与分库分表实战解析

CAP理论与数据库分片架构:一致性、可用性与分库分表实战解析

做分布式系统做了这么久,我发现一个特别有意思的现象:很多人都把CAP背得滚瓜烂熟,一问你“CAP是什么”,张口就来“一致性、可用性、分区容错性,三者不可兼得”。可真到设计一个数据库分片架构的时候,该选什…

2026/10/9 14:29:54 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →