Oracle 19c静默安装全攻略:从系统配置到自动化部署
1. 为什么需要静默安装Oracle 19c如果你是一名DBA或者系统管理员肯定经历过在图形界面下安装Oracle数据库的“折磨”。鼠标点来点去等待响应一个不小心点错还得回退整个过程耗时耗力尤其是在需要批量部署或者远程操作无图形界面的服务器时图形化安装简直就是灾难。静默安装就是解决这个痛点的“利器”。它通过一个预先配置好的响应文件让安装程序在后台自动完成所有步骤无需人工干预。这不仅仅是“偷懒”更是标准化、自动化运维的基石。无论是搭建开发测试环境还是生产服务器的集群部署掌握静默安装都能让你事半功倍将重复劳动交给脚本把精力留给更重要的性能调优和架构设计。从网络上的搜索热词也能看出大家关心的不仅仅是“安装”更是“迁移”、“配置”、“连接”和“问题排查”。一个稳定、可重复的安装过程是后续所有数据库操作如表结构迁移、存储过程开发、性能监控的可靠起点。静默安装确保了环境的一致性避免了因安装步骤差异导致的“我本地是好的怎么到你那就出问题了”这类经典甩锅问题。2. 安装前的核心准备工作不只是下载安装包静默安装的成功八成取决于准备工作是否到位。这里面的坑远比安装过程本身要多。2.1 系统环境与依赖检查首先你需要一台符合要求的Linux服务器本文以CentOS 7/RHEL 7为例Windows服务器思路类似但具体命令和包名不同。Oracle 19c对硬件和软件有明确要求不能凭感觉。硬件要求内存最小1GB建议至少2GB。对于生产环境根据数据量和并发另行规划。可以通过free -g命令查看。交换空间这是一个常被忽略但会导致安装失败的关键点。规则如下内存1GB-2GB时交换空间应为内存的1.5倍。内存2GB-16GB时交换空间等于内存大小。内存超过16GB时交换空间固定为16GB。 使用free -g或swapon -s检查如果不足需要手动添加交换文件。磁盘空间临时目录/tmp至少需要1GB。数据库软件安装目录如/u01/app/oracle建议预留20GB以上。数据文件存放目录根据业务需求预留通常更大。使用df -h命令检查。软件包依赖Oracle Linux提供了预配置的yum仓库但对于CentOS/RHEL需要手动安装大量依赖包。缺少任何一个都可能在安装后期报出令人费解的错误。以下是一个相对完整的包列表建议通过yum groupinstall先安装兼容组再补充个别包# 安装兼容性软件包组 yum groupinstall -y Server with GUI # 即使静默安装也需要一些图形库的支持 yum groupinstall -y Development Tools # 安装核心依赖包 yum install -y binutils compat-libcap1 compat-libstdc-33 gcc gcc-c glibc glibc-devel ksh libaio libaio-devel libgcc libstdc libstdc-devel libXi libXtst make sysstat elfutils-libelf-devel psmisc unixODBC unixODBC-devel注意compat-libstdc-33这个包在默认仓库可能没有需要从EPEL等扩展仓库获取或者从Oracle官方提供的预安装rpm包中查找。这是导致makefile编译错误的高频原因。2.2 创建Oracle用户与组Oracle不建议使用root用户直接安装和运行数据库。我们需要创建专用的用户和组。# 创建主要组oinstall和附加组dba groupadd oinstall groupadd dba # 创建Oracle用户主组oinstall附加组dba并指定家目录 useradd -g oinstall -G dba -m -d /home/oracle oracle # 为oracle用户设置密码 passwd oracle2.3 配置内核参数与资源限制Linux系统默认的参数限制可能无法满足Oracle数据库的高负载需求需要在/etc/sysctl.conf文件中进行修改。# 编辑sysctl配置文件 vi /etc/sysctl.conf在文件末尾添加或修改以下参数。参数值仅供参考生产环境需根据服务器配置调整# 网络与端口范围 fs.aio-max-nr 1048576 fs.file-max 6815744 # 共享内存段大小建议设置为物理内存的70%-80% kernel.shmall 1073741824 # 页数等于总内存字节/页大小通常4096 kernel.shmmax 4398046511104 # 最大共享内存段大小建议大于物理内存 kernel.shmmni 4096 # 信号量设置 kernel.sem 250 32000 100 128 # 网络核心参数 net.ipv4.ip_local_port_range 9000 65500 net.core.rmem_default 262144 net.core.rmem_max 4194304 net.core.wmem_default 262144 net.core.wmem_max 1048576保存后执行sysctl -p使配置立即生效。接下来配置用户资源限制编辑/etc/security/limits.conforacle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768此外还需要在/etc/pam.d/login文件中加入session required pam_limits.so确保limits生效。2.4 规划目录结构与权限清晰的目录结构利于管理。我们假设采用OFOptimal Flexible Architecture结构# 创建软件安装目录和数据文件目录 mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 mkdir -p /u02/oradata # 用于存放数据文件、控制文件、重做日志等 mkdir -p /u03/fast_recovery_area # 用于快速恢复区归档日志、备份 # 更改所有权 chown -R oracle:oinstall /u01 /u02 /u03 chmod -R 775 /u01 /u02 /u032.5 配置Oracle用户环境变量切换到oracle用户编辑其家目录下的.bash_profile文件su - oracle vi ~/.bash_profile添加以下内容# Oracle Base export ORACLE_BASE/u01/app/oracle # Oracle Home (软件安装路径) export ORACLE_HOME$ORACLE_BASE/product/19.3.0/dbhome_1 # 数据库实例的唯一标识符 export ORACLE_SIDorcl # 将$ORACLE_HOME/bin加入PATH export PATH$ORACLE_HOME/bin:$PATH # 设置语言环境避免安装界面乱码 export LANGen_US.UTF-8 # 指定客户端字符集 export NLS_LANGAMERICAN_AMERICA.AL32UTF8执行source ~/.bash_profile使环境变量生效。3. 响应文件静默安装的“自动驾驶仪”响应文件是一个包含了所有安装选项参数值的文本文件。安装程序runInstaller会读取它而不再弹出图形界面询问。Oracle提供了模板位于安装包解压后的response/目录下。对于仅安装数据库软件我们主要使用db_install.rsp。3.1 获取并修改响应文件首先从Oracle官网下载Oracle 19c for Linux的安装包通常是两个ZIP文件LINUX.X64_193000_db_home.zip。将其上传到服务器例如/soft目录并用oracle用户解压cd /soft unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/dbhome_1解压后在dbhome_1/response/目录下找到db_install.rsp将其复制到方便的位置进行修改cp /u01/app/oracle/product/19.3.0/dbhome_1/response/db_install.rsp /home/oracle/ cd /home/oracle vi db_install.rsp你需要关注并修改以下关键参数#开头的是注释# 是否接受Oracle许可协议必须设为true oracle.install.responseFileVersion/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 oracle.install.optionINSTALL_DB_SWONLY # 仅安装软件后续再建库 UNIX_GROUP_NAMEoinstall # 之前创建的组 INVENTORY_LOCATION/u01/app/oraInventory # 清单目录记录安装的组件 ORACLE_HOME/u01/app/oracle/product/19.3.0/dbhome_1 # 与环境变量一致 ORACLE_BASE/u01/app/oracle # 与环境变量一致 oracle.install.db.InstallEditionEE # 安装版本企业版 oracle.install.db.OSDBA_GROUPdba oracle.install.db.OSOPER_GROUPdba oracle.install.db.OSBACKUPDBA_GROUPdba oracle.install.db.OSDGDBA_GROUPdba oracle.install.db.OSKMDBA_GROUPdba oracle.install.db.OSRACDBA_GROUPdba oracle.install.db.rootconfig.executeRootScriptfalse # 先设为false稍后手动执行 oracle.install.db.rootconfig.configMethodROOT # 使用root脚本方式 oracle.install.db.rootconfig.sudoPath/usr/bin/sudo oracle.install.db.rootconfig.sudoUserNameroot SECURITY_UPDATES_VIA_MYORACLESUPPORTfalse # 不通过MOS更新 DECLINE_SECURITY_UPDATEStrue # 必须设为true否则安装会卡在提示实操心得DECLINE_SECURITY_UPDATEStrue这一行至关重要。如果不设置或设为false安装程序会尝试连接Oracle支持网站检查更新在无外网或网络受限的环境下会导致安装进程长时间挂起甚至失败。这是静默安装中最常见的“坑”之一。4. 执行静默安装与后续配置准备工作全部就绪现在可以启动安装程序了。4.1 运行安装命令使用oracle用户切换到ORACLE_HOME目录执行以下命令cd $ORACLE_HOME ./runInstaller -silent -ignorePrereq -responseFile /home/oracle/db_install.rsp-silent: 指定静默模式。-ignorePrereq: 忽略先决条件检查。慎用此参数最好在前期完成所有依赖检查和配置。这里使用是因为我们确信已满足条件避免因某些非致命警告导致安装中断。-responseFile: 指定我们修改好的响应文件路径。安装过程会在后台进行终端上会输出日志文件的路径例如/u01/app/oraInventory/logs/installActions2023-xx-xx_xx-xx-xxPM.log。你可以使用tail -f命令实时跟踪这个日志观察安装进度和是否有错误。tail -f /u01/app/oraInventory/logs/installActions2023-xx-xx_xx-xx-xxPM.log当看到类似以下输出时表示软件安装部分已完成Successfully Setup Software. As a root user, execute the following script(s): 1. /u01/app/oraInventory/orainstRoot.sh 2. /u01/app/oracle/product/19.3.0/dbhome_1/root.sh4.2 执行root配置脚本不要关闭当前终端新开一个终端窗口使用root用户登录依次执行提示的两个脚本# 执行第一个脚本 sh /u01/app/oraInventory/orainstRoot.sh # 执行第二个脚本过程中会提示输入本地bin目录路径直接回车使用默认值即可 sh /u01/app/oracle/product/19.3.0/dbhome_1/root.shroot.sh脚本会执行一些需要root权限的操作如创建/etc/oratab文件、设置oracle用户的资源限制生效等。执行成功后数据库软件就安装完毕了。4.3 使用DBCA静默创建数据库安装软件只是第一步我们还需要一个可用的数据库实例。同样使用静默模式下的数据库配置助手DBCA。首先需要准备DBCA的响应文件。模板位于$ORACLE_HOME/assistants/dbca/dbca.rsp。我们复制并修改它cp $ORACLE_HOME/assistants/dbca/dbca.rsp /home/oracle/dbca_create.rsp vi /home/oracle/dbca_create.rsp修改其中关键部分responseFileVersion/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0 gdbNameorcl # 全局数据库名通常与ORACLE_SID相同 sidorcl # 数据库实例名 databaseConfigTypeSI # 单实例 templateNameGeneral_Purpose.dbc # 使用通用模板 sysPasswordYourStrongSysPassword123 # 设置SYS用户密码务必足够复杂 systemPasswordYourStrongSystemPassword123 # 设置SYSTEM用户密码 datafileDestination/u02/oradata # 数据文件存放目录 recoveryAreaDestination/u03/fast_recovery_area # 快速恢复区目录 storageTypeFS # 文件系统存储 characterSetAL32UTF8 # 数据库字符集推荐UTF8 nationalCharacterSetAL16UTF16 # 国家字符集 createAsContainerDatabasefalse # 19c默认是CDB这里设为false创建非CDB。如需CDB则设为true并指定PDB名。然后使用DBCA命令静默建库dbca -silent -createDatabase -responseFile /home/oracle/dbca_create.rsp这个过程会持续较长时间十几分钟到半小时不等会创建数据文件、控制文件、重做日志并运行必要的SQL脚本。同样观察日志输出通常会在终端显示进度百分比或在$ORACLE_BASE/cfgtoollogs/dbca/orcl目录下查看详细日志。建库完成后数据库实例orcl就已经启动并运行了。你可以使用sqlplus连接进行验证sqlplus sys/YourStrongSysPassword123orcl as sysdba SQL SELECT name, open_mode FROM v$database;5. 安装后的关键检查与常见故障排除安装完成并不意味着万事大吉以下几个检查点和常见问题的排查思路能帮你快速验证安装质量。5.1 环境与基础服务检查首先检查Oracle环境变量是否生效以及监听器是否启动。# 检查环境变量 echo $ORACLE_HOME echo $ORACLE_SID echo $PATH | grep oracle # 检查监听器状态 lsnrctl status # 如果未启动则启动它 lsnrctl start # 检查数据库实例进程是否存在 ps -ef | grep pmon # 应该能看到一个类似 ora_pmon_orcl 的进程5.2 数据库连接与基本功能测试通过本地和远程连接测试确保数据库服务正常。# 本地连接测试 (使用bequeath协议) sqlplus / as sysdba SQL SELECT * FROM dual; SQL exit; # 通过监听器连接测试 (需要配置tnsnames.ora这里用简易EZCONNECT) sqlplus system/YourStrongSystemPassword123localhost:1521/orcl尝试创建一个测试用户和表验证基本的DDL和DML操作CREATE USER testuser IDENTIFIED BY testpass DEFAULT TABLESPACE users; GRANT CONNECT, RESOURCE TO testuser; CONNECT testuser/testpass; CREATE TABLE test_table (id NUMBER, name VARCHAR2(50)); INSERT INTO test_table VALUES (1, 静默安装测试); COMMIT; SELECT * FROM test_table;5.3 典型安装失败场景与排查思路即使按照步骤操作也可能遇到问题。以下是几个高频故障点makefile相关错误如Error in invoking target agent nmhs根因几乎都是系统依赖包缺失或不匹配特别是compat-libstdc-33,libaio-devel,glibc-devel等。排查回顾2.1节使用rpm -qa | grep 包名逐一确认关键包是否安装。查看安装日志 ($ORACLE_BASE/oraInventory/logs/)找到具体的编译错误信息通常能指向缺失的库文件。安装程序无响应或卡在某个百分比根因网络问题响应文件中DECLINE_SECURITY_UPDATES未设为true程序在尝试连接Oracle官网。空间不足/tmp空间或目标安装目录空间不足。权限问题Oracle用户对安装目录 (/u01/app) 或清单目录 (/u01/app/oraInventory) 没有写权限。排查实时跟踪安装日志 (tail -f)看最后输出的错误信息。检查磁盘空间df -h。检查目录权限ls -ld /u01/app。DBCA建库失败根因密码复杂度响应文件中指定的sysPassword或systemPassword不符合Oracle默认的密码复杂度策略12c以后要求较高。路径不存在或权限不足datafileDestination或recoveryAreaDestination指定的目录不存在或Oracle用户无权写入。内存不足系统可用内存不足以完成建库过程。排查查看DBCA的详细日志 ($ORACLE_BASE/cfgtoollogs/dbca/sid/)。可以先尝试使用一个非常复杂的密码包含大小写字母、数字、特殊字符。确保目录已创建且权限正确。建库前可临时关闭无关进程释放内存。监听器启动失败或客户端无法连接根因监听器配置文件 ($ORACLE_HOME/network/admin/listener.ora) 配置错误或防火墙未开放1521端口。排查检查listener.ora中HOST是否设置为正确的主机名或IP。使用netstat -tlnp | grep 1521查看端口是否监听。关闭防火墙或添加规则firewall-cmd --permanent --add-port1521/tcp firewall-cmd --reload。5.4 必要的优化与安全设置安装完成后建议立即进行一些基础设置修改默认密码尽快修改SYS、SYSTEM等默认用户的密码。启用归档模式生产环境如果用于生产务必启用归档日志模式这是实现完整恢复的基础。SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN; -- 查看状态 ARCHIVE LOG LIST;调整内存参数根据服务器实际内存调整SGA和PGA大小。不要使用默认的微小内存设置。-- 查看当前内存设置 SHOW PARAMETER sga_target; SHOW PARAMETER pga_aggregate_target; -- 使用ALTER SYSTEM修改需要SPFILE ALTER SYSTEM SET sga_target4G SCOPEspfile; ALTER SYSTEM SET pga_aggregate_target1G SCOPEspfile; -- 重启数据库生效 SHUTDOWN IMMEDIATE; STARTUP;静默安装的熟练运用标志着你从“手工操作者”向“自动化运维者”的转变。它带来的不仅是效率提升更是环境标准化和部署可靠性的保证。把这份详细的配置和响应文件保存好它们就是你未来一键部署Oracle数据库的“配方”。下次再需要搭建环境时你只需要准备好干净的服务器运行几个脚本和命令泡杯咖啡的功夫一个生产就绪的数据库就已经在运行了。这种掌控感才是运维工作的乐趣所在。

相关新闻

《代码随想录》刷题打卡day30:动态规划-背包问题part01

《代码随想录》刷题打卡day30:动态规划-背包问题part01

【46.携带研究材料】 方法一:二维dp01背包 思路: 确定dp数组及下标含义: dp[i] [j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。 确定递推公式: **dp[i] [j] max(dp[i-…

2026/10/7 6:49:06 阅读更多 →
阿里云万相3.0:从创意简报到视频广告的AI工业化生产实践

阿里云万相3.0:从创意简报到视频广告的AI工业化生产实践

如果你是一名营销人员、内容创作者或产品经理,最近一定被“AI视频生成”刷屏了。从Sora的惊艳亮相,到Runway、Pika的持续迭代,再到国内各大厂的奋起直追,AI视频的门槛似乎在不断降低。但当你真正想用它来解决一个具体的商业需求—…

2026/10/10 22:19:27 阅读更多 →
麒麟V10防火墙管理实战:firewalld端口开放与安全合规指南

麒麟V10防火墙管理实战:firewalld端口开放与安全合规指南

1. 项目概述与核心场景解析 在机关单位的日常运维工作中,我们经常会遇到一个非常具体且棘手的问题:如何在国产化操作系统,比如中标麒麟V10上,处理防火墙策略。这个标题——“linux麒麟v10专有机关闭防火墙或开放端口的解决办法”—…

2026/10/13 8:36:14 阅读更多 →

最新新闻

MySQL慢查询定位与索引设计:EXPLAIN与B+树实战全解析

MySQL慢查询定位与索引设计:EXPLAIN与B+树实战全解析

接手线上业务系统这几年,最让我头疼的问题之一就是MySQL慢查询。明明功能开发完了、测试也过了,一到流量高峰期,几个核心接口突然就卡了几秒,数据库CPU飙高,紧接着就是连接数打满、应用报错。排查下来,十有…

2026/10/13 11:00:03 阅读更多 →
ASIO2WASAPI:让普通声卡也能跑低延迟ASIO的桥接实践

ASIO2WASAPI:让普通声卡也能跑低延迟ASIO的桥接实践

简介:ASIO2WASAPI 是面向 Windows Vista 及以上系统的开源音频驱动方案,为音乐制作人与音频工程师提供硬件无关的 ASIO 支持。它借助中间层将 ASIO 协议和 Windows 原生 WASAPI 结合,用独占模式逼近硬件极限延迟,解决无专用音频接…

2026/10/13 11:00:03 阅读更多 →
JumpServer统一纳管PostgreSQL:从资产配置到安全审计的完整实践

JumpServer统一纳管PostgreSQL:从资产配置到安全审计的完整实践

搞了这么多年运维,数据库资产一直是权限管理里最让人头疼的一环。尤其PostgreSQL这种逻辑库多、角色权限细的系统,直接让人连生产库,账号密码满天飞不说,出事了你连谁干的都查不到。前阵子刚把一套PostgreSQL完整接进了JumpServer…

2026/10/13 11:00:03 阅读更多 →
MySQL Workbench 从下载到实战:安装避坑、连接配置与日常管理技巧

MySQL Workbench 从下载到实战:安装避坑、连接配置与日常管理技巧

最早学数据库那会儿,我一直在黑窗口里敲命令。建表、导数据、改权限全靠手打,一条语句写错就得整条回滚,效率低不说,眼睛也是真遭罪。后来换了 MySQL Workbench,整个体验完全不一样:不用背那么多命令&#…

2026/10/13 11:00:03 阅读更多 →
快速搭建规范开源项目:从零构建可协作可维护的GitHub仓库

快速搭建规范开源项目:从零构建可协作可维护的GitHub仓库

1. 为什么“快速搭建规范开源项目”这件事,比你想象中更值得花时间 “快速在GitHub搭建一个规范的开源项目(一)”——这个标题里藏着三个被新手普遍低估的关键词: 快速 、 规范 、 (一) 。不是“建个…

2026/10/13 11:00:03 阅读更多 →
用帕累托图做线上问题优先级排序:从频次统计到加权决策

用帕累托图做线上问题优先级排序:从频次统计到加权决策

作为负责线上稳定性的工程师,我每天到工位后的第一件事,不是看代码,而是先扫一眼昨夜的问题清单。以前团队排故障优先级基本靠嗓门,谁在群里吼得凶就修谁的;直到我们用帕累托图把问题频次和影响摊开做排序,…

2026/10/13 10:58:59 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →