目录

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 源的内容并没有跟上最新版本。

Obsidian 版本号对比截图,显示 1.12.7 和 1.13.4 的版本号

排查当前安装状态

升级前先确认当前安装的完整信息:

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 系统级安装。

dpkg -s obsidian 的输出截图

确认目标版本信息

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.deb

sha256 校验通过,确认文件完整。

第 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)。

PATH 顺序和 which obsidian 输出对比

修复方案

删除旧的 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 残留” 问题,核心经验如下:

  1. 升级前先 which obsidian:确认当前命令指向的路径,避免"升了级但命令还指旧版"的情况
  2. deb 包安装到 /opt/Obsidian/,不清理用户 ~/.local/bin/ 下的旧 launcher——这是设计如此,需手动处理
  3. PATH 优先级决定命令生效版本~/.local/bin 排在 /usr/bin 前面时,旧版 launcher 会优先被找到
  4. 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 文件
三种安装方式对比表格,显示路径和更新方式差异

–全文完–

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

希望我写的每一个字,成为我自己和某个人活下去、拼下去的力量。                     《内容已折叠,点击展开》

“技术终归是工具,而我们一次次认真把问题理顺,守住的其实不只是页面样式和代码输出,还有那一点不愿被混乱打败的心气,是每一个深夜仍愿点灯前行的人。”

转载请注明来自https://oklife.me。

文尾配图水墨画图片