如何提问¶
许多用户遇到问题时,都会求助于社区,下面给出了一些能够快速获得帮助的小窍门。这篇文章大体是《提问的智慧》的缩减版,还加入了一些实用性内容。
提问之前¶
在向社群求助之前,用户可以试着自己解决问题。下面有几点建议:
- 阅读一下相关的文档与手册,也许阁下只是用法不对。
- 也许阁下并不是第一个遇到类似问题的人。在搜索引擎上查找您遇到的问题,也可以搜寻相关的维基与论坛。
提问之时¶
保持礼貌¶
所有开源软件社群的成员都是自愿为大家提供帮助,没有人有义务来服务。即使社群里有来自开源软件公司的员工,他们也是在利用工作的闲暇时间来帮助社群。所以提问时要保持礼貌。(当然,如果阁下需要专业的技术支持,为什么不考虑一下购买开源公司服务呢?)
一次“优质”的提问¶
在求助于社群时,只说“我在使用某某软件或硬件功能时遇到了问题”是不够的。一次“优质”的提问包含以下要素:
- 必要的基本信息
- 软件的名称、版本与软件的网站(或者相关链接);
还有软件的安装方式也要说明(阁下使用的是发行版包管理器、Flatpak、Snap还是直接用的二进制文件?) - 发行版的 名称、版本;
滚动发行版要说明是哪个快照,如果快照比较旧,建议更新再试试(要不然社群没法准确复现阁下的问题)
- 软件的名称、版本与软件的网站(或者相关链接);
- 准确的问题描述
- 问题的症状与出现问题时的步骤,尽量附上截图(这个问题是如何产生的)
- 能否复现问题(当再次尝试相同步骤时,是一定发生问题还是有几率发生?)
- 预期的正常表现(每个人的软硬件环境不完全相同,描述一下预期的表现会有帮助)
- 阐述阁下为解决问题进行的尝试(不要让社群来踩阁下踩过的坑)
- 正确的附加信息
附加信息有时对于解决问题很有帮助,包括但不限于:硬件信息、uname
信息、系统日志、网络状况、用户配置
提供足够的信息¶
Caution
虽然附加信息很重要,但不要一股脑的贴上全部输出,当中可能含有隐私信息。
输出可能比较长,可以通过重定向把结果输出到文件,再用文本编辑器复制出需要的内容部分。比如 sudo dmesg > /tmp/thglg-dmesg.txt
,然后 xdg-open /tmp/thglg-dmesg.txt
打开。
操作系统¶
发行版信息:终端中执行 cat /etc/*-release
。输出中的 NAME=
与 VERSION=
即对应发行版名称与版本。
示例输出
NAME="openSUSE Tumbleweed"
# VERSION="20220314"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20220314"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:tumbleweed:20220314"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
uname 信息:终端执行 uname -a
。
硬件信息¶
Note
硬件相关的问题必须附上硬件信息,仅仅告诉电脑的品牌与型号是不够的。
USB 设备:终端执行 lsusb --tree --verbose
会输出连接的 USB 设备的名称与型号。
PCI 设备:终端执行 sudo lspci
会输出连接的 PCI 设备的名称与型号。
如果运行在树莓派之类的特殊设备上,也应该对此说明。
提取日志¶
当程序运行出现问题时,一般会在标准输出或者各种日志内留下内容,有助于解决问题。
内核日志:终端执行 sudo dmesg
即可获得内核日志。
终端输出:可以用终端执行出问题的程序,这样一般程序会把许多信息输出到终端。
systemd 日志:终端执行 sudo journalctl -b
即可获得自本次开机以来的所有日志,包括内核日志和其他程序的日志。也可以使用 sudo journalctl -f
来实时监测日志。
提问之后¶
耐心等待。社群不一定会马上回应。如果迟迟得不到回应,也有可能是阁下提的问题太糟糕了。
开源社群有时交流会比较直来直去,如果阁下觉得被冒犯了,最好平静地回应。如果有人真的恶言相向,社群里的前辈多半会招呼他;如果一群人都如此表现,换个地方问也未尝不可。
创建日期: 2022-03-18 11:17:14