# 解决 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 国际许可协议进行许可。

相关推荐
白太岁2 小时前
Redis:缓存、集群、优化与数据结构
redis·后端
宸翰2 小时前
在VS code中如何舒适的开发Python
前端·python
奋斗的小鱼干2 小时前
windows龙虾的安装
前端
树獭叔叔2 小时前
别再盲目堆残差了!Moonshot AI 的 AttnRes 如何让 LLM 训练提速 25%?
后端·aigc·openai
程序员阿峰2 小时前
【JavaScript面试题-this 绑定】请说明 `this` 在不同场景下的指向(默认、隐式、显式、new、箭头函数)。
前端·javascript·面试
鱼人2 小时前
内存泄漏:隐形杀手与防御指南
后端
武子康2 小时前
大数据-250 离线数仓 - 电商分析 Hive 数仓 ADS 层订单分析实战:全国/大区/城市分类汇总与 Airflow 调度
大数据·后端·apache hive
用户318730828652 小时前
Python 短信接口高效集成指南:Django/Flask 框架最佳实践
前端
小箌2 小时前
springboot_01
java·spring boot·后端