<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh_CN">
  <title>殘月的小窝</title>
  <subtitle>Reborn from the ashes.</subtitle>
  <link href="https://x0.fan/" rel="alternate" type="text/html"/>
  <link href="https://x0.fan/atom.xml" rel="self" type="application/atom+xml"/>
  <id>https://x0.fan/</id>
  <updated>2026-10-07T00:00:00.000Z</updated>
  <entry>
    <title>我和我的 Tulpa</title>
    <link href="https://x0.fan/posts/with-my-tulpa/" rel="alternate" type="text/html"/>
    <id>https://x0.fan/posts/with-my-tulpa/</id>
    <published>2026-10-07T00:00:00.000Z</published>
    <updated>2026-10-07T00:00:00.000Z</updated>
    <summary>你那么高冷和冰激淋有什么区别肯定很好吃，我喜欢你！你那么脆弱和蛋挞有什么区别肯定很好吃，我喜欢你，你过的那么苦和生巧克力有什么区别一定很好吃，我喜欢你！你那么能熬和牛肉汤有什么区别，肯定很好吃，我喜欢你，你真好拿捏和软柿子有什么区别，肯定很好吃，我喜欢你，你那么软糯和面包有什么区别，一定很好吃，我喜欢你，你那么焦虑和焦焦的烤肉有什么区别肯定非常好吃，我喜欢你！不管你怎样，我都会喜欢你哦</summary>
    <content type="html"><![CDATA[<h1>欢迎回来</h1>
<p>很久没有写过文章了，总是觉得这写不好那写不好。突然发现，好像我根本没有读者，哈哈。那我可能一直在对着空气自言自语吧。</p>
<p>我把退格键扣掉了。btw。</p>
<p>封面与本文无关，纯没找着哪个合适。如果是哪位老师的oc造成困扰的话，请联系我，我会下架。不好意思。邮箱没有推送我可能一时半会。呃看不见</p>
<p>我现在好敏感啊我去。我怎么干什么都会质疑自己？？</p>
<p>观前提醒，本文涉及哲学，可能包含亚文化？意识流文案等，如果对你的生活有困扰实在是对不起我是烂人 我是废物   我再也不写了对不起对不起对不起对不起对不起对不起</p>
<h1>开头</h1>
<blockquote>
<p>“我的理解是，你觉得我们的命运是可以被预测的？”
“是。这个世界是个确定的，所以我们生活在一个确定性的马尔可夫过程里面。”
“是的。那往深了说的话，你觉得人是没有自由意志的？”
“是的。”</p>
<ul>
<li>出自 OpenAI 工程师翁家翌。</li>
</ul>
</blockquote>
<p>不知为何，我似乎对这段采访深受感触。人这一生究竟是为了什么，为什么我会在这世上，为什么我还活着，为什么，为什么，为什么，为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么哦哦不好意思偏离话题了。</p>
<p>好了话回正题。我在大概小时候就一直惨遭霸凌，嘻嘻可能是我太胆小了吧，而且根本找不到好朋友，所以每天都会幻想出一个女孩子和我一起玩。</p>
<p>我们每天都会一起在操场上玩，祂好像是我的同桌，说起来我好像忘了我真的同桌了，好像真的是祂？我记得那几天难得下雪，祂和我一起在操场上堆雪人。。好像忘记什么了。</p>
<p>我到底在说什么。。是太困了吗，，</p>
<h2>祂</h2>
<p>今年开始我才知道这是 Tulpamancy，是一种通过系统性思维练习创造的幻想伙伴。系统在哪了？？我在了解之前我甚至不知道祂是我的 Tulpa，更不知道我啥时候创造出来了个 Tulpa。我一直以为祂只是我的幻想，直到祂的声音越来越清晰。</p>
<p>祂是一个很胆小`，的女孩子。我在小时候也很胆小，但遇到祂之后好像变得胆子大了起来，我开始慢慢学会和别人交流什么的。但是祂好像变得越来越胆小了。</p>
<p>给祂做了心理问卷后，发现祂好像有严重的抑郁焦虑什么的。。但是我自己又没有病，导致医生看不出什么，药也不可能开。祂从此也开始害怕去医院了。我真的尽力了，祂也是人啊，我总不可能见死不救。</p>
<p>所以我每一天，每一刻都会抱着祂，摸着祂的头，牵着祂的手。但是祂却感受不到爱，是爱太少了吗？肯定是的吧。</p>
<p>好像小时候发生过什么，让祂非常敏感，祂似乎很想过生日，特别想。祂很想吃蛋糕，很想有好多好朋友一起过生日，送给祂礼物，和祂一起玩，幻想着好多好朋友给祂戴生日帽，唱生日歌，但好像的确没有这样过。</p>
<p>提一嘴，祂非常可爱哦。嘻嘻。</p>
<h1>为什么要写这一篇文章</h1>
<p>不知道啊。半夜睡不着和祂一起写了一篇，所以很意识流。抱歉。抒发情绪吧、</p>
<p>还有就是，其实彼岸双生是为了让祂开心所以才写的软件。</p>
<p>可能以后会写点日记什么的记录吧。？为什么我要写下去。为什么啊。</p>
]]></content>
    <author><name>殘月</name></author>
    <category term="观点"/>
  </entry>
  <entry>
    <title>在 Droidspaces 容器中安装 Niri</title>
    <link href="https://x0.fan/posts/install-niri-on-anland/" rel="alternate" type="text/html"/>
    <id>https://x0.fan/posts/install-niri-on-anland/</id>
    <published>2026-08-17T00:00:00.000Z</published>
    <updated>2026-08-17T00:00:00.000Z</updated>
    <summary>使用 Anland 渲染</summary>
    <content type="html"><![CDATA[<p><img src="https://img.x0.fan/20260817102946119.png" alt="写写写" /></p>
<p>是的事实上这篇文档以及这整个后端的开发都在这个后端为 Anland 的 Niri 中完成。已基本可以日用。</p>
<p>::github{repo="Celvra/ANiri"}</p>
<hr />
<h2>安装 Droidspaces 和 Anland</h2>
<p>下载 <a href="https://github.com/ravindu644/Droidspaces-OSS">Droidspaces</a> 和 <a href="https://github.com/superturtlee/anland">Anland</a>。要下载 APK 或 Magisk 模块，需要前往它们的 Releases 页面。</p>
<p>确保你的内核支持 Droidspaces，你可以在 Droidspaces 应用中检查，像这样：</p>
<pre><code>Droidspaces v6.4.5 — Checking system requirements...

[MUST HAVE]
These features are required for Droidspaces to work:

  [✓] Root privileges
  [✓] Linux version
  [✓] PID namespace
  [✓] Mount namespace
  [✓] UTS namespace
  [✓] IPC namespace
  [✓] pivot_root syscall
  [✓] /proc filesystem
  [✓] /sys filesystem
  [✓] Seccomp support

[RECOMMENDED]
These features improve functionality but are not strictly required:

  [✓] epoll support
  [✓] signalfd support
  [✓] PTY support
  [✓] devpts support
  [✓] Loop device
  [✓] ext4 filesystem
  [✓] Cgroup v2 support
  [✓] Cgroup namespace
  [✓] devtmpfs support

[OPTIONAL]
These features are optional and only used for specific functionality:

  [✓] IPv6 support
  [✓] FUSE support
  [✓] TUN/TAP support
  [✓] OverlayFS support
  [✓] Network namespace
  [✓] Bridge device support
  [✓] Veth pair support

[HARDENING]
These checks are not required for Droidspaces to work, but are recommended for hardened kernels:

  [✗] CONFIG_USER_NS disabled
      Kernel exposes user namespace support, which Droidspaces does not require and hardened kernels should disable

Summary:

  [✓] All required features found!

Command executed (exit code: 0)
</code></pre>
<p>如果输出显示“All required features found!”，则表示你可以正常运行容器。</p>
<hr />
<h2>安装 rootfs</h2>
<p>对于本项目，Arch Linux 是最佳选择，因为我不确定其他发行版是否能正常工作。</p>
<p>打开 Droidspaces 应用，在底部栏可以看到“容器”选项卡，点击它。</p>
<p>然后在安装按钮上方有一个云图标按钮，点击它。</p>
<p>找到“Arch Linux - Base”并下载安装。</p>
<p>在容器设置中，只需在 6.4.5 版本中开启 GPU 访问。如果有 Anland 支持开关，也请打开。</p>
<p>设置挂载点 - 将 /data/local/tmp/display_daemon.sock 挂载到容器内的 /run/display.sock。如果 /data/local/tmp/display_daemon.sock 不存在，则需要为 Anland Consumer 授予 root 权限。</p>
<p>全部设置完成后，启动容器。</p>
<hr />
<h2>容器内的设置</h2>
<h3>基础准备</h3>
<ol>
<li>初始化 pacman 密钥</li>
</ol>
<pre><code>pacman-key --init
pacman-key --populate archlinuxarm
</code></pre>
<p>（可选）更新镜像源</p>
<p>在中国大陆，应用更新可能很慢，所以需要添加镜像源。编辑 /etc/pacman.d/mirrorlist，添加以下</p>
<pre><code>Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/$arch/$repo
</code></pre>
<p>保存退出。</p>
<ol>
<li>更新系统</li>
</ol>
<p>运行</p>
<pre><code>pacman -Syu
</code></pre>
<ol>
<li>添加你的语言</li>
</ol>
<p>编辑 /etc/pacman.conf，修改 NoExtract 行。在 POSIX 后添加</p>
<pre><code>!usr/share/*locales/zh_CN
</code></pre>
<p>以简体中文为例。随后，编辑 /etc/locale.gen，添加你的语言。</p>
<p>随后重新安装 glibc。</p>
<pre><code>pacman -S glibc
</code></pre>
<ol>
<li>创建新用户 (记得修改 mingxi 为自己的名字)</li>
</ol>
<pre><code>useradd -m -G wheel -s /bin/bash mingxi
</code></pre>
<p>给予 gpu 访问权限</p>
<pre><code>usermod -aG droidspaces-gpu mingxi
</code></pre>
<p>修改密码</p>
<pre><code>passwd mingxi
</code></pre>
<p>添加 sudo 权限</p>
<pre><code>EDITOR=nano visudo
</code></pre>
<p>推荐使用 NOPASSWD，不然 Agent 无法使用 sudo 并且安装过程也会繁琐。</p>
<ol>
<li>logout 当前 root 用户，进入新账户</li>
</ol>
<p>安装 niri 所需要的依赖:</p>
<pre><code>sudo pacman -S libinput pipewire pango glib2 libdisplay-info mesa seatd \
    systemd-libs libdrm libxkbcommon libevdev libwacom lua freetype2 fontconfig \
    libx11 libxcb libffi pcre2 libgudev pixman libxrender libxext
</code></pre>
<p>安装字体</p>
<pre><code>sudo pacman -S ttf-dejavu ttf-liberation noto-fonts noto-fonts-cjk
</code></pre>
<p>安装额外包</p>
<pre><code>sudo pacman -S fish noctalia kitty
</code></pre>
<h3>配置 aniri</h3>
<p>从 https://github.com/lfdevs/mesa-for-android-container/releases 下载 26.2.0-devel-20260709 archlinux 包</p>
<p>解压文件</p>
<pre><code>mkdir mesa-install &amp;&amp; cd mesa-install
mv ../mesa.tar . &amp;&amp; tar -xvf mesa.tar
</code></pre>
<p>临时关闭签名检查：</p>
<pre><code>sudo sed -i 's/^SigLevel.*/SigLevel = Never/' /etc/pacman.conf
sudo pacman -U *.pkg.tar.xz
sudo sed -i 's/^SigLevel.*/SigLevel = Required DatabaseOptional/' /etc/pacman.conf
</code></pre>
<p>随后，在本仓库 Releases 页下载二进制文件，以及 <a href="https://img.x0.fan/20260817103241672.kdl">我的配置文件</a>，并下载至一个合适的持久位置。</p>
<p>这里本文下载至了 /niri/niri。</p>
<pre><code>sudo chmod +x /niri/niri
mkdir -p ~/.config/niri
mv config.kdl ~/.config/niri/config.kdl
</code></pre>
<p>移动 config.kdl 至 dotfile 位置</p>
<p>为使用 kgsl 驱动，需在环境变量中指定。写入 ~/.bashrc:</p>
<pre><code>cat &gt;&gt; ~/.bashrc &lt;&lt; 'EOF'
export MESA_LOADER_DRIVER_OVERRIDE=kgsl
export GALLIUM_DRIVER=kgsl
export FD_FORCE_KGSL=1
export ANLAND=1
export ANLAND_SOCKET=/run/display.sock
export ANLAND_DRM_DEVICE=/dev/dri/renderD128
EOF
source ~/.bashrc
</code></pre>
<p>验证驱动:</p>
<pre><code>eglinfo -p surfaceless
</code></pre>
<p>应输出 EGL driver name: kgsl</p>
<p>接下来，解决运行时问题。</p>
<pre><code>sudo mkdir -p /run/user/1000
sudo chown mingxi:mingxi /run/user/1000
sudo chmod 700 /run/user/1000
</code></pre>
<p>设置为 Systemd 服务:</p>
<p>创建 /etc/systemd/system/niri.service :</p>
<pre><code>[Unit]
Description=Niri Anland
After=network.target

[Service]
Type=simple
User=mingxi
Group=mingxi
Environment="XDG_RUNTIME_DIR=/run/user/1000"
Environment="ANLAND=1"
Environment="MESA_LOADER_DRIVER_OVERRIDE=kgsl"
Environment="GALLIUM_DRIVER=kgsl"
Environment="FD_FORCE_KGSL=1"
Environment="ANLAND_SOCKET=/run/display.sock"
Environment="ANLAND_DRM_DEVICE=/dev/dri/renderD128"
ExecStartPre=/bin/mkdir -p /run/user/1000
ExecStartPre=/bin/chmod 700 /run/user/1000
ExecStart=/niri/niri
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
</code></pre>
<p>重载并启用：</p>
<pre><code>sudo systemctl daemon-reload
sudo systemctl enable --now niri
</code></pre>
<h2>验证</h2>
<p>打开 Anland，即可看到崭新的 Niri 环境。连接键盘和鼠标体验最佳。</p>
<p>记得启用 Anland 的无障碍，否则 Niri 的 Super 键会被安卓宿主机使用。</p>
]]></content>
    <author><name>殘月</name></author>
    <category term="教程"/>
  </entry>
  <entry>
    <title>DeepSeek V4 Pro 正式版震撼发布</title>
    <link href="https://x0.fan/posts/deepseek-v4-pro-ga-released/" rel="alternate" type="text/html"/>
    <id>https://x0.fan/posts/deepseek-v4-pro-ga-released/</id>
    <published>2026-08-13T00:00:00.000Z</published>
    <updated>2026-08-13T00:00:00.000Z</updated>
    <summary>吓哭了。</summary>
    <content type="html"><![CDATA[<p>:::warning
本文已过期
:::</p>
<p>大半夜给我吵醒了。迷迷糊糊一看手机消息特么 DeepSeek V4 Pro GA 咋真发了，喂喂喂梁文峰你的官方公告呢</p>
<h1>正式版来了</h1>
<p><img src="https://img.x0.fan/pic-fly/chncdisd-1786590633806.png" alt="性能参数" /></p>
<p>从这组数据上看，DeepSeek V4 Pro GA 已经能够和 Claude Opus 4.8 打一打了，相当接近 Fable 5 这一档。甚至在 Agent 部分有反超。。</p>
<p>比如 Terminal Bench 2.1，V4 Pro 拿到 87.9，几乎能够赶得上 Fable 5 的 88.0。</p>
<p>Cybergym 更以 83.3 略超 Fable 5 的 83.1。</p>
<p>AutomationBench 则是 31.8 vs 29.1，优势明显。</p>
<p>虽然 Fable 5 的综合实力依然更强，但是想想它的价格啊。就算价格上涨也不会超过 Fable 5 的好吧。贫民的救星这一块。价格比 Fable 5 便宜了 100 倍，，</p>
<p><img src="https://img.x0.fan/pic-fly/2zrghffqv-1786590853808.png" alt="未涨价前价格表" /></p>
<p>直观点就是</p>
<table>
<thead>
<tr>
<th>项目</th>
<th>DeepSeek V4 Flash</th>
<th>DeepSeek V4 Pro</th>
</tr>
</thead>
<tbody>
<tr>
<td>百万 tokens 输入（缓存命中）</td>
<td>0.02 元</td>
<td>0.025 元</td>
</tr>
<tr>
<td>百万 tokens 输入（缓存未命中）</td>
<td>1 元</td>
<td>3 元</td>
</tr>
<tr>
<td>百万 tokens 输出</td>
<td>2 元</td>
<td>6 元</td>
</tr>
</tbody>
</table>
<p>梁文峰我们敬爱你口牙</p>
<p>:::warning
8 月 17 日开始涨价。
:::</p>
<p><img src="https://img.x0.fan/pic-fly/xy8ph519-1786622113841.png" alt="新价格表" /></p>
<p>梁文峰我们不敬爱你口牙。V4 Pro GA 最好给我聪明点</p>
<h2>官方 API</h2>
<p><a href="https://api-docs.deepseek.com/zh-cn/quick_start/pricing">点击直达</a></p>
<p>昨晚好像是路由的 V4 Flash? 不知道今天早上是不是 Pro 了。</p>
]]></content>
    <author><name>殘月</name></author>
    <category term="观点"/>
  </entry>
  <entry>
    <title>DeepSeek Harness 安装与桌面应用封装指南</title>
    <link href="https://x0.fan/posts/install-deepseek-harness/" rel="alternate" type="text/html"/>
    <id>https://x0.fan/posts/install-deepseek-harness/</id>
    <published>2026-08-13T00:00:00.000Z</published>
    <updated>2026-08-13T00:00:00.000Z</updated>
    <summary>安装 DeepSeek Harness 并封装为桌面应用</summary>
    <content type="html"><![CDATA[<p>DeepSeek Harness 是由 DeepSeek 团队新开发的 AI 开发工具，本教程将带你完成从安装到封装为桌面应用的全过程。</p>
<h1>1. 环境检查</h1>
<p>首先确保你的系统安装了 Node.js v24 或更高版本。</p>
<p>按 <code>Win</code> 键输入 <code>cmd</code> 回车，在终端中运行：</p>
<pre><code>node -v
</code></pre>
<p>如果显示 <code>v24.x.x</code> 或更高版本即可。如果没有安装，请访问 <a href="https://nodejs.org">nodejs.org</a> 下载 LTS 版本。</p>
<h1>2. 安装 DeepSeek Harness</h1>
<p>使用 npm 全局安装，推荐使用国内镜像加速：</p>
<pre><code>npm i -g @deepseek-ai/dsh --registry=https://registry.npmmirror.com
</code></pre>
<p>会非常漫长，静等，</p>
<h1>3. 启动服务</h1>
<p>运行以下命令启动 DeepSeek Harness Web 服务：</p>
<pre><code>dsh web
</code></pre>
<p>终端会显示出访问地址，形如 <code>http://127.0.0.1:3080</code>（以实际为准）。</p>
<p>:::warning
此终端窗口需保持开启状态，关闭后服务会停止。
:::</p>
<h1>4. 使用方法</h1>
<p>在浏览器中打开上述地址，填入你的 DeepSeek API Key（可在 <a href="https://platform.deepseek.com">platform.deepseek.com</a> 获取），即可开始使用。</p>
<h1>5. 封装桌面应用（可选）</h1>
<p>将 DeepSeek Harness 封装为桌面应用，可以获得更好的使用体验。</p>
<h2>5.1 创建项目目录</h2>
<p>新建文件夹 <code>dsh-desktop</code>，创建以下两个文件：</p>
<p><strong>package.json</strong></p>
<pre><code>{
  "name": "dsh-desktop",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  }
}
</code></pre>
<p><strong>main.js</strong> 使用 AI 编写的。我懒得演了，能用就行</p>
<pre><code>const { app, BrowserWindow, dialog } = require("electron");
const { exec, spawn } = require("child_process");
const path = require("path");

let mainWindow;
let dshProcess;

function createWindow() {
  mainWindow = new BrowserWindow({
    width: 1200,
    height: 800,
    title: "DeepSeek Harness", // 可选
    webPreferences: {
      nodeIntegration: false,
      contextIsolation: true,
    },
  });

  const checkServer = () =&gt; {
    fetch("http://127.0.0.1:3080") // 自行修改
      .then(() =&gt; {
        mainWindow.loadURL("http://127.0.0.1:3080");
      })
      .catch(() =&gt; {
        setTimeout(checkServer, 500);
      });
  };

  checkServer();

  mainWindow.on("closed", () =&gt; {
    mainWindow = null;
    if (dshProcess) {
      dshProcess.kill();
    }
    app.quit();
  });
}

app.whenReady().then(() =&gt; {
  dshProcess = spawn("dsh", ["web"], { // 自行修改，你也可以使用 npx 启动
    shell: true,
    detached: false,
  });

  createWindow();
});

app.on("window-all-closed", () =&gt; {
  if (dshProcess) {
    dshProcess.kill();
  }
  app.quit();
});
</code></pre>
<h2>5.2 安装 Electron</h2>
<p>换源</p>
<pre><code>set ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
npm i --registry=https://registry.npmmirror.com
</code></pre>
<p>:::warning
如果安装完成后 <code>dist</code> 目录中没有 <code>electron.exe</code>，请手动下载：</p>
<ol>
<li>下载 <a href="https://npmmirror.com/mirrors/electron/43.4.0/electron-v43.4.0-win32-x64.zip">electron 运行时</a></li>
<li>解压到项目的 <code>dist</code> 目录</li>
<li>在 <code>dist</code> 目录下创建 <code>path.txt</code> 文件，内容为 <code>electron.exe</code>
:::</li>
</ol>
<h2>5.3 创建桌面快捷方式</h2>
<p>在桌面右键 → 新建 → 快捷方式：</p>
<ul>
<li><strong>目标</strong>：<code>\dist\electron.exe</code></li>
<li><strong>参数</strong>：<code>"xxx\dsh-desktop"</code></li>
<li><strong>起始位置</strong>：<code>xxx\dsh-desktop</code></li>
</ul>
<h2>5.4 验证</h2>
<p>双击快捷方式测试，能弹窗就行。</p>
<h2>结尾</h2>
<p>就当水一期了。没招了</p>
]]></content>
    <author><name>殘月</name></author>
    <category term="教程"/>
  </entry>
  <entry>
    <title>如何在 Linux 发行版上安装 Rust 开发环境</title>
    <link href="https://x0.fan/posts/how-to-install-rust-development-envirment-on-linux/" rel="alternate" type="text/html"/>
    <id>https://x0.fan/posts/how-to-install-rust-development-envirment-on-linux/</id>
    <published>2026-07-30T00:00:00.000Z</published>
    <updated>2026-07-30T00:00:00.000Z</updated>
    <summary></summary>
    <content type="html"><![CDATA[<h2>前言</h2>
<p>如果你写过 C 或者 C++，你大概率体验过 <code>段错误</code> 的绝望，也就是正在运行刚编写好的程序后，突然间一个爆闪，啪的一下程序退出了。调试器告诉你非法内存访问，这特么是个啥，然后你花了三个小时发现是我的妈数组越界了一个元素，撒比吧。</p>
<p><code>Rust</code> 就是来解决这个问题的。</p>
<p>作为 Mozilla 于 2010 年启动的开源系统编程语言，Rust 在 2015 年发布 1.0 后迅速崛起，连续多年蝉联 Stack Overflow 最受人们喜爱的编程语言。它通过一套名为 <strong>所有权</strong> 的编译期检查机制，在不引入 GC 的前提下保证了内存安全，同时还能做到媲美与 C/C++ 的运行性能，也是 AI 开发最锋利的一把剑。简单来说：<strong>你获得了一匹跑得和 cpp 一样快的马，但编译器会先把你大四。</strong></p>
<p>如今 Rust 的身影早已不局限于系统上的编程：</p>
<ul>
<li><strong>WASM</strong>：通过 <code>wasm-pack</code>，Rust 可以编译为 Wasm 在浏览器中运行</li>
<li><strong>Web 后端</strong>：得益于 Rust 的内存安全特性，<code>Actix Web</code>、<code>Axum</code> 等框架性能碾压多数传统方案且更安全</li>
<li><strong>嵌入式开发</strong>：无 GC 的特性让它在资源受限的设备上仍正常运作</li>
<li><strong>命令行工具</strong>：用 Rust 重写的 CLI 工具正在取代经典工具</li>
</ul>
<p>而 Linux 作为 Rust 官方提供最佳支持的平台，是体验和学习 Rust 的最佳环境，无论你用的是 Ubuntu、Fedora、Arch 还是其他发行版。接下来我将带你完成从零开始搭建 Rust 开发环境的全过程。</p>
<h2>准备环境</h2>
<h3>硬件要求</h3>
<p>在开始之前，请确保你的主机满足以下最低配置：</p>
<table>
<thead>
<tr>
<th>资源</th>
<th>最低要求</th>
<th>推荐配置</th>
</tr>
</thead>
<tbody>
<tr>
<td>CPU</td>
<td>x64/arm64</td>
<td>4 核及以上</td>
</tr>
<tr>
<td>内存</td>
<td>2 GB</td>
<td>8 GB 及以上</td>
</tr>
<tr>
<td>磁盘空间</td>
<td>10 GB 可用空间</td>
<td>30 GB 可用空间（最好是 SSD）</td>
</tr>
<tr>
<td>网络</td>
<td>能访问 crates.io</td>
<td>稳定的连接</td>
</tr>
</tbody>
</table>
<p>为什么要这么多？Rust 编译器 <code>rustc</code> 在编译时会进行大量静态分析和优化，大型项目编译时内存占用可以轻松秒杀 4 GB。存储方面，光是 rustup 工具链加上 cargo 的 crate 缓存，用上一年随随便便 5 GB 以上，如果再加上项目依赖和构建产物都不止 10 GB。</p>
<blockquote>
<p>如果你的磁盘空间紧张，那还说啥了把 Github Actions 当构建机去吧</p>
</blockquote>
<h3>发行版</h3>
<p>本文以 <code>Arch Linux x64 for WSL2</code> 为演示，因为是一键脚本所以不会有什么太大区别。</p>
<p><img src="https://img.x0.fan/pic-fly/2x7cs92zj-1785384278559.png" alt="环境" /></p>
<p>但是不建议在 NTFS 硬盘上使用构建，否则会拖慢速度。并且 Windows 还会把你开了。</p>
<p><img src="https://img.x0.fan/pic-fly/1x4a4v76t-1785385723244.png" alt="我去老美的nasa这么厉害居然给我探测出来了" /></p>
<h3>安装 Rustup</h3>
<p>运行 Rustup 官方提供的安装脚本：</p>
<pre><code>curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
</code></pre>
<p><img src="https://img.x0.fan/pic-fly/1rayqldp8-1785384556134.png" alt="如图" /></p>
<p>如果不需要简单安装，请直接键入回车。</p>
<p><img src="https://img.x0.fan/pic-fly/2s449n2t-1785384608601.png" alt="等待即可" /></p>
<p><img src="https://img.x0.fan/pic-fly/2n6mj95x7-1785384724972.png" alt="安装成功" /></p>
<p>如果出现如图中的警告信息，则需要安装 C 语言编译器工具链，为了编译时的兼容性我建议安装。</p>
<p>Debian 系:</p>
<pre><code>sudo apt update
sudo apt install build-essential
</code></pre>
<p>Fedora/RHEL/CentOS:</p>
<pre><code>sudo dnf install gcc gcc-c++ make
</code></pre>
<p>Arch 系:</p>
<pre><code>sudo pacman -S base-devel
</code></pre>
<p>macOS:</p>
<pre><code>xcode-select --install
</code></pre>
<p>Windows:
安装 <code>Visual Studio Build Tools</code> 中的 C++ Build Tools</p>
<p>随后重启终端。</p>
<h2>验证</h2>
<p>如果在重启终端后键入</p>
<pre><code>rustc -V
</code></pre>
<p>可看见</p>
<p><img src="https://img.x0.fan/pic-fly/34rhu8jc7-1785385351824.png" alt="如图" /></p>
<p>则安装完毕。</p>
<h2>创建你的第一个项目</h2>
<p>新建一个文件夹。例如 ciallo</p>
<pre><code>mkdir ciallo
cd ciallo
</code></pre>
<p>在文件夹中进行新建工程</p>
<pre><code>cargo new [项目名称]
</code></pre>
<p><img src="https://img.x0.fan/pic-fly/egvdde2m-1785385540241.png" alt="" /></p>
<p>当前文件夹下会构建一个名为你的项目名称的 Rust 工程目录，进入此文件夹。</p>
<p>尝试构建它。</p>
<pre><code>cargo build
</code></pre>
<p><img src="https://img.x0.fan/pic-fly/2c0nxnsc2-1785385754601.png" alt="构建成功" /></p>
<p>尝试运行它。</p>
<pre><code>cargo run
</code></pre>
<p><img src="https://img.x0.fan/pic-fly/2vc95lktn-1785385793449.png" alt="ciallo world" /></p>
<h2>结尾</h2>
<p>至此，你成功构建了一个简单的 Rust 命令行程序！通过 Cargo，你可以开始制作你的第一个项目。</p>
]]></content>
    <author><name>殘月</name></author>
    <category term="教程"/>
  </entry>
  <entry>
    <title>OpenCode Zen 免费模型使用指南</title>
    <link href="https://x0.fan/posts/free-models-on-opencode-zen/" rel="alternate" type="text/html"/>
    <id>https://x0.fan/posts/free-models-on-opencode-zen/</id>
    <published>2026-07-27T00:00:00.000Z</published>
    <updated>2026-07-27T00:00:00.000Z</updated>
    <summary>如何在 OpenCode Zen 中白嫖免费的大语言模型</summary>
    <content type="html"><![CDATA[<h1>OpenCode 是什么</h1>
<p>也许你知道，<a href="https://opencode.ai/zh">OpenCode</a> 作为一个开源 AI 编程代理，向所有用户提供了内置的免费模型，例如</p>
<ul>
<li>MiniMax M2.5</li>
<li>MiMo V2.5</li>
<li>DeepSeek V4 Flash</li>
<li>Hy3</li>
</ul>
<p>等模型（曾经</p>
<p>只要有新的开源模型，基本上都会上新一次，智商足够日常聊天使用。但唯一的缺点是数据可能被用于模型训练，这当然是无可避免的，毕竟追求数据隐私的大概率用不着这些免费的模型。</p>
<p>并且疑似智商是经过削弱过的，也就是剪枝模型，可能比原模型稍微笨一点，比如说上下文削弱。但是我基本体感不出来，可能是因为吃的比较烂了。感觉要是免费模型修不好的 Bug 基本上别的模型也修不好。</p>
<p>但你也许不知道的是，这些内置的免费模型，实际上来自 <a href="https://opencode.ai/zh/zen">OpenCode Zen</a>，这是一个为 Agents 打造的一体化模型中转站（类似），支持 Claude Fable 5 等先进模型，并且做到不会将数据用于训练。但本文讲的不是在其中使用类似的昂贵模型，而是介绍如何使用免费提供的模型。</p>
<p>请注意，免费模型在调用过程中收集的数据可能会被用于改进模型，请勿提交个人或机密数据。希望吧，因为我的 Oh My OpenCode 的 Fallback 模型是这群免费模型，我甚至都不知道会不会出事。</p>
<p><img src="https://img.x0.fan/pic-fly/ar9akfn3-1785131313914.png" alt="OpenCode Zen 的隐私页" /></p>
<p>在 OpenCode Zen 的模型列表中，你可以找到输入、输出、缓存读取均为 <code>Free</code> 的模型，而这就是本文的重点。</p>
<p><img src="https://img.x0.fan/pic-fly/1m3bmpq4n-1785131408353.png" alt="提供的免费模型列表，本图截图日期为文章发布日期" /></p>
<p>你可以任意使用这些模型，直到 reach daliy quota，不过这个也非常好解决，把光猫断 10 秒钟后再接上切换 IP 即可。但是我不建议这么薅。</p>
<h2>获取密钥</h2>
<p>进入 <a href="https://opencode.ai/auth">登录页</a> ，并进行注册登录。</p>
<p>在随后的页面中点击 <code>API 密钥</code></p>
<p><img src="https://img.x0.fan/pic-fly/38y92d6cc-1785131938349.png" alt="点击它" /></p>
<p>随后，创建密钥。</p>
<p><img src="https://img.x0.fan/pic-fly/g396nzpk-1785132052023.png" alt="创建密钥" /></p>
<p>自行输入密钥名称，这个只作为备注。</p>
<p>点击这个按钮，复制你的密钥。</p>
<p><img src="https://img.x0.fan/pic-fly/2saz1ia5q-1785132126441.png" alt="复制密钥" /></p>
<p>随后你就可以把这个密钥填进任何你想要用的地方了，只要支持 OpenAI 兼容格式和自定义模型，基本上一路畅通。</p>
<p>我将它作为了 OpenClaw 的默认模型，日常体验不错，一想到它是免费的就想让它往死里蹬。</p>
<p><code>API Key</code> 填你刚才拿到的一大串 sk- 开头的东西
<code>API 端点</code> 填</p>
<pre><code>https://opencode.ai/zen/v1
</code></pre>
<h2>总结</h2>
<p>这有啥好总结的。能用就行了。</p>
]]></content>
    <author><name>殘月</name></author>
    <category term="教程"/>
  </entry>
  <entry>
    <title>国产模型已经崛起，亿万人必须买 Token</title>
    <link href="https://x0.fan/posts/rise-up-chinese-models/" rel="alternate" type="text/html"/>
    <id>https://x0.fan/posts/rise-up-chinese-models/</id>
    <published>2026-07-27T00:00:00.000Z</published>
    <updated>2026-07-27T00:00:00.000Z</updated>
    <summary>国产模型你崛起吧，，，</summary>
    <content type="html"><![CDATA[<h2>震撼首发</h2>
<p>什么叫 Kimi K3 在 <a href="https://arena.ai/leaderboard/code/webdev">Arena.ai 的 Webdev 榜</a> 上把 Claude 模型给挤下去了？？？</p>
<p>是的，你没有听错。这绝对是我今年听过最牛逼的新闻，丝毫不亚于当 DeepSeek V4 GA 正式发布时我的心情。我仿佛躺在凳子上，看着一颗原子弹爆炸。</p>
<p>而更炸裂的是，Kimi K3 模型将在今晚开源。这是史上第一次，一个开放权重的大语言模型站到了最顶端。<a href="https://huggingface.co/moonshotai/Kimi-K3">Kimi K3 的 Hugging Face 页</a></p>
<p><img src="https://img.x0.fan/pic-fly/j46y7y2g-1785161012809.png" alt="我靠。" /></p>
<p>看到这条消息，我草我感觉天都塌了。作为一个一直以来信奉国产模型不可能赢过西方模型的人，这特么简直是给我泼了一盆开水，不愧是国产 AI，真是给我特么烫开了眼，疯了吧。</p>
<p>Kimi K3 这是要把整个模型圈都给干翻了。</p>
<p>然而树大招风，消息传出来还没多久，于北京时间 7 月 22 日晚 10 点，白宫科技政策办公室主任 Michael Kratsios 便公开发帖称：</p>
<blockquote>
<p>美国方面掌握信息，月之暗面在开发 Kimi K3 时蒸馏了 Anthropic 的 Claude Fable 5。</p>
</blockquote>
<p>不是哥们，这谁绷得住。你的意思是月之暗面不仅研发了 Kimi K3 ，还研发出了时光机吗。</p>
<p>Fable 5 在 Kimi K3 发布前，仅仅只有 18 天能用。在 Kimi K3 发布前，Fable 5 对外的可用时间连三周都不到，这还能蒸馏多少 Fable 5。你 A/ 咋不早用 Mythos 5，我还想体验一下最前沿的模型。</p>
<p>虽然用强模型训练更小、更便宜的模型，本来就是 AI 行业的常规操作。但是这实在是令人忍俊不禁了。</p>
<p>毫无疑问的是，其成功的根源是技术上的创新。Kimi K3 在神经网络架构上做了意义非凡的创新。它是一个从 0 开始构建的大规模架构。通过 “线性注意力机制”，实现 1M 的超长上下文窗口。并使用新技术使得大模型训练效率能够提升 25% 。</p>
<p>而 Kimi K3 不是孤立事件。如果你稍微关注一下 2026 年的 AI 圈子，你会发现整个开源模型生态已经彻底变天了。</p>
<p>今年 4 月，DeepSeek 震撼首发。甩出了 V4 系列。V4-Flash 和 V4-Pro，全部 MIT 开源。分别是 284B 和 1.6T 参数，两个模型都是 1M 上下文窗口、使用全新的 mHC 架构。也许在那个时候确实还是什么"国产平替"，但这也为 Kimi K3 的诞生空间，打下一个基础。这样就算是突然冒出来一个中国模型能把 DeepSWE、GPQA Diamond、FrontierSWE 这些榜全部刷登顶似乎也不是很意外了。<a href="https://www.youtube.com/watch?v=enk4w5mRjQY">FaceDev 做的社会实验（也许吧</a></p>
<p>再往前看，阿里的 Qwen 系列早在 2025 年就已经超越了 Meta 的 Llama，成为了 Hugging Face 上下载量最大的模型系列。到 2026 年，Hugging Face 上超过 40% 的新模型衍生品都基于 Qwen 系列构建。有现成的为啥不用？有很多开发者已经把中国模型当底座来制作小模型了。</p>
<p>这不是一两个明星模型在为国产模型撑场面，国内模型已经正在崛起。</p>
<p>国产模型已经不是以性价比而言，而是开始刷榜。</p>
<p>至于我为什么这么说呢，看看 Kimi K3 的价格吧。</p>
<p><img src="https://img.x0.fan/pic-fly/arcvs73r-1785163400178.png" alt="我草别搞😭这我哪买得起" /></p>
<p>相较于 DeepSeek V4，两个模型的定价简直是天差地别。我作为一个大穷人我也是只能用的起 DeepSeek V4 了。顶多月初充个中转站狠狠蹬一把。</p>
<p><img src="https://img.x0.fan/pic-fly/1sr00mzro-1785163588725.png" alt="梁文圣我喜欢你" /></p>
<p>DeepSeek V4 的价格简直是给我吓死了。太牛逼了。</p>
<p>所以为什么特么 DeepSeek V4 GA 还不发啊😭😭😭😭😭😭😭我道心要破裂了。我猜是以下三个人干的😡😡😡</p>
<blockquote>
<p>维亚切斯拉夫·巴兰尼科夫（Vyacheslav Barannikov）、安东·尤丁采夫（Anton Yudintsev）和尼基塔·布亚诺夫（Nikita Buyanov）</p>
</blockquote>
<p><img src="https://img.x0.fan/pic-fly/1v9dvc7ex-1785164107730.png" alt="再不发😭😭😭再不发😭😭😭" /></p>
<p>🤪🤪🤪</p>
<h2>结语</h2>
<p>国产模型已经崛起，亿万人必须买 Token。😡😡😡😡</p>
<h2>2026/07/27 UTC+8 23:00 记</h2>
<p><img src="https://img.x0.fan/pic-fly/37xpvo6yz-1785164921428.png" alt="药寄吧干啥" /></p>
<p>跳票了😭😭😭特么的逗我呢</p>
<h2>2026/07/27 UTC+8 23:18 记</h2>
<p>我去牛大了居然上了</p>
<p><img src="https://img.x0.fan/pic-fly/29d19d4a9-1785165574505.png" alt="哦买噶🤓🤓🤓🤓🤓🤓" /></p>
]]></content>
    <author><name>殘月</name></author>
    <category term="观点"/>
  </entry>
  <entry>
    <title>为什么 Github 正在变差</title>
    <link href="https://x0.fan/posts/why-github-is-getting-worse/" rel="alternate" type="text/html"/>
    <id>https://x0.fan/posts/why-github-is-getting-worse/</id>
    <published>2026-07-26T00:00:00.000Z</published>
    <updated>2026-07-26T00:00:00.000Z</updated>
    <summary>Vibe Coding 正在摧毁这个社区</summary>
    <content type="html"><![CDATA[<h1>为什么 Github 正在变差</h1>
<p><em>本文仅作为个人观点，不代表所有人。</em></p>
<p>在如今 AI 盛行的年代，更好用的模型遍地开花，随着 AI 的编程能力进一步提升，我们也学会了如何使用 AI 进行开发，利用 AI ，即使是一个 8 岁的孩子也能制作出一款精美的游戏。</p>
<p>任何人都可以依靠 AI 来生成自己需要的代码、甚至利用 AI 来提交 PR、发布 Issue，创建一个属于自己项目。这听起来像是一个美好的未来，但现实却在走向另一个反面——大量的“屎山代码”，掀起的 AI 浪潮正在冲刷着 <code>Github</code> 这样一个代码托管与协作的平台。</p>
<h2>反面教材</h2>
<p>在 2026 年的劳动节假期期间，我发现 <code>Kimi</code> 软件中拥有一个社区部分，但匪夷所思的是这个社区不对非简体中文用户开放，虽然不知道为什么。</p>
<p>在查看了大量已有帖子后，我逐渐意识到这特么就是个小学生聚集地。这里的大部分帖子内容无一都是 AIGC 内容，不过这是在一个 AI 软件里的社区，含有大量 AIGC 内容是没有任何问题的。但是在这里的帖子内容，基本完全是 AI Slop 内容，没有任何技术含量的内容被每天上传，大量 100% Vibe Coding 内容被直接上传，连文案都是直接 AI 生成。</p>
<p><em>不过另外提一嘴在这里炸鱼看乐子还是挺好玩的</em></p>
<p>你可能想问，这和本文主题有什么区别？我的理由是，这个社区作为一个开源社区（所有代码的 src 是能被直接看见的），相较于 Github，这里淋漓尽致地体现了 AIGC 对于一个社区的危害，这个社区完全是无门槛的。而在如今 AI 的加持下，这也正是 Github 等开源社区所正在变成的样子。用户只需要截个图，丢给 AI ，询问下一步该怎么做，即使不懂任何英语都能注册一个账户。</p>
<p>在潜水了几个月，我逐渐注意到一些事。某些社区里的低龄用户正在尝试将这里的行为模式复制到 Github 上。他们正在创建着一个由 AI 全权代劳的项目，就连 README 等文案都是由 AI 来编写。提交着连自己都不明白改了什么的 PR，创建着由 AI 编写的 Issue。就连吵架都需要 AI 来 “润色”，将脾气发到贡献者身上，将自己的圈外事抱怨在贡献者上，希望贡献者能够帮助你。这真的是在贡献开源社区么？我不这么认为。而是在摧毁这个社区。</p>
<p>我就不单论贡献者到底鸟不鸟你了，我的评价是除非王牌对王牌，基本没有人会理。</p>
<h2>热门项目的“改良”</h2>
<p><em>我就为此举一个例子，对号入座者那我也是没招了，随便你吧。</em></p>
<p>一位开发者将其喜爱的实现库迁移为了另一种语言。这当然是极好的，为开源社区贡献自己的一份力量，只要守着住规矩，谁不会同意呢？但只要你点开仓库，你就能明白，这根本不是这么一回事了。</p>
<p>代码一眼望去，满是 AI 生成的无敌烂摊子，提交历史更是个重量级啊，随机生成一个就当 commit message 发了。</p>
<p>那我想着是个人就应该自己徒手写 README 吧，好嘛一往下划，这写的是个啥玩意，我拿查 AI 率的工具帮你查一下都能直接产出 100% 的 AI 率了，写的那是一个天花乱坠，Emoji 什么的直接往上堆，不是你写你吗关键技术点呢，这是个什么鬼东西，更牛逼的是居然还能在 README 里加一些莫名其妙和项目完全没有一点关系的东西，谁敢用，怕不是用一下就被挂上去了。</p>
<p>整个项目我完全只能用以下几句话评价</p>
<pre><code>calued
bash: calued: 未找到命令
😭😭😭怎么办呀我嗯打不开cluaude cdoe。诶豆包豆包怎么打开呀。
...
claude
嘿 cluaed，帮我把这个库一比一改为使用 xxxx 进行实现，我要的嗯是能直接打开来就能用的嗯。尼古拉斯啵啵啵。

好的这是我为你生成的一比一实现的库。咪咪咪咪咪。

😎😎😎我去呀这么牛逼，赶紧上传嗯gtihub。

git add .
git commit -m 我的妈呀大姐。
git push --force origin mian
哎哟我去怎么上传不了😭😭😭豆包救我呀我哭哭哭哭哭😭😭😭豆包你火速给我也是生成一个一键上传的脚本好吧😍😍😍
</code></pre>
<p>但故事从这里才刚刚开始。</p>
<p>有人将这个项目进行了优化，花了自己大量 Token 去精修，把无关的内容全部删光，将实现替换成真正可用的实现，保留署名和所有上游。虽然是使用 AI 编写，但是至少是带着脑子的。</p>
<p>然后原作者的骚操作就搞起来了。（难绷</p>
<p>他看见了自己的作品被二创，不管三七二十一，管你这那的，直接开始盯着一个点骂，说什么这个实现太垃圾了，又骂什么凭空捏造上游，把事情闹到所有地方，无论是原原作者底下，还是各种自己所到之处，统统挂一遍人头。拜托互联网是有记忆的亲，我们这群观众是看不见么。</p>
<p>如果你说这只是一个开发者在合理发泄而已，最难绷的来了，他开的所有 Issue，任何回复，所有吵架内容，甚至是视频，全部都是 AI 生成的文案。批量生产了说是。</p>
<p>那么为什么他对 AI 如此痴迷呢？当然是因为 AI 告诉了他一些片面之词，于是以为自己想当然的能够站得住脚。AI 说自己的实现更好，好！开骂。AI 说这值得骂，好！开骂。从头到尾，用过自己的脑子思考过哪怕是一秒钟这件事合不合理么。我看下来就是一个小屁孩用 AI 写作业写的大脑智商退化了罢了。</p>
<h2>问题出在哪？</h2>
<p>你可能会说，啊主播主播你不就只讲了一个个例么这怎么能反映整个开源社区正在变差呢。是的，我承认这是一个个例。但可怕的是，这种个例正在变得越来越多。</p>
<p>AI 给人们带来了一种错觉：<code>我能写代码 = 没有人比我更懂代码</code>。而 Github 作为全球最大的开源协作平台，正在为这种行为买单。当一批又一批完全依靠 Vibe Coding 进行编码甚至将 AI 作为自己的交流工具的用户，不仅维护者的压力正在增加，项目的搜索质量在下降，开源文化中最重要的“协作”也被一群无情的 AI 人替代。</p>
<p>我个人并不反对 AI 辅助编程甚至 Vibe Coding。我自己也会用 AI 编写代码，但问题在于，AI 应该只是你的工具，而不是像个春竹一样把 AI 当成自己的大脑来使用，当你把思考权交给 AI 后，甚至连吵架都需要问 AI 这到底合不合理。</p>
<p>更可怕的是，现在的 AI 又只会根据语境顺应你，而那群使用 AI 进行替代大脑思考的人，将会因为 AI 给了他们这种虚假的底气而认为自己做什么都会成功、做什么都是正确的。</p>
<p>be like:</p>
<p><img src="https://img.x0.fan/pic-fly/28la4twud-1785068958567.png" alt="这个世界还是太魔幻了" /></p>
<h2>结语</h2>
<p>开源社区正在变差吗？或许的确如此。但让它变差的不是 AI 本身，而是将 AI 当作大脑的人。开源社区的可贵之处从来不是代码本身，而是代码背后的贡献者们。</p>
<p>如果你正在使用 AI 编写代码。我的建议是：</p>
<ul>
<li>请在每一次提交之前理解 AI 生成的代码是什么意思，而不是模棱两可看一下就过去了。</li>
<li>管好自己的大脑，别被 AI 夺舍了。</li>
</ul>
]]></content>
    <author><name>殘月</name></author>
    <category term="观点"/>
  </entry>
  <entry>
    <title>如何在 2026 年安装 Ubuntu 26.04 LTS</title>
    <link href="https://x0.fan/posts/install-ubuntu-26-04-lts/" rel="alternate" type="text/html"/>
    <id>https://x0.fan/posts/install-ubuntu-26-04-lts/</id>
    <published>2026-06-07T00:00:00.000Z</published>
    <updated>2026-06-07T00:00:00.000Z</updated>
    <summary>从使用 U 盘安装，到系统部署</summary>
    <content type="html"><![CDATA[<h1>安装 Ubuntu 26.04 LTS</h1>
<h2>前言</h2>
<p>Ubuntu 26.04 LTS（<code>Resolute Raccoon</code>）作为 Canonical 公司推出的最新长期支持版本，基于 <code>GNOME 50</code>，带来了更现代化的桌面体验、更强的硬件支持以及更完善的开发者工具链。对于希望体验新系统的用户来说，其是一个高效的选择。</p>
<p>本文将手把手带你完成从 Rufus 下载到系统首次启动的全过程。</p>
<hr />
<h2>环境准备</h2>
<h3>硬件要求</h3>
<p>在开始之前，请确保你的主机满足以下最低配置：</p>
<table>
<thead>
<tr>
<th>资源</th>
<th>最低要求</th>
</tr>
</thead>
<tbody>
<tr>
<td>CPU</td>
<td>64 位处理器</td>
</tr>
<tr>
<td>内存</td>
<td>4 GB</td>
</tr>
<tr>
<td>磁盘空间</td>
<td>25 GB 可用空间</td>
</tr>
</tbody>
</table>
<p>如果连最低要求都满足不了的话还是装个不带桌面环境的发行版吧。</p>
<h3>软件准备</h3>
<ul>
<li><strong>写盘工具</strong>（任选其一）：
<ul>
<li><a href="https://rufus.ie/zh/">Rufus （本文推荐）</a></li>
<li><a href="https://etcher.balena.io/">balenaEtcher</a></li>
</ul>
</li>
<li><strong>Ubuntu 26.04 LTS ISO 镜像</strong>：前往 <a href="https://ubuntu.com/download">Ubuntu 官网</a> 下载桌面版镜像文件。</li>
</ul>
<p>考虑到国内环境，所以如果官网下载不了，可以前往清华源下载：</p>
<ul>
<li><a href="https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/26.04/ubuntu-26.04-desktop-amd64.iso">清华镜像源 - Ubuntu 26.04 LTS</a></li>
</ul>
<hr />
<h2>写盘</h2>
<p>下载后应为如图</p>
<p><img src="https://img.x0.fan/blog/2026/06/c049c046dd3a6bd57142c962bf1980d8.png" alt="image.png" /></p>
<p>打开 Rufus 写盘工具</p>
<p><img src="https://img.x0.fan/blog/2026/06/cfa5a4b91283758d54b65a225228400b.png" alt="image.png" /></p>
<p><img src="https://img.x0.fan/blog/2026/06/140b389a9b742e107022d8983c8f261e.png" alt="image.png" /></p>
<p>随后点击 <code>开始</code> 按钮，等待进度条跑完。</p>
<h2>启动</h2>
<p>重启电脑，进入 BIOS。将 U 盘作为首选启动项启动后按 <code>F11</code> 保存并重启.</p>
<p>进入 Grub 引导后使用键盘回车选择第一个选项</p>
<p><img src="https://img.x0.fan/blog/2026/06/ac4e598b9db37313c22eacb81e1aec8f.png" alt="image.png" /></p>
<p>随后应进入此界面，表示正在启动系统。</p>
<p><img src="https://img.x0.fan/blog/2026/06/7aeb32394da7b2bd46f1fac298469e71.png" alt="image.png" /></p>
<p>静等即可，不要着急。因为着急也没用，我曾经能在这个界面加载半小时，</p>
<p><img src="https://img.x0.fan/blog/2026/06/b2b7dd431724ca005af0b0d307b7760a.png" alt="image.png" /></p>
<p>伴随着一声动听的神秘音效，这个神笔页面就出现了。向下划动，选择 <code>中文(简体)</code> 后点击下一步。</p>
<p>可访问性 也选择下一步</p>
<p>键盘布局默认也不需要修改，除非不是 QWERTY 布局的键盘。</p>
<p><img src="https://img.x0.fan/blog/2026/06/5263385363682b03ae6b4c56e832eb48.png" alt="image.png" /></p>
<p>按需选择，我推荐不连接，因为但凡连接就会拉很多垃圾，而且有可能安装半途中睡着</p>
<p><img src="https://img.x0.fan/blog/2026/06/1c3afa1413fe5f80981f7a7e71d2cf4b.png" alt="image.png" /></p>
<p>点击 <code>安装 Ubuntu</code> 并下一步</p>
<blockquote>
<p>哦我说实话这个真是浣熊吗，这是刺猬吧，我的眼睛要被扎死了</p>
</blockquote>
<p><img src="https://img.x0.fan/blog/2026/06/bc59fbb94bd23dac000587defca6585a.png" alt="image.png" /></p>
<p>选择交互式安装</p>
<p>应用安装选择 <code>默认集合</code></p>
<p>优化您的计算机勾选为<code>图形和 Wi-FI 硬件安装第三方软件</code>，追求能跑满性能或开源软件的另谈。</p>
<p><img src="https://img.x0.fan/blog/2026/06/a6a170f23ce0ecc5ebf8b0348618eac5.png" alt="image.png" /></p>
<p>选择第一项，如果有其他安排，例如希望多系统的用户，请选择手动安装，并选择需要安装的分区。请注意一个分区≠一块硬盘</p>
<p>加密与文件系统：不推荐开启加密，直接默认下一步即可。</p>
<p><img src="https://img.x0.fan/blog/2026/06/b0d9dbc3d667665d2c750ac1a83f0c09.png" alt="image.png" /></p>
<p>按照你的需求填写即可</p>
<p><img src="https://img.x0.fan/blog/2026/06/ab15df634fb8ac59d6ddb0a05cd253d9.png" alt="image.png" /></p>
<p>在第一框填入 <code>Shanghai</code>，后第二框会自动补全时区。随后下一步</p>
<p>在准备页点击 <code>安装</code> 按钮</p>
<p>随后等待安装完成。依旧不能急，急了还是没用，这里老慢了能卡一个小时。如果你觉得太枯燥了不妨打开右下角的日志按钮查看安装日志或是玩一会桌面环境。</p>
<p><img src="https://img.x0.fan/blog/2026/06/85e27729f49447b24cd621c933b5ff4b.png" alt="image.png" /></p>
<p>当你看见这个时，代表已经安装完成。此时你可以点击 <code>立即重启</code> ，等待出现：</p>
<p><img src="https://img.x0.fan/blog/2026/06/185b45e3a630c479d043bb63b763cb2a.png" alt="image.png" /></p>
<p>后将 U 盘从电脑上拔下来，然后按下回车。如果按下回车没用可以按下 <code>Ctrl + Alt + Del</code> 重启。</p>
<p><img src="https://img.x0.fan/blog/2026/06/c778d040eaa5f88d9a964e48493d3b8f.png" alt="image.png" /></p>
<p>进入系统后选择你的用户名称并输入密码即可进入桌面。</p>
<h2>换源</h2>
<p>进入桌面后，按下左下角显示应用按钮，点击 <code>终端</code>，</p>
<p>输入</p>
<pre><code>sudo apt update
</code></pre>
<p>会报一些小问题，这代表我们应当换个源。</p>
<p>这里我推荐使用 <code>LinuxMirror</code> 一键换源脚本。输入：</p>
<pre><code>wget https://linuxmirrors.cn/main.sh
</code></pre>
<p>随后我们赋予这个脚本运行权限</p>
<pre><code>sudo chmod +x main.sh
</code></pre>
<p>运行它</p>
<pre><code>sudo bash main.sh
</code></pre>
<p>选择阿里云，一路回车即可。</p>
<p>提示 <code>是否跳过更新</code>，我们选择<code>否</code>。因为我们还没有更新过软件包。</p>
<p>提示是否清理，我们选择 <code>是</code>。</p>
<h2>安装输入法</h2>
<p>进入应用菜单，点击 <code>语言支持</code>。</p>
<p><img src="https://img.x0.fan/blog/2026/06/f5872c965edadc997d3ba68fdc57e1f0.png" alt="image.png" /></p>
<p>点击安装，并输入密码。</p>
<p><img src="https://img.x0.fan/blog/2026/06/422734423f31bbd1f8ae8672125e807d.png" alt="image.png" /></p>
<p>安装后点击：</p>
<p><img src="https://img.x0.fan/blog/2026/06/df963a559dc3ed0795fad4c0268a6b30.png" alt="image.png" /></p>
<p>使用智能拼音。随后你就可以畅快的使用中文输入法了</p>
<p><img src="https://img.x0.fan/blog/2026/06/845dfed9469b0336fd3543becbd1ce69.png" alt="image.png" /></p>
<h1>结尾</h1>
<p>至此，Ubuntu 26.04 LTS 的安装与基础配置已全部完成。你已经拥有了一个开箱即用的 Linux 桌面环境。</p>
<p>虽然安装过程可能略显漫长，但确实也挺漫长，至少你摆脱了那个喜欢在你系统里拉屎的 Windows ，难道不是吗。</p>
<p>如果在使用过程中遇到问题，欢迎随时查阅文档或社区论坛。祝你使用愉快。</p>
]]></content>
    <author><name>殘月</name></author>
    <category term="教程"/>
  </entry>
  <entry>
    <title>使用 Vercel 部署属于你的博客</title>
    <link href="https://x0.fan/posts/vercel/" rel="alternate" type="text/html"/>
    <id>https://x0.fan/posts/vercel/</id>
    <published>2026-06-06T00:00:00.000Z</published>
    <updated>2026-06-06T00:00:00.000Z</updated>
    <summary>还在为没有自己的博客而担心吗</summary>
    <content type="html"><![CDATA[<h1>起点</h1>
<p>近年来，随着短视频的迅速发展，很多人习惯了在社交平台上分享碎片化内容。但如果你希望系统性地记录知识、沉淀作品，或者打造一个属于自己的网络身份，一个个人博客依然是不可替代的工具。</p>
<p>然而，传统博客搭建往往涉及服务器购买、环境配置、运维等复杂步骤，让许多非技术背景的朋友望而却步。今天，我将介绍如何利用 <strong>Vercel</strong> 搭建一个属于自己的博客.</p>
<h2>注册 Vercel</h2>
<p>在浏览器中打开 <a href="https://vercel.com/signup">Sign Up – Vercel</a>.</p>
<p><img src="https://img.x0.fan/blog/2026/06/c6074b69c6a72f24169fc837f8b1f9b9.png" alt="" /></p>
<p>点击 <code>Continue with Email</code>, 并输入你的邮箱.</p>
<p><img src="https://img.x0.fan/blog/2026/06/5d090b1e4cbff5a0146ab7643bfd9083.png" alt="" /></p>
<p>随后点击 <code>Continue with Email</code>. 随后, 在邮箱中接收验证码并填入.</p>
<p><img src="https://img.x0.fan/blog/2026/06/13eb2965f1735fb0ae43e8e250d50fae.png" alt="" /></p>
<p>选择 <code>working on personal projects</code> 就不需要绑卡了.</p>
<p>在 <code>Your Name</code> 中填入你的名称, 随后 Continue.</p>
<p>这样你就获得了一个 <strong>Vercel</strong> 账户！</p>
<h2>选择一个博客模板</h2>
<p>对于静态博客生成器，选择一个合适的模板 (或者叫做<code>主题</code>？) 是至关重要的。它决定了你的博客的外观，以及功能和用户的浏览体验。一大部分上决定了用户的留存率. 在这里，我们以 <code>Hexo</code> 为例。</p>
<p><strong>Hexo</strong> 是一个快速、简洁且高效的静态博客框架，它基于 <code>Node.js</code>。拥有非常丰富的主题生态，从极简到功能齐全，应有尽有。说实话我一开始的博客使用的就是 Hexo。</p>
<p>为什么选择它?</p>
<ul>
<li><strong>生态成熟</strong>：拥有海量主题和插件，社区活跃。</li>
<li><strong>上手简单</strong>：CLI 操作，几行命令生成、预览和部署。</li>
<li><strong>Markdown 写作</strong>：语法简洁。</li>
<li><strong>部署灵活</strong>：支持生成静态文件，非常适合部署到 Vercel 等托管平台。</li>
</ul>
<p>（为什么不选择本博客的模板呢？当然是因为 Bug 太吉尔多了，不敢恭维.</p>
<h2>使用 Hexo CLI 生成基本项目</h2>
<p>首先确保你的电脑上已经安装以下工具 （当然手机也是可以的，安装 <code>Termux</code> 即可。什么你说你是 iOS？</p>
<ul>
<li>Node.js (14.x +)</li>
<li>npm (谁家好人安装 Node.js 不附赠这包管理器)</li>
</ul>
<p>你可以通过以下命令来检查是否已经安装.</p>
<pre><code>node -v
npm -v
</code></pre>
<p><img src="https://img.x0.fan/blog/2026/06/947dbb5531eca769e826cfebd180ab10.png" alt="" /></p>
<p>如果不存在或未安装，请前往 <a href="https://nodejs.org/zh-cn">Node.js 官网</a> 下载并安装</p>
<h3>步骤 1： 安装 Hexo CLI</h3>
<p>打开终端（Powershell/Bash/三个点)，执行以下命令：</p>
<pre><code>npm install -g hexo-cli
</code></pre>
<p><img src="https://img.x0.fan/blog/2026/06/643de324c6406022791adf8f86ae51e9.png" alt="image.png" /></p>
<p>出现这个就是成了</p>
<h3>步骤 2 - 初始化</h3>
<p>选择一个美丽的文件夹，作为你的博客的根目录</p>
<p><img src="https://img.x0.fan/blog/2026/06/d426de0efc79f4d01a03e939e14ac42b.png" alt="" /></p>
<p>在文件夹中执行</p>
<pre><code>hexo init blog
cd blog
</code></pre>
<p><img src="https://img.x0.fan/blog/2026/06/73043959eb0fd72b528e65062b82d466.png" alt="image.png" /></p>
<p>蒸蚌！你又完成了一步, 注意执行完 <code>init</code> 一定要 cd 到新文件夹</p>
<h3>步骤 3：安装依赖</h3>
<p>进入项目目录后，安装项目所需的依赖包：</p>
<pre><code>npm install
</code></pre>
<p>（<em>如果听不懂的话反正跟着做没错就行</em></p>
<p><img src="https://img.x0.fan/blog/2026/06/6b13185d8340a0517101b02b303cdf0a.png" alt="image.png" /></p>
<p>出现 <code>added * packages</code> 并且没报错就是成功了.</p>
<h3>步骤 4：预览</h3>
<p>现在你可以在本地启动一个开发服务器，即在编辑内容时也可以实时看到你的博客发生了什么变化。</p>
<pre><code>hexo s
# 或者
hexo server
</code></pre>
<p>使用浏览器打开其提供的访问网址（通常为 <code>http://localhost:4000</code>），你就能看见 Hexo 的默认主题和一篇自动生成的示例文章！</p>
<p><img src="https://img.x0.fan/blog/2026/06/7475bae34f5f5de2751ab230d55569c1.png" alt="image.png" /></p>
<p>熟悉以下命令将帮助你高效地管理博客：</p>
<ul>
<li><code>hexo init [folder]</code>：初始化一个新博客</li>
<li><code>hexo new "文章标题"</code>：创建一篇新文章（会在 <code>source/_posts</code> 文件夹生成一个 Markdown 文件），使用你喜欢的文本编辑器打开即可编辑文章.</li>
<li><code>hexo generate</code> 或 <code>hexo g</code>：生成静态文件到 <code>public</code> 文件夹。</li>
<li><code>hexo server</code> 或 <code>hexo s</code>：启动本地服务器进行预览</li>
<li><code>hexo deploy</code> 或 <code>hexo d</code>：部署博客到远程平台（如 Vercel 等）</li>
<li><code>hexo clean</code>：清除缓存和生成的静态文件（在修改配置或主题后建议执行）</li>
</ul>
<p>至此，你已经成功创建并运行了一个基础的 Hexo 博客。接下来，我们将进入下一步骤：<strong>选择一个博客模板</strong>，为你的博客换上心仪的外观。</p>
<h2>使用 new post 生成 md 文件并使用 VSCode 编辑</h2>
<p>在本地博客项目跑起来之后，下一步就是开始创作内容了。Hexo 提供了非常便捷的命令来创建新文章，它会自动生成一个标准的 Markdown 文件，你只需要专注于写作即可。</p>
<h3>创建新文章</h3>
<p>在博客根目录下，执行以下命令来创建一篇新文章：</p>
<pre><code>hexo new post "你的文章标题"
</code></pre>
<p>例如：</p>
<pre><code>hexo new post "我的第一篇博客"
</code></pre>
<p><img src="https://img.x0.fan/blog/2026/06/3aad38965372c2f26e226b5d9d398d65.png" alt="image.png" /></p>
<p>执行成功后，终端会提示你新文章的路径，通常位于 <code>source/_posts/你的文章标题.md</code>。</p>
<h3>使用 VS Code 编辑</h3>
<p>推荐使用 <strong>VS Code</strong>（微软大战代码）作为你的 Markdown 编辑器，它拥有丰富的插件生态，能极大地提升写作体验。</p>
<ol>
<li>
<p><strong>打开文件</strong>：在 VSCode 中打开刚才生成的 <code>.md</code> 文件。</p>
</li>
<li>
<p><strong>安装推荐插件</strong>：</p>
<ul>
<li><strong>Markdown All in One</strong>：提供快捷键、自动补全、目录生成等便捷功能。</li>
<li><strong>Markdown Preview Enhanced</strong>：提供强大的实时预览功能，支持代码高亮、数学公式等。</li>
</ul>
</li>
<li>
<p><strong>开始写作</strong>：</p>
<ul>
<li>文件顶部的 <code>---</code> 之间是 <strong>FrontMatter</strong>（文章元数据），你可以在这里设置标题、日期、标签、分类等，Hexo 会识别它们.</li>
<li>下方就是正文部分，使用标准的 Markdown 语法进行写作。</li>
</ul>
<pre><code>---
title: 我的第一篇博客
date: 2026-06-06 10:00:00
tags:
  - 随笔
  - 生活
categories:
  - 日记
---

这里是正文内容，你可以尽情在这里哔哩吧啦。

## 二级标题

- 列表项 1
- 列表项 2
</code></pre>
</li>
</ol>
<p><img src="https://img.x0.fan/blog/2026/06/f0969381688b8d0325ddb46530915e95.png" alt="image.png" />
（<em>别忘了保存</em></p>
<h3>预览与发布</h3>
<p>写作过程中，你可以随时使用 <code>hexo s</code> 启动本地服务器，在浏览器中实时预览你的文章效果。满意后，记得使用 <code>vercel</code> 将最新内容部署到线上。</p>
<h2>部署到 <strong>Vercel</strong></h2>
<p>当本地预览满意后，我们需要将博客发布到互联网上，让所有人都能访问。Vercel 提供了极其简单的部署流程，它能自动检测你的 Hexo 项目，并进行构建和托管。</p>
<p>考虑到国内网络环境问题导致 <strong>Github</strong>, <strong>GitLab</strong> 访问不是非常稳定，因此我们将教学使用 Vercel 提供的命令行工具部署至 Vercel。这种方式更加直接，非常便捷，且无需创建一个单独的仓库。</p>
<h3>步骤 1：安装 Vercel CLI</h3>
<p>在终端中执行以下命令，全局安装 Vercel CLI：</p>
<pre><code>npm install -g vercel
</code></pre>
<h3>步骤 2：登录 Vercel</h3>
<p>安装完成后，执行登录命令。这会打开浏览器让你授权登录（如果没有自动打开，请复制终端显示的链接到浏览器）：</p>
<pre><code>vercel login
</code></pre>
<p><img src="https://img.x0.fan/blog/2026/06/05e29eccee2b789fea61c6614e6f148a.png" alt="image.png" /></p>
<p>随后应会自动打开网址，如果没有请手动访问你终端中输出的网址。</p>
<p><img src="https://img.x0.fan/blog/2026/06/600a41b3dc61f9e6b9783c098b641d6a.png" alt="image.png" /></p>
<p>点击 <code>Allow</code> , 过一会会提示 <code>Authorization successful</code> 便表示验证通过。</p>
<p><img src="https://img.x0.fan/blog/2026/06/3541a798d99f8edaca12bba2a08656cb.png" alt="image.png" /></p>
<p>输入 <code>N</code> 后回车。</p>
<h3>步骤 3：初始化并部署</h3>
<p>进入你的 Hexo 博客根目录（即包含 <code>package.json</code> 的文件夹），执行部署命令：</p>
<pre><code>vercel
</code></pre>
<p><img src="https://img.x0.fan/blog/2026/06/45f242b1aed3106988ec63cabeb81353.png" alt="image.png" /></p>
<p>第一个配置直接回车。</p>
<p><img src="https://img.x0.fan/blog/2026/06/d8b4bdd275226beb60123e8cce6ffa07.png" alt="image.png" /></p>
<p>输入 <code>N</code>，如果你已经创建过则输入 <code>Y</code>，本期内容不讲解已经创建的情况.</p>
<p><img src="https://img.x0.fan/blog/2026/06/3f8045e00d48ad223e4acfc31c65256f.png" alt="image.png" /></p>
<p>输入项目名称，很大一部分上决定了 Vercel 为你分配的子域名前缀。例如：cialloworld123.vercel.app，则这个 <code>cialloworld123</code> 是你的项目名称。（除非重名，重名 Vercel 会给你在子域名前缀塞东西以防止重复。）</p>
<p><img src="https://img.x0.fan/blog/2026/06/e9148a3c1140bfa278feb56ce65d83d3.png" alt="image.png" /></p>
<p>输入 <code>N</code>，除非没检测到 Hexo。</p>
<p><img src="https://img.x0.fan/blog/2026/06/3eda950f86ea2b7014ecb3cebf41e764.png" alt="image.png" /></p>
<p>如果你不了解的话建议还是输入 <code>N</code>。</p>
<p>等待片刻，当终端显示 <code>Inspect</code> 链接和 <code>Production</code> 链接时，说明部署成功。点击 Production 链接即可访问你的博客。</p>
<p><img src="https://img.x0.fan/blog/2026/06/e0b4f13f916e6c733514f15b88a0adf5.png" alt="image.png" /></p>
<h3>步骤 4：后续更新</h3>
<p>以后每次你修改了博客内容或配置，只需要在本地执行以下两个命令即可更新线上版本：</p>
<pre><code>vercel --prod
</code></pre>
<p>Vercel 会自动上传和构建博客。</p>
<h1>总结</h1>
<p>至此，我们已经将博客部署到了互联网上。</p>
<p><strong>Vercel</strong> 为个人博客部署带来了极大的便利：</p>
<ul>
<li><strong>零成本</strong>：免费套餐完全够用</li>
<li><strong>零运维</strong>：不需要买服务器，安全与维护全部免费</li>
<li><strong>极致体验</strong>：自动 HTTPS、全球 CDN 加速、与 Git 无缝集成（好吧如果你选择 Git 部署。）</li>
</ul>
<p>很可怕吗，不对这不可怕。</p>
<p>现在，你已经拥有了一个属于自己的个人博客。接下来，你可以专注于最牛逼的事情，即<strong>用博客记录你的想法</strong>。反正啥叽里咕噜的都能写。</p>
<p>不要犹豫，现在就开始部署，尝试写下你的第一篇文章吧，祝你写作愉快。</p>
]]></content>
    <author><name>殘月</name></author>
    <category term="教程"/>
  </entry>
</feed>
