# 解决 Nautilus 自定义终端插件安装依赖问题

解决 Nautilus 自定义终端插件安装依赖问题

事实上,本文为了追求最新,采用了源码安装。对于一般用户,直接去Release里下载deb包安装,快速解决冲突,配置才是理想选择

问题背景

默认的 GNOME Nautilus 只支持打开 gnome-terminal,如果你像我一样使用 GhosttyAlacrittyKitty 这样的第三方终端,就需要一个扩展来添加右键菜单。

nautilus-open-any-terminal 正是这样一个优秀开源扩展,支持数十种终端模拟器的开箱即用,还支持自定义快捷键。

但是在 Ubuntu 24.04 上直接安装官方提供的 .deb 包会遇到依赖错误:

bash 复制代码
$ sudo apt install ./nautilus-extension-any-terminal_xxx.deb
正在读取软件包列表... 完成
正在分析依赖关系树... 完成
下列软件包有未满足的依赖关系:
 nautilus-extension-any-terminal : 依赖: python3-nautilus 但是它将不会被安装

问题分析

Ubuntu 24.04 搭载的 Nautilus 版本是 46,使用 GTK 4 作为界面工具包。官方 deb 包的 debian/control 文件中缺少了两个关键依赖:

  • gir1.2-gtk-4.0 - GTK 4 的 GObject 内省数据
  • gir1.2-nautilus-4.0 - Nautilus 4.0 扩展接口的 GObject 内省数据

这导致 python3-nautilus 因为缺少依赖无法安装,整个扩展安装流程卡住。

解决方案

修复依赖,重新安装

我们需要更新 debian/control 添加缺失的依赖,然后从源码编译安装。

1. 安装基础依赖

bash 复制代码
sudo apt install gettext python3-nautilus gir1.2-gtk-4.0 gir1.2-nautilus-4.0 libglib2.0-dev-bin

如果之前安装失败了,先修复:

bash 复制代码
sudo apt --fix-broken install

2. 克隆源码

bash 复制代码
git clone https://github.com/Stunkymonkey/nautilus-open-any-terminal.git
cd nautilus-open-any-terminal

3. (可选)修复 debian/control

如果你想重新打包 deb,可以在 debian/controlDepends 部分添加缺失依赖.

diff 复制代码
 Depends: ${python3:Depends},
          ${misc:Depends},
          python3-nautilus,
+         gir1.2-gtk-4.0,
+         gir1.2-nautilus-4.0,
          nautilus

4. 编译并从源码安装

bash 复制代码
make
sudo make install-nautilus schema

5. 重启 Nautilus 生效

bash 复制代码
nautilus -q

配置你喜欢的终端

安装完成后,通过 gsettings 命令配置你想要的终端:

bash 复制代码
# 设置为 Ghostty
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal terminal ghostty

# 设置为 Alacritty
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal terminal alacritty

# 设置为 Kitty
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal terminal kitty

# 设置快捷键 Ctrl+Alt+T 快速打开
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal keybindings '<Ctrl><Alt>t'

# 开启新标签页打开(支持的终端)
gsettings set com.github.stunkymonkey.nautilus-open-any-terminal new-tab true

完整支持的终端列表可以查看项目README,从 alacritty 到 xterm 应有尽有。

常见问题

右键出现两个相同的"Open in XXX"

大概率是因为你使用的终端模拟器本身就自带Nautilus插件,在你kill Nautilus之后又显示罢了,只需要删除冗余就好

bash 复制代码
# 检查是否有重复安装
find /usr/share/nautilus-python/extensions/ -name "*.py"

# 删除冗余的扩展
sudo rm /usr/share/nautilus-python/extensions/xyz.py
# 重启 Nautilus
nautilus -q

小结

通过添加缺失的 gir1.2-gtk-4.0gir1.2-nautilus-4.0 依赖,就能在 Ubuntu 24.04 上成功安装这个很棒的扩展。现在你可以在 Nautilus 右键直接打开你喜欢的任意终端了。

小结

通过添加缺失的 gir1.2-gtk-4.0gir1.2-nautilus-4.0 依赖,就能在 Ubuntu 24.04 上成功安装这个很棒的扩展。现在你可以在 Nautilus 右键直接打开你喜欢的任意终端了。

解决 Nautilus 自定义终端插件安装依赖问题

作者:xingwangzhe

本文链接: xingwangzhe.fun/posts/nauti...

本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

相关推荐
赵谨言17 小时前
基于C#的在线编码与自动化测试全栈Web平台的设计与实现
开发语言·前端·c#
砍材农夫17 小时前
物联网实战:Spring Boot MQTT | 客户端框架比对
spring boot·后端·物联网
Raink老师17 小时前
【AI面试临阵磨枪-98】前端如何展示多模态流式输出:文字打字机 + 图片渐进 + 音频播放?
前端·人工智能·面试
AI_零食17 小时前
奶茶大数据运维表 - 鸿蒙PC Electron框架技术实现详解
运维·前端·华为·electron·开源·harmonyos·鸿蒙
Gopher_HBo17 小时前
存储层LSM Tree
后端·架构
小雨下雨的雨17 小时前
鸿蒙PC Electron框架实现流体气泡模拟器
前端·人工智能·算法·华为·electron·鸿蒙
ZC跨境爬虫17 小时前
跟着 MDN 学JavaScript day_4:如何存储你需要的信息——变量
开发语言·前端·javascript·ui·ecmascript
星栈独行17 小时前
10 分钟跑起第一个 Makepad 应用:先把窗口开起来
前端·程序人生·ui·rust·开源·github
独隅17 小时前
Chrome插件开发实战详细指南
前端·chrome
VcB之殇17 小时前
[Three.js] 实现两个3D模型之间的粒子化切换
前端·javascript·three.js