<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Claude on HiDa</title><link>https://www.0niu.cn/tags/claude/</link><description>Recent content in Claude on HiDa</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Tue, 02 Jun 2026 19:06:53 +0800</lastBuildDate><atom:link href="https://www.0niu.cn/tags/claude/index.xml" rel="self" type="application/rss+xml"/><item><title>Linux 下 Claude Code 安装与更新指南</title><link>https://www.0niu.cn/posts/claude-code-install-guide/</link><pubDate>Tue, 02 Jun 2026 19:06:53 +0800</pubDate><guid>https://www.0niu.cn/posts/claude-code-install-guide/</guid><description>&lt;h2 id="claude-code-简介">Claude Code 简介&lt;/h2>
&lt;p>Claude Code 是 Anthropic 推出的命令行 AI 编程助手，基于 Claude 大模型，能在终端中直接进行代码编写、调试、重构等操作。支持多文件编辑、Git 集成、Shell 命令执行，是开发者的效率利器。&lt;/p>
&lt;p>官方推荐通过 npm 安装，但国内网络环境下 npm 下载 GitHub 资源经常超时。本文介绍一种更可靠的方式：&lt;strong>通过淘宝 npm 镜像下载预编译包&lt;/strong>，绕过网络限制，实现快速安装与更新。&lt;/p></description><content>&lt;h2 id="claude-code-简介">Claude Code 简介&lt;/h2>
&lt;p>Claude Code 是 Anthropic 推出的命令行 AI 编程助手，基于 Claude 大模型，能在终端中直接进行代码编写、调试、重构等操作。支持多文件编辑、Git 集成、Shell 命令执行，是开发者的效率利器。&lt;/p>
&lt;p>官方推荐通过 npm 安装，但国内网络环境下 npm 下载 GitHub 资源经常超时。本文介绍一种更可靠的方式：&lt;strong>通过淘宝 npm 镜像下载预编译包&lt;/strong>，绕过网络限制，实现快速安装与更新。&lt;/p>
&lt;h2 id="方法一npm-安装官方方式">方法一：npm 安装（官方方式）&lt;/h2>
&lt;p>最简单的方式是通过 npm 全局安装：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>npm install -g @anthropic-ai/claude-code
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>安装完成后直接使用：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>claude
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>注意：npm 安装过程会从 GitHub 下载预编译二进制文件，国内网络可能超时。如果遇到网络问题，推荐使用下面的方法二。&lt;/p>
&lt;/blockquote>
&lt;h2 id="方法二预编译包手动安装推荐国内用户">方法二：预编译包手动安装（推荐国内用户）&lt;/h2>
&lt;p>Claude Code 的 npm 包 &lt;code>@anthropic-ai/claude-code&lt;/code> 实际上是 JS wrapper，真正的二进制文件在平台特定的包里。Linux x64 对应的包名为 &lt;code>@anthropic-ai/claude-code-linux-x64&lt;/code>。&lt;/p>
&lt;h3 id="下载与安装">下载与安装&lt;/h3>
&lt;p>通过淘宝 npm 镜像下载预编译包：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 获取最新版本号&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERSION&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">$(&lt;/span>curl -sf https://registry.npmmirror.com/@anthropic-ai/claude-code-linux-x64 &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span> | python3 -c &lt;span style="color:#e6db74">&amp;#34;import sys,json;print(json.load(sys.stdin)[&amp;#39;dist-tags&amp;#39;][&amp;#39;latest&amp;#39;])&amp;#34;&lt;/span>&lt;span style="color:#66d9ef">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#e6db74">&amp;#34;Latest version: &lt;/span>$VERSION&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 下载 tarball&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>curl -fSL -o claude.tgz &lt;span style="color:#ae81ff">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ae81ff">&lt;/span> &lt;span style="color:#e6db74">&amp;#34;https://registry.npmmirror.com/@anthropic-ai/claude-code-linux-x64/-/claude-code-linux-x64-&lt;/span>&lt;span style="color:#e6db74">${&lt;/span>VERSION&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">.tgz&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 解压到安装目录&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>INSTALL_DIR&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&lt;/span>$HOME&lt;span style="color:#e6db74">/.local/share/claude/versions/&lt;/span>$VERSION&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mkdir -p &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$INSTALL_DIR&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tar xzf claude.tgz -C &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$INSTALL_DIR&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rm claude.tgz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 创建符号链接&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mkdir -p &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$HOME&lt;span style="color:#e6db74">/.local/bin&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ln -sfn &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$INSTALL_DIR&lt;span style="color:#e6db74">/package/claude&amp;#34;&lt;/span> &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$HOME&lt;span style="color:#e6db74">/.local/bin/claude&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 验证&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>claude --version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>这种方式的优点：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>速度快&lt;/strong>：淘宝镜像 CDN 在国内下载速度可达 10MB/s+&lt;/li>
&lt;li>&lt;strong>离线可用&lt;/strong>：下载的 tarball 可以离线安装&lt;/li>
&lt;li>&lt;strong>多版本共存&lt;/strong>：每个版本独立目录，方便回滚&lt;/li>
&lt;/ul>
&lt;h3 id="更新">更新&lt;/h3>
&lt;p>更新只需重复上述步骤，下载新版本后更新符号链接即可。旧版本目录可保留作为回滚：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看当前版本&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>claude --version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 按上面的步骤下载新版本，符号链接会自动指向新版本&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 如需回滚到旧版本&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ln -sfn &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$HOME&lt;span style="color:#e6db74">/.local/share/claude/versions/2.1.165/package/claude&amp;#34;&lt;/span> &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$HOME&lt;span style="color:#e6db74">/.local/bin/claude&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="自动化升级脚本">自动化升级脚本&lt;/h2>
&lt;p>如果经常需要更新，可以写一个简单的升级脚本，核心逻辑如下：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/usr/bin/env python3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">&amp;#34;&amp;#34;&amp;#34;Claude Code upgrade via Taobao npm mirror.&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> os&lt;span style="color:#f92672">,&lt;/span> re&lt;span style="color:#f92672">,&lt;/span> subprocess&lt;span style="color:#f92672">,&lt;/span> sys&lt;span style="color:#f92672">,&lt;/span> tarfile&lt;span style="color:#f92672">,&lt;/span> tempfile
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">from&lt;/span> pathlib &lt;span style="color:#f92672">import&lt;/span> Path
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>NPM_REGISTRY &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">&amp;#34;https://registry.npmmirror.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>PACKAGE &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">&amp;#34;@anthropic-ai/claude-code-linux-x64&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERSIONS_DIR &lt;span style="color:#f92672">=&lt;/span> Path&lt;span style="color:#f92672">.&lt;/span>home() &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#e6db74">&amp;#34;.local&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#e6db74">&amp;#34;share&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#e6db74">&amp;#34;claude&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#e6db74">&amp;#34;versions&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>BIN_LINK &lt;span style="color:#f92672">=&lt;/span> Path&lt;span style="color:#f92672">.&lt;/span>home() &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#e6db74">&amp;#34;.local&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#e6db74">&amp;#34;bin&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#e6db74">&amp;#34;claude&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">get_current&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> r &lt;span style="color:#f92672">=&lt;/span> subprocess&lt;span style="color:#f92672">.&lt;/span>run([str(BIN_LINK), &lt;span style="color:#e6db74">&amp;#34;--version&amp;#34;&lt;/span>], capture_output&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">True&lt;/span>, text&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">True&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> m &lt;span style="color:#f92672">=&lt;/span> re&lt;span style="color:#f92672">.&lt;/span>search(&lt;span style="color:#e6db74">r&lt;/span>&lt;span style="color:#e6db74">&amp;#34;([\d.]+)&amp;#34;&lt;/span>, r&lt;span style="color:#f92672">.&lt;/span>stdout&lt;span style="color:#f92672">.&lt;/span>strip())
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> m&lt;span style="color:#f92672">.&lt;/span>group(&lt;span style="color:#ae81ff">1&lt;/span>) &lt;span style="color:#66d9ef">if&lt;/span> m &lt;span style="color:#66d9ef">else&lt;/span> &lt;span style="color:#e6db74">&amp;#34;unknown&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">get_latest&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> r &lt;span style="color:#f92672">=&lt;/span> subprocess&lt;span style="color:#f92672">.&lt;/span>run(
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">f&lt;/span>&lt;span style="color:#e6db74">&amp;#39;curl -sf &amp;#34;&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>NPM_REGISTRY&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">/&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>PACKAGE&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">&amp;#34; | python3 -c &amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#39;&amp;#34;import sys,json;print(json.load(sys.stdin)[&lt;/span>&lt;span style="color:#ae81ff">\&amp;#39;&lt;/span>&lt;span style="color:#e6db74">dist-tags&lt;/span>&lt;span style="color:#ae81ff">\&amp;#39;&lt;/span>&lt;span style="color:#e6db74">][&lt;/span>&lt;span style="color:#ae81ff">\&amp;#39;&lt;/span>&lt;span style="color:#e6db74">latest&lt;/span>&lt;span style="color:#ae81ff">\&amp;#39;&lt;/span>&lt;span style="color:#e6db74">])&amp;#34;&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> shell&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">True&lt;/span>, capture_output&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">True&lt;/span>, text&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">True&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> v &lt;span style="color:#f92672">=&lt;/span> r&lt;span style="color:#f92672">.&lt;/span>stdout&lt;span style="color:#f92672">.&lt;/span>strip()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> v &lt;span style="color:#66d9ef">if&lt;/span> re&lt;span style="color:#f92672">.&lt;/span>&lt;span style="color:#66d9ef">match&lt;/span>(&lt;span style="color:#e6db74">r&lt;/span>&lt;span style="color:#e6db74">&amp;#34;^\d+\.\d+\.\d+$&amp;#34;&lt;/span>, v) &lt;span style="color:#66d9ef">else&lt;/span> &lt;span style="color:#66d9ef">None&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">install&lt;/span>(version):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> url &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">f&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>NPM_REGISTRY&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">/&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>PACKAGE&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">/-/&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>PACKAGE&lt;span style="color:#f92672">.&lt;/span>replace(&lt;span style="color:#e6db74">&amp;#39;@&amp;#39;&lt;/span>,&lt;span style="color:#e6db74">&amp;#39;&amp;#39;&lt;/span>)&lt;span style="color:#f92672">.&lt;/span>replace(&lt;span style="color:#e6db74">&amp;#39;/&amp;#39;&lt;/span>,&lt;span style="color:#e6db74">&amp;#39;-&amp;#39;&lt;/span>)&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">-&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>version&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">.tgz&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> dest &lt;span style="color:#f92672">=&lt;/span> VERSIONS_DIR &lt;span style="color:#f92672">/&lt;/span> version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> dest&lt;span style="color:#f92672">.&lt;/span>mkdir(parents&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">True&lt;/span>, exist_ok&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">True&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">with&lt;/span> tempfile&lt;span style="color:#f92672">.&lt;/span>NamedTemporaryFile(suffix&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;.tgz&amp;#34;&lt;/span>, delete&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">False&lt;/span>) &lt;span style="color:#66d9ef">as&lt;/span> tmp:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> subprocess&lt;span style="color:#f92672">.&lt;/span>run(&lt;span style="color:#e6db74">f&lt;/span>&lt;span style="color:#e6db74">&amp;#39;curl -fSL -o &amp;#34;&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>tmp&lt;span style="color:#f92672">.&lt;/span>name&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">&amp;#34; &amp;#34;&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>url&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&amp;#39;&lt;/span>, shell&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">True&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">with&lt;/span> tarfile&lt;span style="color:#f92672">.&lt;/span>open(tmp&lt;span style="color:#f92672">.&lt;/span>name, &lt;span style="color:#e6db74">&amp;#34;r:gz&amp;#34;&lt;/span>) &lt;span style="color:#66d9ef">as&lt;/span> tf:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> tf&lt;span style="color:#f92672">.&lt;/span>extractall(dest, filter&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;data&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> os&lt;span style="color:#f92672">.&lt;/span>unlink(tmp&lt;span style="color:#f92672">.&lt;/span>name)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> binary &lt;span style="color:#f92672">=&lt;/span> dest &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#e6db74">&amp;#34;package&amp;#34;&lt;/span> &lt;span style="color:#f92672">/&lt;/span> &lt;span style="color:#e6db74">&amp;#34;claude&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> binary&lt;span style="color:#f92672">.&lt;/span>chmod(&lt;span style="color:#ae81ff">0o755&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> BIN_LINK&lt;span style="color:#f92672">.&lt;/span>unlink(missing_ok&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">True&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> BIN_LINK&lt;span style="color:#f92672">.&lt;/span>symlink_to(binary)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>old &lt;span style="color:#f92672">=&lt;/span> get_current()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>latest &lt;span style="color:#f92672">=&lt;/span> get_latest()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> old &lt;span style="color:#f92672">==&lt;/span> latest:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#e6db74">f&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Already up-to-date: v&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>latest&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">else&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> install(latest)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> print(&lt;span style="color:#e6db74">f&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Updated: v&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>old&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74"> → v&lt;/span>&lt;span style="color:#e6db74">{&lt;/span>latest&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>将脚本保存为 &lt;code>claude_upgrade.py&lt;/code>，每次更新只需运行：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>python3 claude_upgrade.py
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>对于国内 Linux 用户，&lt;strong>推荐使用淘宝 npm 镜像下载预编译包&lt;/strong>的方式，兼顾速度和可靠性。配合自动化脚本，更新体验与 npm 方式一样便捷。&lt;/p></content></item></channel></rss>