PostgreSQL 18 beta2 源码编译安装全流程:configure、initdb与避坑指南
简介这是PostgreSQL 18 Beta2的源码压缩包面向Linux平台下的数据库内核研发人员、高级DBA及对开源数据库实现感兴趣的开发者可用于编译安装、源码级调试与二次迭代。包体共2000个文件约27.79MB以1069个C源文件和885个头文件为核心组件C文件对应表管理、规则系统、数值运算、预写日志、堆存储、查询规划等关键模块头文件则提供模块间接口与数据结构定义另有少量TXT/MD说明文档、Shell构建脚本和SQL测试用例辅助理解整体编译和验证流程。目前已有54人下载学习。资源完整保留了PostgreSQL服务端的主要实现便于深入对照多版本并发控制、时间点恢复、异步复制等企业级特性来推演源码逻辑也适合在Linux环境直接展开源码构建与定制从中体会数据库内核在事务、存储、优化器等方面的设计取舍是一份难得的底层学习材料。1. 拿到 postgresql-18beta2.tar.gz 之后先想清楚这三件事第一次拿到 postgresql-18beta2.tar.gz我通常先看一眼文件尾部的时间戳确认它是不是社区刚放出来的第二个测试版。这个包是 PostgreSQL 18 的源码归档和官方仓库里的源码包内容一致区别只是被打成了 tar.gz 方便分发。它的价值不是直接上生产而是把正式版发布前的最后一个窗口用起来验证新特性、跑一遍回归测试、把升级链路的坑全部踩在测试环境里。反直觉的地方在于beta2 往往比最终版更值得装。因为大版本的功能特性在 beta1 已经冻结beta2 主要在做修复和收口你现在编译出来的东西跟个把月后的 RC 在功能面上已经高度接近。适合读这篇的人很明确要给 18 做技术预研的 DBA、想提前适配新版驱动和运维脚本的平台工程师以及愿意花半小时编译一个源码包来换后续省事的尝鲜派。动手前只需要想清楚三件事——装到哪个目录、要不要动 configure 开关、拿哪个数据目录去初始化剩下的交给命令。2. 解压 postgresql-18beta2.tar.gzconfigure 之前先备好依赖与编译开关2.1 解压 tar.gz 的正确姿势与目录结构拿到包后第一件事不是解压而是确认校验和。官方发布页会给 SHA256本地算一遍再动手能省掉后面排查玄学问题的时间sha256sum postgresql-18beta2.tar.gz tar -xf postgresql-18beta2.tar.gz cd postgresql-18beta2/ ls -F | sed -n 1,15ptar -xf不写-zGNU tar 会自动识别 gzip 压缩格式手工加-z反而容易在跨平台时因为 tar 版本差异翻车。解压后目录结构值得看一眼根目录的configure是核心构建脚本src/下按backend、bin、interfaces、pl分层doc/里是当前版本的 SGML 文档源码。这个目录结构对后续排错很有用。比如编译期间报错你能根据报错文件路径快速判断是优化器代码还是备份工具链的问题。另外注意一点官方 tar.gz 包内部已经带了生成好的语法解析器所以编译期间不需要单独安装 flex 和 bison只有当你从 Git 仓库直接拉源码时才必须准备这两个工具。这个差异每年都有人踩看到 configure 通过却在 make 阶段报bison: not found的人十有八九是拿 Git 源码当 tar.gz 在用。2.2 编译工具链和依赖库清单少一个 -develconfigure 就在同一步摔跤PostgreSQL 源码编译的依赖不算多但缺一个都过不了 configure。常见的发行版按两套命令来准备。以 RHEL/Rocky 系为例yum install -y gcc make readline-devel zlib-devel libicu-devel perlDebian/Ubuntu 系对应这套apt-get update apt-get install -y build-essential libreadline-dev zlib1g-dev libicu-dev perl这里的名字很容易误导人。readline-devel和libreadline-dev是同一个东西在不同发行版里的叫法它们提供的是头文件而readline或libreadline8只提供运行库。很多人只装了运行库结果 configure 报错时看到的信息是readline library not found第一反应是去重装 readline实际上缺的是开发包。依赖的作用也讲清楚readline 管 psql 交互行编辑没有它你连向上翻历史命令都用不了zlib 影响pg_dump压缩和 WAL 归档ICU 决定排序规则PostgreSQL 15 之后默认构建就带 ICU 支持如果不想因为排序规则不一致导致索引行为跟线上不一样建议在编译时显式打开。装完后可以快速确认头文件就位ls /usr/include/readline/readline.h /usr/include/zlib.h pkg-config --modversion icu-uc补充一个容易被忽略的点GCC 版本不要太老。PG 18 的 beta 代码大量使用新语法CentOS 7 自带的 GCC 4.8.5 很可能编译到某个文件直接报语法错误而且报错位置跟真实原因离得很远。我的做法是在编译手工升级 GCC 到 8 以上再继续不值得在这里浪费时间。2.3 configure 的四类开关不只有 --prefixconfigure 是源码安装最关键的一步因为它决定你后面编译哪些模块、链接哪些库、安装到哪里。最小可用的写法是只给定前缀目录但既然要验证 beta2我建议把下面这套参数用起来./configure --prefix/opt/pgsql18 \ --with-icu --with-uuide2fs \ --with-openssl --enable-nls --enable-debug--prefix/opt/pgsql18是安装根目录后续所有二进制、库、文档都装到这里。用独立前缀目录而不是默认的/usr/local是为了避免跟系统自带的 PostgreSQL 版本混在一起升级和回退都干净。--with-icu启用 ICU 排序规则支持这个开关直接影响initdb阶段能选哪些 locale--with-uuide2fs使用 Linux 自带的 libuuid让gen_random_uuid()和uuid-ossp扩展在编译期就把依赖解决掉否则后面建扩展时会报找不到共享库--with-openssl支持 SSL 加密连接生产环境几乎必开--enable-nls开启消息本地化让服务端日志和psql提示支持中文本地化不想要这个开销也可以去掉--enable-debug保留-g调试符号真遇到 core dump 时能多拿到一点现场信息代价是二进制体积变大。当 configure 跑完最后一行会显示PostgreSQL is ready to be built.。如果中间报错不要急着改参数重跑先看具体是哪个依赖没过——我遇到过 90% 的 configure 失败都能追溯到缺 -devel 包而不是参数写错。2.4 configure 日志怎么读错误不一定出现在最后一行configure 的输出有多层嵌套真正的失败点往往藏在checking for ...中间位置。为了不盯着终端干等推荐把输出重定向到文件里再观察./configure --prefix/opt/pgsql18 \ --with-icu --with-uuide2fs \ --with-openssl --enable-nls --enable-debug \ /tmp/cfg18.log 21 echo exit code: $? grep -i -n error\|not found /tmp/cfg18.log | tail -20$?是 configure 进程的退出码0 表示成功非 0 则必失败。grep -i是为了避免大小写干扰很多库名在日志里首字母大写或全大写大小写敏感地搜容易漏。这里有个小经验如果日志末尾出现一段checking for readline... no但系统里明明装了 readline那基本可以断定是头文件缺失也就是 2.2 里说的-devel包没装。日志里也会给出 cache 文件config.cache如果改完依赖重新 configure建议先删掉它再跑否则部分旧探测结果会被缓存导致你以为改了配置其实没生效。3. make 与 make install把 18beta2 装到 /opt/pgsql18 并配好运行用户3.1 make -j 的并行度不是核数越多越好configure 通过后正式进入编译阶段。命令看起来简单但并行度设不对会把你卡在 OOM 上make -j4如果嫌 4 太慢可以先看机器核数和内存再决定nproc free -h make -j$(nproc)这里的反直觉点在于编译 PostgreSQL 不是单纯的高 IO 任务每个编译单元都是大文件展开GCC 在并行编译时内存消耗几乎是线性叠加的。一台 32 核但只有 16GB 内存的机器make -j32跑到一半可能直接触发内核 OOM把正在编译的进程杀掉然后你看到的是一段完全不指向根因的Killed信息。我一般用物理内存GB减去 2 后再取一个保守值作为并行数比如 16GB 内存就用-j432GB 才敢上-j8。编译需要多长时间取决于 CPU 和磁盘。较新的服务器上首次全量编译大约 20 到 40 分钟老机器可能超过一小时。这个时间段不用干等可以提前准备第 4 章要用的目录和用户。如果编译中途失败修复依赖后直接重跑同一条make -j4make 会跳过已经编译成功的部分做增量通常复编只要原来的几分之一时间。3.2 make install 与安装布局验证装完先看 pg_config编译结束后执行安装。这里有一个常见的权限困惑configure 是用普通用户跑的但--prefix/opt/pgsql18需要写/opt所以make install要用 root 或 sudo 执行sudo make -j4 install /opt/pgsql18/bin/pg_config --version /opt/pgsql18/bin/pg_config --bindir --sharedirmake -j4 install里再带一次-j4是有效的它让 install 阶段的文件拷贝也能并行但多数时候 install 本身就很快带不带差别不大。/opt/pgsql18/bin/pg_config --version用来确认安装的确实是 18beta2 而不是之前残留的版本。pg_config这个工具经常被忽略但它几乎是所有依赖 PG 的第三方库编译时的钥匙--bindir返回二进制目录、--sharedir返回扩展 SQL 脚本目录、--pkglibdir返回共享库目录。后面装 TimescaleDB 这类扩展时configure 会直接调用pg_config寻找 PG 的安装路径所以环境变量里把/opt/pgsql18/bin加到 PATH 是必须的。安装后的目录结构要心里有数bin/放着postgres、psql、pg_dump、pg_ctl等全部工具lib/是扩展和内部动态库share/存放扩展的 SQL 安装脚本、时区数据、消息翻译文件include/是开发头文件。整个安装目录可以随时整体删掉重来这个特性是源码包最大的后悔药。3.3 创建运行用户与数据目录隔离root 只在安装时出现一次PostgreSQL 的服务进程严禁用 root 运行这是从 initdb 阶段就强制检查的。所以安装完成后马上创建专用运行账号并把数据目录的所有权切过去sudo useradd -M -s /bin/bash pgsql sudo mkdir -p /var/lib/pgsql/18/{data,log} sudo chown -R pgsql:pgsql /var/lib/pgsql/18 sudo chmod 700 /var/lib/pgsql/18/data-M表示不创建 home 目录对专门跑数据库的用户来说 home 目录用途不大省得系统再生成一个默认目录。data目录权限必须设成 700PostgreSQL 启动时会主动检查目录权限如果是 755 它会直接拒绝启动因为数据目录里的文件包含敏感信息任何其他系统用户都不应该能进入。目录规划这里多说两句。我习惯把数据、日志、备份三个目录分开/var/lib/pgsql/18/data存实例数据/var/lib/pgsql/18/log存pg_ctl指定的日志备份独立放/backup/pg18。这样最直接的好处是清日志、清备份、做盘容量规划都互不干扰磁盘快满时不用在一堆文件里找谁是大头。3.4 环境变量PATH 要加PGDATA 我劝你别加切到 pgsql 用户后需要把 PG 的 bin 目录加进 PATHecho export PATH/opt/pgsql18/bin:$PATH /home/pgsql/.bashrc这里不要写全局/etc/profile只写到 pgsql 用户自己的 bashrc 就行避免影响系统上其他账号的环境。还有个细节很多教程让你也导出PGDATA我建议不要。PGDATA一旦全局生效你执行initdb、pg_ctl时如果忘记写-D参数它会静默使用这个变量指向的目录。在同时维护 17 和 18 两个实例的过渡期这样误操作的代价非常高。每次命令显式写-D虽然啰嗦但能避免你启动错实例还浑然不知。另外如果安装路径是/opt/pgsql18这种非标准位置postgres进程在加载libicu等系统库时一般没问题但如果把 PostgreSQL 装到/usr/local/pgsql外的自定义位置且遇到error while loading shared libraries才需要补LD_LIBRARY_PATH。没遇到这个错就不用加这个变量加多了反而会干扰其他软件库加载。4. initdb 与 pg_ctl初始化数据目录、拉起实例并跑通第一个查询4.1 initdb 参数怎么设编码、locale、密码、checksum 一次定好编译完成后用 pgsql 用户初始化数据目录。这一步的参数会固化到postgresql.conf里后期改起来成本比一步到位高得多sudo -u pgsql /opt/pgsql18/bin/initdb \ -D /var/lib/pgsql/18/data \ -U postgres -E UTF8 \ --localeen_US.UTF-8 -W -k-D指向数据目录目录可以不存在initdb 会自动创建-U postgres指定超级用户名不要用默认值默认会取当前系统用户名如果你用 pgsql 账号执行超级用户会变成 pgsql后面不少自动化脚本会默认连 postgres容易踩兼容坑-E UTF8指定数据库默认编码除非你有特殊兼容需求否则 UTF8 是唯一合理选择--localeen_US.UTF-8决定排序规则要注意系统里必须已经生成了这个 locale可以用locale -a确认没有的话用--localeC.UTF-8或--localeC兜底C locale 排序快但不太符合自然语言习惯。-W会交互式要求你设置超级用户密码这一步不要跳过也別在命令里直接写明文密码以后改密码很简单但初始密码留在 shell history 里很难清理。-k是--data-checksums的简写开启数据块校验和。PG18 里默认还不开但我强烈建议打开它可以帮你提前发现磁盘静默损坏代价是大约 0.5% 到 1% 的性能损耗。在 beta 版验证阶段打开能尽早暴露存储层问题比上了生产再发现某个数据页坏了再想办法要有退路得多。4.2 pg_ctl 启动日志文件先行状态靠它确认初始化成功后启动实例。第一次启动必须把日志文件准备好否则 pg_ctl 会直接报错退出sudo -u pgsql /opt/pgsql18/bin/pg_ctl \ -D /var/lib/pgsql/18/data \ -l /var/lib/pgsql/18/log/pg.log \ start-l指定日志文件路径。这个文件不会自动创建但它所在的目录必须存在且 pgsql 用户有写权限。如果在第 3 章按/var/lib/pgsql/18/log规划过这一步就不会出问题。我见过有人在/tmp下放日志结果重启后日志丢了排障时一脸懵。启动成功的判断标准不是 pg_ctl 打印了一串字而是pg_ctl status返回 runningsudo -u pgsql /opt/pgsql18/bin/pg_ctl \ -D /var/lib/pgsql/18/data status如果启动失败第一件事永远是看日志尾部而不是重试sudo -u pgsql tail -n 40 /var/lib/pgsql/18/log/pg.log日志里最常见的启动失败原因是数据目录权限不对或者某个配置参数值非法错误信息通常在前几行就写清楚了。这里提醒一句不要用一个 sudo 命令把日志 tail 出来就完事注意看时间戳确认那几行是刚才启动时新写的而不是昨天遗留的旧错误。4.3 连接配置先搞清楚现在能连谁、怎么连刚初始化完的实例默认只监听本地 Unix socketlisten_addresses是localhost。用 pgsql 系统账号直连本地 socket 不需要密码这是 PG 的默认信任策略sudo -u pgsql psql -d postgres进入 psql 后先确认几个关键参数SHOW unix_socket_directories; SHOW listen_addresses; SHOW port; SELECT version();unix_socket_directories默认是/tmp所以psql不带-h时就能连上。listen_addresses默认是localhost意味着本机 TCP 可以连局域网和公网都不行这个默认值对测试环境来说基本够用。如果要让别的机器访问用ALTER SYSTEM修改是比直接编辑 postgresql.conf 更干净的方式因为ALTER SYSTEM只改postgresql.auto.conf不动主配置将来对比改动更容易ALTER SYSTEM SET listen_addresses 127.0.0.1; SELECT pg_reload_conf();ALTER SYSTEM写进的参数在 reload 后生效不需要重启。如果本机测试listen_addresses保持localhost即可改它反而多暴露一个端口给外部。4.4 把默认 trust 改成密码认证beta 测试也别裸奔默认的 pg_hba.conf 对本地连接是trust也就是任何能登录 pgsql 系统账号的人都可以免密成为超级用户。测试环境也建议改成scram-sha-256这一步能让后续所有连接行为跟生产对齐sudo -u pgsql sed -i \ -e s/^local all all trust/local all all scram-sha-256/ \ -e s/^host all all 127.0.0.1\/32 trust/host all all 127.0.0.1\/32 scram-sha-256/ \ /var/lib/pgsql/18/data/pg_hba.conf改完配置文件后要 reloadsudo -u pgsql /opt/pgsql18/bin/pg_ctl \ -D /var/lib/pgsql/18/data reload此时用 TCP 连接就必须要密码了顺便验证一下超管密码是否设置成功PGPASSWORD密码 psql -h 127.0.0.1 -U postgres -d postgres这一步如果报password authentication failed通常不是密码错了而是 4.1 里那个-W你没执行超级用户密码是空的认信用scram-sha-256又能通过形成了矛盾状态。解决方式是先用本地 socket 连进去ALTER USER postgres PASSWORD 新密码;再回来用 TCP 连。4.5 建一个应用库做冒烟测试beta2 能不能用来跑业务逻辑连接验证通过后建一个应用库跑一圈基本操作确认编码、权限、查询链路都没问题CREATE USER app WITH PASSWORD app_pass_123; CREATE DATABASE appdb OWNER app ENCODING UTF8; \q然后从应用账号视角连一次PGPASSWORDapp_pass_123 psql -h 127.0.0.1 -U app -d appdb在 appdb 里执行CREATE TABLE t1 (id int primary key, ts timestamptz default now()); INSERT INTO t1 (id) VALUES (1), (2), (3); SELECT count(*), max(ts) FROM t1;这段冒烟覆盖了建库、授权、建表、写入、聚合查询几条最基本路径。PG 18 的 backend 在 beta2 阶段不会再有大的行为变更如果在这里出现崩溃、死锁、或者invalid memory alloc request size之类的报错值得记下完整堆栈反馈给社区。多数情况下这套流程跑下来不会有问题但这一轮验证跑完你对这个包是否可信就有了自己的判断不再依赖别人的宣传口径。5. 源码安装避坑configure、initdb、升级兼容的 5 条真实踩坑5.1 configure 卡在 readline library not found现象./configure跑了很久最后报错checking for readline... no或readline library not found退出码非 0。原因系统里装了 readline 运行库但没装readline-devel。configure 检查的是头文件不是动态库运行库本身帮不上忙。这类问题在 CentOS/RHEL 系上尤其常见默认最小化安装往往不带开发包。解决不要慌装完开发包重跑 configure 即可。RHEL 系执行yum install -y readline-develDebian 系执行apt-get install -y libreadline-dev装完后再跑一次通常后面还有 zlib 和 ICU 两个类似的坑干脆把 2.2 节里的依赖一次装齐省得 configure 每跑一次报一个新错。5.2 编译到一半被 Killed日志里没有任何错误现象make -j$(nproc)跑了几分钟后终端出现一行Killed或者编译进程静默消失重跑又从某个文件开始继续反复推进不了。原因并行度过高导致内存耗尽内核 OOM 把编译进程杀了。32 核机器只配 16GB 内存时尤其常见GCC 对每个翻译单元的内存占用可能到 1GB 以上翻倍叠加后瞬间触顶。解决换小并行度重编make -j4是低配机器的安全牌。也可以用make -j4先编完核心 backend再对剩余模块用稍高并行度补编。重点是别反复用高并行度重试那不是运气问题是资源边界问题。5.3 initdb 报错cannot be run as root现象用 root 执行/opt/pgsql18/bin/initdb立刻报FATAL: cannot be run as root。原因PostgreSQL 从安全设计上禁止 root 初始化数据目录。root 启动 postgres 会让文件权限模型失去意义任何被数据库读取的文件只要落在 root 权限范围内风险都会被放大社区直接在 initdb 里硬性拦截。解决切换用户再执行。sudo -u pgsql /opt/pgsql18/bin/initdb ...前提是数据目录的属主已经是 pgsql。如果你用 root 在/var/lib/pgsql/18/data下创建过目录需要先chown -R pgsql:pgsql再切换否则 initdb 会继续报权限错误。5.4 pg_ctl start 提示 could not start server日志里是 Permission denied现象pg_ctl start返回失败尾部日志只有一行Permission denied没有更多的上下文。原因数据目录权限不对。最常见的是用 root 执行过mkdir或者chmod 755 data导致 pgsql 用户无法在数据目录里创建postmaster.pid和临时文件。PostgreSQL 对数据目录权限非常严格755 都不行必须是 700。解决chown -R pgsql:pgsql /var/lib/pgsql/18/data然后chmod 700 /var/lib/pgsql/18/data。另外顺便检查有没有残留的postmaster.pid——如果之前异常关机留下这个文件且文件里的 PID 已经不存在PostgreSQL 会因为检测到 stale pid 而拒绝启动。先ps -ef | grep postgres确认没有活着的进程再删掉这个 pid 文件重新启动。5.5 拿旧版本数据目录直接启动 PG 18beta2报 database files are incompatible现象把 PG 13 或 PG 17 的数据目录-D指给 18beta2 的 pg_ctl启动直接失败日志里出现FATAL: database files are incompatible with server。原因PG 的主版本数据目录格式不向下兼容beta2 连兼容 PG 17 数据目录的能力都没有。这个错误发生在启动早期所以你不会看到任何日志细节因为它根本没走到读取数据那一步。解决beta 阶段不要做任何“原地升级”的尝试。验证升级路径要用逻辑迁移先从旧库pg_dump出来再往 18beta2 实例里pg_restorepg_dump -h 旧库地址 -U postgres -Fc 旧库名 beta18_before.dump PGPASSWORDapp_pass_123 psql -h 127.0.0.1 -U app -d appdb -c DROP SCHEMA public CASCADE; CREATE SCHEMA public; pg_restore -h 127.0.0.1 -U app -d appdb --no-owner beta18_before.dump--no-owner是必须的因为 dump 文件里记录的是旧库的属主和权限恢复到新环境时如果用户不一致会报一堆角色不存在。这个流程跑通之后等 PG 18 正式版出来再评估pg_upgrade这类原地升级工具beta 阶段不用惦记它。6. 回归测试与升级演练判断 18beta2 值不值得投入的两种验证6.1 make check让编译器替你回答“这个包能用吗”在所有手工冒烟之外PostgreSQL 自带一套完整回归测试这是判断源码包是否健康的最快路径make -j4 check这个命令会在源码目录的临时子目录里创建一个独立测试实例运行几千条 SQL 和工具测试后自动清理不会污染你现在正在跑的 5432 实例。跑完看末尾的汇总如果出现All tests passed或者只有个别已知失败项说明当前环境和编译器组合是可用的如果出现大段失败通常不是代码坏了而是测试环境里某些 locale 或扩展依赖没配对比如 ICU locale 缺失会导致一批排序规则相关用例失败。注意make check默认会占用物理端口 65432 附近的地址如果被占用显式指定端口再跑make -j4 check PORT65433这套测试在 beta2 阶段跑一遍很有价值。它相当于社区帮你打包好的冒烟清单覆盖了解析器、执行器、事务、备份工具等几乎所有子系统。我通常拿它作为“这个包能不能信”的硬指标比自己写几十条 SQL 的覆盖面大得多。6.2 升级演练记录三段时间正式版来时你就有底beta2 阶段做升级演练成本很低收益却在正式版发布那天兑现。我给自己的要求是每次 beta 都要完整记录三段时间pg_dump耗时、pg_restore耗时、业务查询冒烟耗时。格式很简单环节关键命令关注点备份pg_dump -Fc olddb beta18.dump有没有权限报错、耗时波动恢复pg_restore -d appdb --no-owner beta18.dump对象是否完整、有无类型转换告警验证跑一遍业务核心查询排序规则、索引是否行为变化如果 dump 出来的文件里包含扩展对象比如postgis或uuid-ossprestore 之前要确认新环境已经编译安装了对应扩展。beta2 阶段最容易翻车的是自制类型和函数那些依赖 PG 内部行为变化的对象dump 不一定报错但 restore 时可能语义已经不一样。所以恢复后别只看表数量对得上要挑几条业务查询实际跑一遍。我养成的习惯是每个大版本 beta1 出来先编译一次探路beta2 换 tar.gz 重编一遍并完整跑回归等 RC 出现时升级计划基本就是把验证过的流程原样复制而不是临时现学。beta2 阶段花掉的这一个小时换来的是正式版落地当天的从容。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Unity自定义包开发实战:从模块复用到团队依赖管理

Unity自定义包开发实战:从模块复用到团队依赖管理

1. 为什么自定义包值得研究很多 Unity 开发者第一次接触 Unity Custom Package 自定义包这个概念时容易误解,以为这只是把代码换个地方放而已。其实真不是这样,自从 Unity 引入 Package Manager 之后,自定义包就不只是“文件夹里多一个 packa…

2026/10/3 18:39:14 阅读更多 →
Flask与Django双框架协作:校园闲置物品换购平台实战详解

Flask与Django双框架协作:校园闲置物品换购平台实战详解

看到"基于flask-django"这种题目的时候,不少同学第一反应是:这俩框架是不是得二选一?或者怕写成"用Django做了个主页、用Flask做了个登录页"的缝合怪。其实这类设计题目真正想考察的,是你能不能理解两个Web框架各自的能力边界&…

2026/10/3 18:39:14 阅读更多 →
TraeWork与TraeCode接入GPT-6 Sol和Claude Opus 5.5:API Key配置与报错排查指南

TraeWork与TraeCode接入GPT-6 Sol和Claude Opus 5.5:API Key配置与报错排查指南

1. 这套组合到底能解决什么问题 先说清楚这套东西是干嘛的。TraeWork 和 TraeCode 是两套面向不同场景的 AI 工作环境,前者偏向文档写作、资料整理、文献综述这类"输出型"任务,后者偏向代码生成、调试、项目重构这类"工程型"任务。而…

2026/10/3 18:38:13 阅读更多 →

最新新闻

想找“像 Qoder 一样能接任务”的办公 Agent?TaoToken 统一 Key 下 TraeWork、WorkBuddy 与 Qoder 怎么选

想找“像 Qoder 一样能接任务”的办公 Agent?TaoToken 统一 Key 下 TraeWork、WorkBuddy 与 Qoder 怎么选

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

2026/10/3 19:18:07 阅读更多 →
OpenClaw 接入钉钉:把回调地址与鉴权配置改到 TaoToken 的完整实操

OpenClaw 接入钉钉:把回调地址与鉴权配置改到 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/3 19:18:06 阅读更多 →
3连败熔断机制:保护资金的自动停损设计

3连败熔断机制:保护资金的自动停损设计

3连败熔断机制:保护资金的自动停损设计 策略连续亏损是每个量化交易者都会遇到的事。问题不在于亏损本身,而在于亏损之后的处理方式。很多人会选择"再扛一扛",结果小亏变大亏。这篇文章讲一个简单的工程手段:3连败熔断—…

2026/10/3 19:18:06 阅读更多 →
Kimi Claw春节档爆火后,TaoToken统一API通道怎么接AI Agent

Kimi Claw春节档爆火后,TaoToken统一API通道怎么接AI Agent

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

2026/10/3 19:18:06 阅读更多 →
为什么 repomix-rs 是给 AI 提供代码上下文的最佳选择?TaoToken 统一 Key 接入实测

为什么 repomix-rs 是给 AI 提供代码上下文的最佳选择?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/3 19:18:04 阅读更多 →
大模型在写代码,DeepSeek 把“国产算力软件栈”从能跑到吃满

大模型在写代码,DeepSeek 把“国产算力软件栈”从能跑到吃满

2026 年 10 月,AI 圈最热闹的新闻不是“又发了一个新模型”,而是模型层已经卷到头,战争打到了算子、编译器和芯片驱动那一层。DeepSeek 把一整套原本跑在英伟达上的底层组件,搬到了华为昇腾:TileLang、DeepGEMM、DeepE…

2026/10/3 19:17:01 阅读更多 →

日新闻

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南 【免费下载链接】ex-skill 前任 skill 项目地址: https://gitcode.com/gh_mirrors/exsk/ex-skill 前任.skill 是一个运行在 Claude Code 上的开源 Skill:导入微信、iMessage、短信、…

2026/10/3 0:00:27 阅读更多 →
45个经典Linux面试题:从命令到网络排障的完整考点解析

45个经典Linux面试题:从命令到网络排障的完整考点解析

刚开始带应届生的时候,我最头疼的就是他们拿着一摞Linux面试题背得滚瓜烂熟,一上机全露馅。后来自己从被面的人变成面别人的人,才慢慢摸清楚:Linux面试题考的根本不是答案本身,而是你面对一个不确定的系统问题时&#…

2026/10/3 0:01:28 阅读更多 →
SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

简介:本资源是一份面向SAP ABAP开发人员、生产计划专员及ERP实施顾问的实操型操作指南,聚焦SAP生产预留核心业务场景,系统解决物料预留创建、查询、校验与批量处理等高频问题。文档以结构化方式覆盖预留背景原理、OMC2编码规则、工厂级参数配…

2026/10/3 0:01:28 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/3 9:14:33 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/3 9:47:50 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/3 9:42:31 阅读更多 →

月新闻

我发现了一个新思路:用 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/2 10:36:31 阅读更多 →
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/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练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/3 9:42:36 阅读更多 →