Ubuntu 升级 Obsidian 到 1.13.4 实战:从 dpkg 包安装到终端入口修复
一次完整的 Linux 桌面软件升级记录,包含版本校验、桌面启动验证,以及 PATH 优先级导致的旧 launcher 残留问题排查

目录
问题背景
我在 Ubuntu 上运行的 Obsidian 版本是 1.12.7,想升级到最新发布的 1.13.4(2026-07-27 发布)。
常规思路是 sudo apt upgrade obsidian,但执行后发现 apt 源里的候选版本仍然是 1.12.7,无法直接通过包管理器升级。
这说明我的安装来源(官方 GitHub Release 的 deb 包)和 apt 源(如 flathub 或第三方源)是两套独立的安装路径,apt 源的内容并没有跟上最新版本。

排查当前安装状态
升级前先确认当前安装的完整信息:
dpkg -s obsidian | grep -E "Version|Status|Architecture|Installed"
which obsidian
ls -la $(which obsidian)输出结果:
- Version: 1.12.7
- Status: install ok installed
- 架构: amd64
- 入口路径:
/home/oklife/.local/bin/obsidian
入口路径在 ~/.local/bin/ 下,这通常意味着当初是通过 Flatpak 或用户级安装脚本装的,而不是 sudo dpkg -i 系统级安装。

确认目标版本信息
在 Obsidian GitHub Releases 确认 1.13.4 的发布信息:
- 发布时间:2026-07-27
- 包名:
obsidian_1.13.4_amd64.deb - 架构:amd64
- 直接下载链接:
https://github.com/obsidianmd/obsidian-releases/releases/download/v1.13.4/obsidian_1.13.4_amd64.deb
执行升级
第 1 步:下载 deb 包并校验
cd /tmp
wget https://github.com/obsidianmd/obsidian-releases/releases/download/v1.13.4/obsidian_1.13.4_amd64.deb
# 校验 sha256
sha256sum obsidian_1.13.4_amd64.deb
# 期望输出:01c906fe0207f8d35219df1b743690722d0dc405bc1f6786ac5046b076b0fe13 obsidian_1.13.4_amd64.debsha256 校验通过,确认文件完整。
第 2 步:dpkg 覆盖安装
sudo dpkg -i /tmp/obsidian_1.13.4_amd64.deb
sudo apt-get install -f # 修复可能的依赖问题第 3 步:验证安装结果
dpkg -s obsidian | grep -E "Version|Status"
# 期望输出:
# Version: 1.13.4
# Status: install ok installed安装成功,版本已升级到 1.13.4。
发现问题:终端 obsidian 命令仍然指向旧版
升级完成后,我尝试在终端执行 obsidian --version,预期看到 1.13.4,但终端报错了:
The CLI is unable to find Obsidian. Please make sure Obsidian is running and try again.这说明 obsidian 命令指向了一个旧版的 launcher 脚本,而不是新版安装的二进制。
排查过程
# 1. 确认当前 obsidian 命令指向哪里
which obsidian
# 输出:/home/oklife/.local/bin/obsidian
# 2. 检查这个路径是什么文件
ls -la /home/oklife/.local/bin/obsidian
# 输出:-rwxr-xr-x ... May 22 20:56 obsidian → 这是旧的 user-local launcher
# 3. 检查系统级 obsidian 安装
ls -la /usr/bin/obsidian
# 输出:/usr/bin/obsidian -> /etc/alternatives/obsidian -> /opt/Obsidian/obsidian
# 这是新版本安装的正确入口
# 4. 检查 PATH 顺序
echo $PATH | tr ':' '\n' | head -10
# /home/oklife/.local/bin 排在 /usr/bin 前面根因找到了: 用户的 PATH 环境变量中,~/.local/bin 排在 /usr/bin 前面,所以 obsidian 命令优先找到了旧的 launcher 脚本(1.12.7),而不是新安装的系统级二进制(1.13.4)。

修复方案
删除旧的 user-local launcher,让系统 alternatives 机制接管:
# 删除旧版 launcher
rm /home/oklife/.local/bin/obsidian
# 验证修复结果
which obsidian
# 输出:/usr/bin/obsidian
ls -la /usr/bin/obsidian
# 输出:/usr/bin/obsidian -> /etc/alternatives/obsidian -> /opt/Obsidian/obsidian
# 验证版本
/opt/Obsidian/obsidian --version
# 输出:Loaded updated app /home/oklife/.config/obsidian/obsidian-1.13.4.asar
# Latest version is 1.13.4
# App is up to date.修复完成,终端 obsidian 命令现在正确指向 1.13.4。
关键经验总结
这次升级踩了一个典型的 “旧 launcher 残留” 问题,核心经验如下:
- 升级前先
which obsidian:确认当前命令指向的路径,避免"升了级但命令还指旧版"的情况 - deb 包安装到
/opt/Obsidian/,不清理用户~/.local/bin/下的旧 launcher——这是设计如此,需手动处理 - PATH 优先级决定命令生效版本:
~/.local/bin排在/usr/bin前面时,旧版 launcher 会优先被找到 - alternatives 系统是正确路径:
/usr/bin/obsidian -> /etc/alternatives/obsidian -> /opt/Obsidian/obsidian,只要删掉~/.local/bin/obsidian,系统就会自动使用 alternatives 指向的新版
附录:常见安装方式对比
| 安装方式 | 二进制路径 | 是否更新 alternatives | 常见残留问题 |
|---|---|---|---|
sudo dpkg -i | /opt/Obsidian/obsidian | ✅ 是 | 旧 ~/.local/bin/obsidian 未清理 |
| Flatpak | /var/lib/flatpak/... | ❌ 否 | 需 flatpak update 单独升级 |
| AppImage | 用户自解压路径 | ❌ 否 | 需手动替换 AppImage 文件 |

–全文完–

若你有故事想讲、有困惑想聊、或是想找个人说说心里话,甚至只是吐槽发泄一下情绪,都欢迎来找我聊聊: 《内容已折叠,点击展开》
梦行志
