Ubuntu 使用问题记录贴
这篇文章来自一次 Ubuntu 桌面环境的连续排查。当时遇到的问题看起来互不相关:curl 安装失败、Bash 找不到 /dev/fd/63、用户不在 sudo 列表,以及设置图标消失。它们最后都提醒我一件事:先保留完整现象,再做最小修改,不要把“能执行”误当成“已经定位原因”。
文中的系统和软件包版本属于当时环境。下面保留原始处理过程,并把现在更值得注意的排查边界补在每个问题后面。
1. 安装软件时出现未满足的依赖关系
当时安装 curl 时看到:
下列软件包有未满足的依赖关系:
curl : 依赖: libcurl4 (= 7.64.0-2ubuntu1.2) 但是 7.65.3-1ubuntu3 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
原来的判断是 libcurl4 版本没有对上,于是直接清理后重装:
sudo apt-get purge libcurl4
sudo apt-get update
sudo apt-get install curl

现在更稳妥的排查顺序
purge 会删除软件包及其配置,不应该在没有确认依赖关系时直接使用。先把环境信息保存下来:
apt policy curl libcurl4
apt-mark showhold
cat /etc/os-release
sudo apt-get update
sudo apt-get -f install
重点看三件事:软件源是否混用、软件包是否被 hold、依赖是否来自不同发行版或不同版本的源。只有确认旧配置确实造成冲突后,才考虑删除或重新安装,并且要先检查哪些其他软件依赖它。
2. Bash 报错:/dev/fd/63: 没有那个文件或目录
这个问题来自进程替换(process substitution)。类似下面的写法:
some-command <(another-command)
Bash 会把 another-command 的输出通过一个临时的文件描述符暴露给外部命令,常见路径就是 /dev/fd/63。如果把只支持普通文件参数的命令交给了不兼容的解释器,就可能看到“没有那个文件或目录”。

当时的解决思路是把进程替换改成普通标准输入重定向:
producer | bash

不要机械地把一个 < 改成两个 <。真正要确认的是:目标命令需要文件路径,还是需要从 stdin 读取内容。调试时可以先把中间结果写入临时文件,确认内容正确后再恢复管道写法。
3. 用户不在 sudo 列表
当用户没有 sudo 权限时,原来的处理步骤是进入恢复模式,以 root 身份把用户加入 sudo 组:
adduser username sudo
修改组关系后需要重新登录,必要时重启会话,再检查:
id username
groups username
sudo -v
如果系统使用的不是 Debian/Ubuntu 的默认权限组,或者账号来自集中式身份服务,不能直接照搬 sudo 组方案。先确认 /etc/sudoers 和 /etc/sudoers.d/ 的现有规则,编辑 sudo 配置时使用 visudo,不要直接用普通编辑器覆盖文件。
4. 系统设置图标消失
当时的处理方式是重新安装 GNOME 控制中心:
sudo apt update
sudo apt install gnome-control-center

如果安装后仍然没有图标,还要确认当前桌面环境、应用启动器缓存和软件包状态。可以先检查:
dpkg -l gnome-control-center
command -v gnome-control-center
不要把桌面图标消失直接等同于软件包被删除,也不要在不了解桌面环境的情况下批量重装桌面组件。
这次排查留下的经验
- 依赖问题先看
apt policy、软件源和 hold 状态; - 服务问题先看
systemctl status和journalctl; - 权限问题先看
id、groups和实际 sudo 规则; - Bash 问题先区分文件参数、管道和进程替换;
- 修复后重新执行原命令,确认结果,而不是只看安装命令有没有返回。
这篇记录里的命令并不保证适用于当前 Ubuntu 版本。尤其是 purge、恢复模式和修改 sudo 规则,都应该先确认影响范围。排查系统问题时,命令越短,越需要知道它会删掉什么。
参考资料
可用性说明:本文发布于 2019 年 12 月,距今已超过五年。文中涉及的软件版本、接口、下载地址、命令参数和操作界面可能已经发生变化,部分方案在当前环境下可能失效。请结合官方最新文档核对后再操作,生产环境使用前务必先行验证。
版权声明: 本文首发于 指尖魔法屋-Ubuntu 使用问题记录贴(https://blog.thinkmoon.cn/post/650-notes-troubleshooting-ubutnu-linux/) 转载或引用必须申明原指尖魔法屋来源及源地址!
评论
使用 GitHub 账号登录后即可留言,支持 Markdown。