CentOS 7 安装配置JDK全攻略:OpenJDK选型、YUM与手动安装详解
1. 项目概述为什么在CentOS 7上安装JDK依然是关键一步如果你刚拿到一台崭新的CentOS 7服务器或者接手了一个老旧的、需要Java环境支持的项目那么配置JDKJava Development Kit几乎是你绕不开的第一步。尽管现在Java 17、21等新版本已经提供了更现代化的安装方式但CentOS 7作为一款长期稳定、在企业内部广泛部署的Linux发行版其上Java环境的部署依然是一个高频且必须掌握的运维技能。这不仅仅是运行一个yum install java那么简单从选择哪个JDK版本Oracle JDK vs OpenJDK、采用哪种安装方式YUM仓库、RPM包还是手动解压到后续的环境变量配置、多版本管理以及安全加固每一步都藏着细节和“坑”。我见过不少新手在配置完JAVA_HOME后java -version命令依然报错或者Tomcat启动时找不到正确的Java路径。也遇到过生产环境因为使用了不受支持的Java版本而导致的兼容性问题。因此这篇内容的目的就是带你从头到尾、事无巨细地走一遍在CentOS 7上安装和配置JDK的全过程。我会基于最常见的生产实践不仅告诉你“怎么做”更会解释“为什么这么做”并分享那些只有踩过坑才知道的注意事项。无论你是运维工程师、后端开发者还是正在学习Linux的学生这篇指南都能让你获得一个稳定、可控且易于管理的Java运行环境。2. 核心思路与方案选型OpenJDK还是Oracle JDK在动手之前我们必须先做一个关键决策选择哪个JDK发行版。这直接关系到后续的安装方式、许可协议和长期维护成本。2.1 OpenJDK开源社区的首选OpenJDK是Java SE平台的开源参考实现。自从Oracle调整了JDK的发布策略后OpenJDK已经成为绝大多数场景下的默认和推荐选择。对于CentOS 7而言选择OpenJDK有以下几个压倒性优势官方仓库集成CentOS 7自带的YUM/DNF仓库中就包含了OpenJDK的各个版本。这意味着你可以通过系统包管理器一键安装、更新和卸载依赖关系自动处理最为省心。零成本完全免费无论是用于开发、测试还是生产环境都无需担心许可费用问题。长期支持由Red HatCentOS的赞助商等厂商提供长期支持LTS版本的维护和安全性更新对于追求稳定的企业环境至关重要。例如OpenJDK 8和OpenJDK 11都有很长的支持周期。与系统兼容性最佳作为系统包管理器分发的软件它与系统其他组件的兼容性经过充分测试。结论对于绝大多数生产环境、个人学习以及一般性开发我强烈推荐使用OpenJDK。它的易用性、稳定性和零成本特性使其成为CentOS 7上的不二之选。我们后续的演示也将以OpenJDK 8一个极其经典的LTS版本和OpenJDK 11目前另一个主流的LTS版本为例。2.2 Oracle JDK特定场景的考量Oracle JDK曾经是标准答案但现在其定位发生了变化。它基于OpenJDK构建但包含了一些Oracle专属的商业特性、工具如Java Flight Recorder和更严格的许可协议。在CentOS 7上考虑它通常仅限于以下情况明确依赖Oracle专属特性你的应用必须使用到只有Oracle JDK才提供的工具或功能。历史遗留系统要求一些非常老旧的、定制化的商业软件可能指定必须使用Oracle JDK。愿意接受许可协议你需要仔细阅读并接受Oracle Technology Network License Agreement特别是对于生产环境的使用许可条款可能涉及费用。安装方式通常需要手动从Oracle官网下载RPM或.tar.gz压缩包进行安装无法通过系统仓库直接安装后续更新和维护也更麻烦。注意除非你有非常确凿的理由否则请避免在CentOS 7上使用Oracle JDK。OpenJDK在功能上已经完全可以满足99%的需求且避免了潜在的许可风险。2.3 安装方式决策树确定了发行版后我们还要选择安装方法YUM/DNF安装推荐给绝大多数用户优点极其简单一条命令自动管理依赖和更新与系统完美集成。缺点仓库中的版本可能不是最新的小版本安装路径由系统包管理器固定通常是/usr/lib/jvm/。适用快速搭建标准环境追求稳定和易维护。手动下载RPM包安装优点可以安装特定的小版本号依然算是一种“包管理”安装会注册到系统。缺点需要手动寻找和下载RPM包更新需要手动操作。适用需要精确控制OpenJDK小版本且希望保留一些包管理特性的场景。手动下载TAR包解压最灵活也最手动优点极度灵活可以安装在任何路径可以在一台机器上轻松安装和管理多个JDK版本。缺点所有事情都需要手动完成下载、解压、设置环境变量、创建软链接等系统不会将其视为一个已安装的“包”。适用开发者本地环境需要频繁切换JDK版本对安装目录有强制要求学习JDK内部结构的极佳方式。在本指南中我们将重点讲解最推荐的YUM安装和最灵活/通用的TAR包手动安装两种方式确保你能覆盖绝大部分实际需求。3. 实操准备系统检查与清理在开始安装前花几分钟时间做好准备工作可以避免很多后续的混乱。3.1 检查现有Java环境首先我们需要查看系统是否已经安装了Java以及安装了什么。java -version如果系统返回类似“command not found”的信息说明没有安装任何JDK。如果返回了版本信息例如openjdk version 1.8.0_392 OpenJDK Runtime Environment (build 1.8.0_392-b08) OpenJDK 64-Bit Server VM (build 25.392-b08, mixed mode)这说明已经安装了OpenJDK 8。你需要决定是保留它、升级它还是卸载它再安装新版本。接下来查看更详细的信息找到JDK的安装路径这对后续配置至关重要。which java这个命令通常返回/usr/bin/java但这只是一个指向实际Java可执行文件的软链接。ls -l /usr/bin/java你会看到类似这样的输出lrwxrwxrwx. 1 root root 22 Apr 10 10:00 /usr/bin/java - /etc/alternatives/java继续追踪ls -l /etc/alternatives/java最终你会找到真实的Java二进制文件路径例如/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.x86_64/jre/bin/java。记下/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.x86_64这个路径它就是JAVA_HOME的候选值。3.2 卸载旧版本如需如果你需要安装一个全新的版本或者现有的版本不符合要求可以考虑卸载。请谨慎操作确保不会影响正在运行的服务。对于通过YUM安装的OpenJDK# 查询已安装的java相关包 rpm -qa | grep -i java # 输出可能包含java-1.8.0-openjdk-headless-1.8.0.392-1.b08.el7.x86_64 # java-1.8.0-openjdk-1.8.0.392-1.b08.el7.x86_64 # javapackages-tools-3.4.1-11.el7.noarch # 卸载JDK包 (以openjdk 1.8.0为例请根据实际查询到的包名操作) sudo yum remove -y java-1.8.0-openjdk java-1.8.0-openjdk-headless-headless包是运行无头环境没有图形界面所必需的通常服务器环境安装这个就够了。如果你之前安装了带图形支持的版本包名可能不带headless。对于手动安装的版本如果之前是手动解压TAR包安装的直接删除解压的目录并清理/etc/profile或用户~/.bashrc中相关的环境变量配置即可。实操心得在生产服务器上除非万不得已不要轻易卸载正在被业务使用的Java版本。建议先在新目录安装新版本配置好环境并充分测试后再考虑替换或移除旧版本。可以使用alternatives命令来管理系统中的多版本Java实现平滑切换。4. 方案一使用YUM安装OpenJDK最快捷这是最推荐给新手和追求效率的运维人员的方案。我们以安装OpenJDK 8和OpenJDK 11为例。4.1 搜索可用的OpenJDK版本首先查看YUM仓库中提供了哪些OpenJDK包。sudo yum search openjdk你会看到一长串列表重点关注名称中带版本号的开发包例如java-1.8.0-openjdk(OpenJDK 8 运行时环境)java-1.8.0-openjdk-devel(OpenJDK 8 开发工具包 -包含编译器javac等这才是完整的JDK)java-11-openjdk(OpenJDK 11 运行时环境)java-11-openjdk-devel(OpenJDK 11 开发工具包)关键点如果你只需要运行Java程序例如运行一个Spring Boot的JAR包安装java-xx-openjdk就够了。但如果你是开发者需要编译Java源码使用javac或者某些构建工具如Maven、Gradle明确要求JDK环境那么必须安装devel版本。通常为了环境完整我建议直接安装devel版本。4.2 安装OpenJDK 8# 安装OpenJDK 8开发工具包JDK sudo yum install -y java-1.8.0-openjdk-devel # 安装完成后验证安装 java -version javac -version如果两个命令都能正确输出版本信息java版本为1.8.xjavac版本也为1.8.x说明安装成功。4.3 安装OpenJDK 11如果你的应用需要更新的Java特性可以安装OpenJDK 11。CentOS 7的默认仓库可能已经包含如果没有可能需要配置EPEL等额外仓库。但通常直接安装即可。# 安装OpenJDK 11开发工具包JDK sudo yum install -y java-11-openjdk-devel安装后系统会同时存在两个版本的Java。此时java -version显示的可能是后安装的版本因为alternatives系统更新了软链接。我们需要学习如何管理和切换。4.4 管理多个Java版本使用alternativesCentOS使用alternatives命令来管理系统中多个同类型软件的命令链接。这对于管理多个JDK版本非常有用。# 查看当前系统中所有已注册的java命令 sudo alternatives --config java # 输出示例 There are 2 programs which provide java. Selection Command ----------------------------------------------- * 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.x86_64/jre/bin/java) 2 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-0.el7_9.x86_64/bin/java) Enter to keep the current selection[], or type selection number:你可以输入对应的数字如2然后回车来切换系统默认的java命令指向OpenJDK 11。同样可以管理javac命令sudo alternatives --config javacYUM安装的路径通过YUM安装的JDK其JAVA_HOME路径有规律可循通常位于/usr/lib/jvm/目录下并以Java版本命名。例如OpenJDK 8:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.x86_64(注意这个路径下的jre目录是JRE其上一级才是JDK的JAVA_HOME。更准确的方法是使用dirname $(dirname $(readlink -f $(which java)))命令动态获取)OpenJDK 11:/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-0.el7_9.x86_645. 方案二手动安装TAR包最灵活当你需要特定小版本、希望自定义安装目录或者需要在一台机器上维护多个独立JDK版本时手动安装是最好的选择。这里我们以从Adoptium原AdoptOpenJDK网站下载OpenJDK为例。5.1 下载JDK TAR包首先访问 Adoptium Temurin 网站。选择你需要的版本如11、架构x64和包类型.tar.gz。使用wget命令在服务器上下载。# 创建一个专门的目录存放下载的JDK这里以/opt/software为例 sudo mkdir -p /opt/software cd /opt/software # 下载OpenJDK 11的tar包 (请替换为实际找到的最新链接) # 注意以下链接仅为示例请从官网获取最新稳定版的直接下载链接 sudo wget https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.23%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.23_9.tar.gz # 如果wget速度慢可以先在本地下载然后通过scp或sftp工具上传到服务器。5.2 解压与目录规划规划好你的安装目录。通常第三方软件习惯安装在/opt或/usr/local下。我们将JDK解压到/usr/local/java/目录这是一个常见的约定。# 创建目标目录 sudo mkdir -p /usr/local/java # 解压下载的tar包到目标目录 sudo tar -xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.23_9.tar.gz -C /usr/local/java/ # 查看解压后的目录 ls -lh /usr/local/java/ # 你会看到一个类似 jdk-11.0.239 的目录为了便于管理我们可以创建一个软链接指向当前使用的JDK版本。cd /usr/local/java sudo ln -s jdk-11.0.239/ current-jdk这样/usr/local/java/current-jdk就始终指向我们当前激活的JDK版本。未来升级时只需解压新版本然后更改这个软链接的目标即可无需改动环境变量。5.3 配置系统环境变量这是手动安装最关键的一步我们需要告诉系统Java的位置。有两种主要方式系统级配置和用户级配置。系统级配置推荐用于服务器修改/etc/profile文件对所有用户生效。sudo vim /etc/profile在文件末尾添加以下内容# 设置 JAVA_HOME指向我们创建的软链接 export JAVA_HOME/usr/local/java/current-jdk # 将 JDK 的 bin 目录添加到 PATH 环境变量中 export PATH$JAVA_HOME/bin:$PATH配置解析JAVA_HOME许多Java应用和工具如Tomcat, Maven, Gradle都依赖这个变量来定位Java安装根目录。PATH$JAVA_HOME/bin:$PATH将$JAVA_HOME/bin添加到PATH的最前面。这样当你在终端输入java或javac时系统会优先使用我们自定义的JDK版本。:$PATH表示保留原有的PATH内容。用户级配置如果只想为当前用户配置可以编辑用户家目录下的~/.bashrc文件添加同样的两行export语句。5.4 使环境变量生效并验证修改完配置文件后需要让配置立即在当前终端生效或者新开一个终端。# 重新加载 /etc/profile 文件 source /etc/profile # 验证配置 echo $JAVA_HOME # 应输出/usr/local/java/current-jdk which java # 应输出/usr/local/java/current-jdk/bin/java java -version javac -version # 应正确显示你安装的OpenJDK 11版本信息重要注意事项source /etc/profile只对当前登录的Shell会话生效。如果你是通过SSH新开了一个连接或者希望永久生效最简单的方法是退出当前SSH会话并重新登录。此时再执行java -version应该就能看到新配置的JDK版本了。6. 深入配置与优化安装完成并验证通过后还有一些配置可以优化你的Java环境。6.1 验证JAVA_HOME被正确识别除了用echo $JAVA_HOME查看一个更可靠的测试方法是使用一个依赖JAVA_HOME的简单命令。# 这个命令会列出JAVA_HOME指向目录下的所有内容如果设置正确会正常列出文件 ls -l $JAVA_HOME # 或者使用java命令本身来打印一些系统属性其中包含java.home java -XshowSettings:properties -version 21 | grep java.home如果这些命令都能成功执行说明JAVA_HOME配置无误。6.2 配置默认字符集解决中文乱码CentOS 7默认的语言环境可能不包含完整的中文字符集导致Java程序输出或日志中的中文变成乱码方块或问号。我们可以通过设置Java的file.encoding和系统语言环境来解决。首先检查系统当前的语言环境locale如果LANG或LC_ALL不是zh_CN.UTF-8或en_US.UTF-8这类UTF-8编码就需要设置。方法一修改系统全局语言环境推荐# 编辑locale配置文件 sudo vim /etc/locale.conf # 添加或修改为 LANGen_US.UTF-8 # 或者使用中文 # LANGzh_CN.UTF-8 # 使配置生效 (可能需要重启系统或重新登录) source /etc/locale.conf # 也可以临时设置 export LANGen_US.UTF-8方法二在启动Java应用时指定字符集对于特定的应用你可以在启动命令中强制指定字符集java -Dfile.encodingUTF-8 -jar your-application.jar6.3 调整JVM默认内存参数可选对于服务器应用根据硬件情况调整JVM的初始堆内存Xms和最大堆内存Xmx是常见的优化手段。但这通常是在启动具体应用时设置例如java -Xms512m -Xmx2048m -jar your-application.jar不建议在系统环境变量中设置全局的JVM内存参数因为不同的应用需求差异很大。这个配置应该作为应用启动脚本的一部分。7. 常见问题与故障排查实录即使按照步骤操作你也可能会遇到一些问题。这里记录了一些典型场景和解决方法。7.1 问题java -version显示旧版本或报错“command not found”可能原因及排查环境变量未生效这是最常见的原因。执行source /etc/profile后只在当前终端生效。请确保你是在配置环境变量的同一个终端窗口里执行java -version或者重新开启一个SSH连接。PATH顺序问题检查echo $PATH确保$JAVA_HOME/bin的路径出现在输出结果的前面。如果系统自带的或其他地方的Java路径在前面会被优先使用。JAVA_HOME设置错误仔细检查/etc/profile中JAVA_HOME的路径。确保路径存在且指向正确的JDK目录该目录下应有bin,lib等子目录。可以使用ls -l $JAVA_HOME来验证。安装了JRE而非JDK如果你只安装了java-xx-openjdk没有-devel那么只有java命令没有javac命令。java -version可能正常但javac -version会报错。你需要安装devel包。解决方案对于手动安装请严格按照第5.3和5.4节操作并务必重新登录SSH。使用which java命令查看当前生效的java命令路径用ls -l追踪软链接最终找到实际使用的JDK位置与你设置的JAVA_HOME对比。7.2 问题通过YUM安装后JAVA_HOME环境变量如何设置解答YUM安装的OpenJDK其JAVA_HOME路径是固定的。一个可靠的方法是使用命令动态获取# 将以下两行添加到 /etc/profile 中 export JAVA_HOME$(dirname $(dirname $(readlink -f $(which java)))) export PATH$JAVA_HOME/bin:$PATH这个命令组合的作用是1.which java找到java命令路径2.readlink -f解析出最终的真实二进制文件路径3. 两次dirname向上回退两级得到JDK的根目录。这种方法比写死路径更灵活即使未来通过alternatives切换了Java版本JAVA_HOME也能自动更新。7.3 问题如何彻底卸载手动安装的JDK步骤删除JDK安装目录sudo rm -rf /usr/local/java/jdk-11.0.239(请替换为你的实际路径)。删除我们创建的软链接sudo rm -rf /usr/local/java/current-jdk。编辑/etc/profile或~/.bashrc删除或注释掉之前添加的export JAVA_HOME和export PATH相关行。执行source /etc/profile或重新登录终端使更改生效。验证java -version应提示命令未找到或变回系统其他版本。7.4 问题应用程序如Tomcat启动时找不到JAVA_HOME排查首先在启动应用的用户如tomcat用户下检查环境变量sudo -u tomcat bash -c echo $JAVA_HOME如果输出为空说明该用户的环境变量没有设置。原因/etc/profile只在交互式登录Shell如通过控制台、ssh登录时读取。而通过系统服务如systemd启动的Tomcat其运行环境是非交互式Shell不会读取/etc/profile。解决方案对于通过systemd管理的服务正确的做法是在服务的配置文件如tomcat.service中设置环境变量。sudo vim /etc/systemd/system/tomcat.service # 在 [Service] 部分添加 EnvironmentJAVA_HOME/usr/local/java/current-jdk然后重新加载systemd配置并重启服务sudo systemctl daemon-reload sudo systemctl restart tomcat7.5 问题安装过程中YUM报错提示没有可用包可能原因仓库未更新运行sudo yum clean all sudo yum makecache更新仓库元数据。仓库中确实没有对于较新的OpenJDK版本如17CentOS 7默认仓库可能不提供。这时需要添加第三方仓库如EPELExtra Packages for Enterprise Linux或直接使用Adoptium的RPM仓库。但更简单的做法是采用手动TAR包安装。经过以上步骤你应该已经在CentOS 7系统上成功部署了一个稳定且配置完善的JDK环境。从选择发行版到安装方式从环境变量配置到故障排查每一个环节都力求清晰。记住在Linux世界理解原理比记住命令更重要。当你下次再遇到Java环境问题时希望这份详细的记录能帮你快速定位并解决。

相关新闻

AI智能体开发实战:从核心架构到工作流搭建的完整指南

AI智能体开发实战:从核心架构到工作流搭建的完整指南

1. 从“能对话”到“能办事”:AI智能体的范式跃迁最近圈子里聊得最火的,就是“国产大模型密集上新”和“AI智能体”这两个词。作为一名在AI应用层摸爬滚打了多年的从业者,我深切感受到,行业的风向真的变了。过去一年,我…

2026/10/14 13:51:08 阅读更多 →
IntelliJ IDEA Power ModeII插件:提升编码体验的视觉与听觉特效配置指南

IntelliJ IDEA Power ModeII插件:提升编码体验的视觉与听觉特效配置指南

1. 项目概述:为什么我们需要一个“Power Mode”?如果你是一个长期与IntelliJ IDEA打交道的开发者,无论是写Java、Kotlin还是前端代码,日复一日的编码工作难免会让人感到一丝枯燥。屏幕上的字符跳动,光标闪烁&#xff0…

2026/10/10 23:24:37 阅读更多 →
Docker Compose 核心命令全解析:从基础编排到生产环境实战

Docker Compose 核心命令全解析:从基础编排到生产环境实战

1. 项目概述:为什么你需要深入理解 Docker Compose如果你已经用 Docker 跑过几个容器,体验过手动敲一串docker run命令的繁琐,或者被容器间网络、数据卷的依赖关系搞得头疼,那么 Docker Compose 就是你一直在等的那个“编排管家”…

2026/10/11 13:37:55 阅读更多 →

最新新闻

智诺方AI|期刊论文导师意见修改,分段改写搞定查重和AIGC

智诺方AI|期刊论文导师意见修改,分段改写搞定查重和AIGC

写好「导师意见修改」,再谈降重与降 AIGC 先把研究内容写清楚,再处理重复率与 AI 痕迹,顺序不能反。导师意见修改最怕「改了表述、丢了要求」。意见若被 AI 一键稀释,返回稿看起来更顺,却没回答导师真正卡住的点。 在期…

2026/10/15 3:11:37 阅读更多 →
Large Language Model Powered Automated Modeling and Optimization of Active Distribution Network D...

Large Language Model Powered Automated Modeling and Optimization of Active Distribution Network D...

文章主要内容总结 本文针对主动配电网(ADNs)调度问题,提出了一种基于大型语言模型(LLM)的自动化建模与优化方法。随着分布式能源(DERs)的大量接入,ADNs调度的复杂性显著提升,但新加入的运营商(如配电网聚合商、虚拟电厂管理者等)往往缺乏电力系统运行、建模、优化及…

2026/10/15 3:11:37 阅读更多 →
GPT-4o 等四个模型明年1月下架API,迁移前先做这几件事

GPT-4o 等四个模型明年1月下架API,迁移前先做这几件事

10 月 14 日,OpenAI 给开发者发了通知:GPT-4o、GPT-4o mini、GPT-4.1、GPT-4.1 mini 这四个模型,将在 2027 年 1 月 14 日从 API 下架,基于它们做的微调版本同一天停用。算下来,离下线还有大概三个月。 这里有个容易忽…

2026/10/15 3:11:37 阅读更多 →
Can Small-Scale Data Poisoning Exacerbate Dialect-Linked Biases in Large Language Models?

Can Small-Scale Data Poisoning Exacerbate Dialect-Linked Biases in Large Language Models?

文章主要内容总结 本文研究了小规模数据投毒是否会加剧大型语言模型(LLMs)中与方言相关的偏见,重点对比了非洲裔美国白话英语(AAVE)和标准美国英语(SAE)的差异。研究使用小尺度和中尺度的LLaMA模型,发现即使暴露于极少量的投毒数据,模型对AAVE输入的毒性输出也会显著…

2026/10/15 3:11:37 阅读更多 →
Improving the Performance of Sequential Recommendation Systems with an Extended Large Language Model

Improving the Performance of Sequential Recommendation Systems with an Extended Large Language Model

文章主要内容总结 本文聚焦于大型语言模型(LLMs)在序列推荐系统中的应用,提出通过在LlamaRec框架中用Llama3替换Llama2来提升推荐性能。研究保持LlamaRec的原有结构(包括检索器和排序器的两阶段推荐流程),仅更换排序器中的LLM,并通过统一随机种子、相同输入数据等确保实…

2026/10/15 3:11:37 阅读更多 →
Apereo CAS 服务注册表自动初始化(Service Registry Initialization)实战指南

Apereo CAS 服务注册表自动初始化(Service Registry Initialization)实战指南

后端认证鉴权单点登录 【免费下载链接】cas Apereo CAS - Identity & Single Sign On for all earthlings and beyond. 项目地址: https://gitcode.com/gh_mirrors/ca/cas 点击查看 免费下载 导读 Apereo CAS 在启动时会根据配置自动将 classpath 上的默认 JS…

2026/10/15 3:10:36 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →