archlinux packages
本文逐步记录我的 Arch Linux 系统中安装的软件包,目标是了解每个包在当前系统中的用途,以及它是否是必要的依赖(能否安全删除)。
aalib: ASCII art graphic libraryaardvark-dns: Authoritative DNS server for A/AAAA container recordsabseil-cpp: Google 开源的 C++ 基础库,补充标准库能力,详见 abseil-cppadwaita-fonts: GNOME Adwaita 字体,被 wechat 等应用依赖ansible: IT automation toolansible-core: Ansible core engineaom: Alliance for Open Media video codecappstream: Provides a standard for creating app stores across distributionsarchlinux-appstream-data: Arch Linux application database for AppStream-based software centersat-spi2-core: Protocol definitions and daemon for D-Bus at-spiaudit: Userspace components of the audit frameworkavahi: Service Discovery for Linux using mDNS/DNS-SD (compatible with Bonjour)baloo-widgets: KDE Baloo 搜索框架集成小部件bluez-libs: Deprecated libraries for the bluetooth protocol stackboost-libs: Boost C++ 通用库运行时动态库,详见 boost-libsbotan: Crypto library written in C++bubblewrap: 非特权沙箱工具,详见 bubblewrapbtrfs-progs: Userspace utilities to manage btrfs filesystemsc-ares: 异步 DNS 解析 C 库,被 curl、Node.js 等广泛使用ca-certificates-mozilla: Mozilla’s set of trusted CA certificatescfitsio: C/Fortran library for reading and writing FITS data format filesclang: C 语言族编译器前端(基于 LLVM),包含 clang-analyzer 和 clang-tools-extra。当前系统被以下包依赖:doxygen(文档生成工具)、kdevelop(KDE 集成开发环境)、shiboken6(Qt6 Python 绑定代码生成器)。chrony: Lightweight NTP client and serverconmon: OCI container runtime monitorcpio: 将文件打包进或提取自 cpio/tar 归档的工具,当前系统被以下包依赖:debugedit(修改调试符号文件中源码路径的工具,被base-devel依赖)。cryptsetup: Userspace setup tool for transparent encryption of block devices using dm-cryptdav1d: AV1 cross-platform decoder focused on speed and correctnessexpat: C 语言实现的流式 XML 解析库(libexpat),详见 expatfftw: A library for computing the discrete Fourier transform (DFT)fakeroot: 在不具备 root 权限的情况下模拟超级用户权限,常用于makepkg构建时在归档中设置 root 属主/属组。当前系统被base-devel依赖fzf: General-purpose command-line fuzzy findergcr: A library for bits of crypto UI and parsingglslang: OpenGL Shading Language 编译器和验证器,详见 glslanggnutls: A library which provides a secure layer over a reliable transport layergtk-update-icon-cache: GTK icon cache updaterhwdata: Hardware identification databasesiproute2: IP routing utilitieslibavif: Library for encoding and decoding .avif fileslibgit2: Git 功能的独立可嵌入 C 库,详见 libgit2libplist: Library to handle Apple Property List fileslibx11: X11 client-side libraryopenjph: JPEG 2000 Part-15(HTJ2K,高吞吐 JPEG 2000)的开源实现库。当前系统被以下包依赖:openexr(高动态范围图像格式库,被gst-plugins-bad和opencv依赖)。openexr: 高动态范围(HDR)图像文件格式库,支持 32 位浮点像素,广泛用于视觉特效和专业图像处理领域。当前系统被以下包依赖:gst-plugins-bad(GStreamer 非稳定插件集合)、opencv(计算机视觉库)。pcsclite: PC/SC 智能卡中间件库,提供跨平台的智能卡读卡器访问接口(libpcsclite),守护进程pcscd负责管理读卡器设备。当前系统被以下包依赖:qt6-connectivity(Qt6 蓝牙/NFC 等近场通信模块)、wpa_supplicant(Wi-Fi 认证客户端,支持基于智能卡的 EAP 认证)。python-cryptography: 为 Python 提供密码学原语和高层加密接口(包括 AES、RSA、哈希、TLS、X.509 等),底层通过python-cffi调用 OpenSSL。当前系统被以下包依赖:ansible-core(Ansible 自动化工具核心)、python-paramiko(Python SSH 客户端库)、python-pip(Python 包安装器)。
abseil-cpp
Abseil 是 Google 开源的一套 C++ 基础库,用来补充 C++ 标准库(字符串、容器、同步、哈希、时间等)。2017 年从 Google 内部代码中抽出开源,C++ 命名空间一般是 absl。protobuf、gRPC、TensorFlow 等项目会依赖它。项目介绍见 About Abseil。
为什么叫 Abseil?
Abseil 不是功能缩写。英文 abseil 来自德语 abseilen,登山用语,指用绳子沿岩壁下降(和 rappel 是同一类动作)。Google 用这个词作为项目名,对应 Arch 包是 abseil-cpp。
当前系统中的用途
abseil-cpp 不是单独使用的命令行工具,而是给其他 C++ 软件提供基础能力。当前系统被以下包直接依赖:kosmindoormap(KDE OpenStreetMap 室内地图库)、libphonenumber(Google 电话号码解析库)、marble-common(KDE Marble 地图公共组件)、opencv(计算机视觉库)、protobuf(Google Protocol Buffers 序列化库)、re2(Google 正则表达式库)、telegram-desktop(Telegram 桌面客户端)、webrtc-audio-processing-1(WebRTC 音频处理库)。
查看完整反向依赖树:
pactree -r abseil-cpp
expat
C 语言实现的流式 XML 解析库(libexpat),采用 SAX(事件驱动)解析模型,适合处理大型 XML 文档。当前系统被以下包依赖:antigravity(Google 的 AI 辅助 IDE 工具)、avahi(mDNS/DNS-SD 零配置网络服务)、cmake(跨平台构建系统)、dbus(进程间通信总线)、dbus-broker(D-Bus 的替代实现)、exiv2(图片元数据读写库)、fontconfig(字体配置库)、gdb(GNU 调试器)、git(版本控制工具)、mesa(OpenGL/Vulkan 图形驱动实现)、neon(HTTP/WebDAV 客户端库)、polkit(权限授权框架)、python(Python 解释器)、qt6-webengine(Qt6 网页渲染引擎)、vtk(3D 可视化工具库)、wayland(显示服务协议库)、webkit2gtk-4.1(WebKit 网页渲染引擎)、wechat-bin(微信桌面客户端)。
boost-libs
Boost C++ 通用库集合的运行时组件,包含需要单独编译的动态链接库(非 header-only 部分),涵盖 Filesystem(文件系统)、Regex(正则)、Thread(多线程)、Serialization(序列化)、Asio(异步 I/O)等模块。当前系统被以下包依赖:kig(KDE 几何软件)、libime(fcitx5 输入法核心)、libkolabxml(Kolab 数据格式库)、maeparser(化学结构解析)、source-highlight(代码高亮)。其中 libime 是 fcitx5 输入法的关键依赖。
bubblewrap
非特权沙箱工具,利用 Linux namespaces 和 seccomp 技术隔离进程运行环境,无需 root 权限。当前系统被以下包依赖:flatpak(应用沙箱运行时)、glycin(图像加载库,用于 GNOME)、portable(可移植应用框架)、webkit2gtk-4.1(WebKit 渲染引擎,GTK 版本)。其中 flatpak 和 webkit2gtk-4.1 是桌面应用生态的关键依赖。
glslang
GLSL(OpenGL Shading Language)编译器和验证器,也称作 GLslang,是一个以 C 语言为基础的高阶着色语言。由 OpenGL ARB 建立,提供开发者对绘图管线更多的直接控制,而无需使用汇编语言或硬件规格语言。
libgit2
Git 功能的独立可嵌入 C 库,是对 Git 内部代码的 clean-room 重新实现。
为什么叫 libgit2 而不是 libgit?
名称中的 “2” 并非版本号,而是与 Git 自身内部代码的命名区分。Git 的源码树中虽然有一些 C 库代码,但从未设计为可被外部链接(没有稳定 API、非线程安全、GPL 无链接例外)。libgit2 是全新实现的独立项目,具备:
- 稳定的公共 API
- 线程安全
- GPL with linking exception 授权协议(允许闭源程序使用)
当前系统中的用途
bat 和 eza 通过此库直接读取 Git 仓库状态,无需调用 git 命令:
bat:在查看文件时,在行号旁显示行级变更标记(新增 / 修改 / 删除)eza:使用--git参数时,在文件列表旁显示每个文件的 Git 状态列
当前系统被以下包依赖: bat(带语法高亮的 cat 替代工具)、eza(现代化 ls 替代工具)、rust(Rust 编程语言工具链)。
akonadi
Akonadi 框架为应用程序提供中心数据库来统一保存、索引和获取用户的个人信息。这包括邮件、联系人、日历、事件、日志、闹钟和笔记等。在 SC 4.4 中,KAddressBook 成为首个使用 Akonadi 框架的程序。在 SC 4.7 中,KMail、KOrganizer、KJots 等也开始更新使用 Akonadi。此外,一些等离子部件也使用 Akonadi 保存和获取日历事件、笔记等。
akonadi-search
akonadi-search 为 Akonadi 提供全文搜索功能,基于 xapian-core 搜索引擎,提供在 Akonadi 数据库中搜索邮件、联系人、日历等个人信息数据的库和守护进程。当前系统被以下包依赖:akonadiconsole(Akonadi 管理与调试控制台)、kaddressbook(KDE 联系人管理器)、kmail(KDE 邮件客户端)、merkuro(KDE 邮件、日历、联系人和任务套件)、messagelib(KDE PIM 消息库)、pimcommon(KDE PIM 公共库)。
iana-etc
提供 /etc/protocols 和 /etc/services 两个文件。
/etc/protocols:描述 TCP/IP 子系统中可用的多种 DARPA 网络协议,记录了 TCP/IP 协议族的所有协议类型。
/etc/services:提供友好文本名称与端口号、协议类型之间的映射。由互联网号码分配局(IANA,Internet Assigned Numbers Authority)维护。
linux-firmware
在 Linux Kernel 中,Driver 和 Firmware 是有明确含义的。Driver 是控制被操作系统管理的外部设备的代码段,通过 driver_register() 注册到总线上。当设备被注册到同一总线时,总线驱动进行 binding,成功后调用 driver 的 probe() 函数初始化设备,并将控制接口注册到 Linux 其他子系统(如字符设备、v4l2 等)。
Firmware 是运行在非"控制处理器"(如外设中的处理器)中的程序,通常使用与主处理器不同的指令集。这些程序以二进制形式存在,拷贝在 /lib/firmware 目录下。Driver 在初始化时通过 request_firmware() 等接口将指定 firmware 加载到内存,再传输到设备上。
Driver 和 firmware 没有直接关系,firmware 通常由驱动去加载。OS 一般不需要理解 firmware 是什么,只把它当做数据——具体含义只有使用它的设备才知道。
cmake
一个跨平台的编译(Build)工具。
gst-plugins-base
GStreamer 流媒体框架的基础插件集合。
维护记录
| 时间 | 修改内容 | 原因 |
|---|---|---|
| 2026-08-24 | 补充 abseil-cpp 名称来源、项目背景与当前系统直接依赖 |
列表项原先只有英文简介,缺少背景说明 |