如何将静态数据文件包含到 Archlinux AUR 包中?

How to include static data files into Archlinux AUR package?

我有一个使用一些静态文本文件作为数据源的小脚本。我想为这个脚本制作 Archlinux AUR 包。我计划将脚本安装到 /usr/bin/ 和本地某处的静态文本文件 ~/.data_files

我有几个静态文件:data1.txt、data2.txt、data3.txt。基本上,我需要包管理器将脚本安装到 /usr/bin/,创建 ~/.data_files 目录并将静态文件复制到那里。

在这种情况下我应该如何配置我的 PKGBUILD?

这是我当前的版本:

# Maintainer: john doe
pkgname=myscript
pkgver=1.0
pkgrel=1
pkgdesc="test script"
arch=(any)
url="https://github.com/me/myscript"
license=('MIT')
depends=('file')
source=('https://raw.githubusercontent.com/me/myscript/master/myscript')
md5sums=('1fa410f1647700a6da3ab0ebyc52465d')

package() {
  install -D -m 755 myscript ${pkgdir}/usr/bin/myscript
}

让我引用 Archlinux 论坛最活跃的版主之一的话 here

Do not touch the users home directory in a PKGBUILD, especially do not delete things because weird bugs can do bad things.

现在作为 AUR 的维护者,我建议将您的静态文件添加到文件夹 /usr/share/${pkgname}/ 中,正如 Arch Packaging Standards

中所建议的那样

这是我的建议(开放版本、建议、忠告...)

# Maintainer: john doe <john at doe dot com>
pkgname=myscript
pkgver=1.0
pkgrel=1
pkgdesc="test script"
arch=(any)
url="https://github.com/me/myscript"
license=('MIT')
depends=('file')
source=('https://raw.githubusercontent.com/me/myscript/master/myscript'
      'data1.txt'
      'data2.txt'
      'data3.txt')
sha256sums=('77eff738ea7fdeee5f5707cafdf34f74e3bf8df3b8b656a08a8740a45a7e22c45a7e60c31b13c71f5ee04aff9c82ac43abb39c37b2ea6b02a6454e262f336f73'
       'sha256Ofdata1.txt'
       'sha256Ofdata2.txt'
       'sha256Ofdata3.txt')

package() {
  install -Dm755 myscript "${pkgdir}/usr/share/${pkgname}/myscript"
  install -Dm644 data1.txt "${pkgdir}/usr/share/${pkgname}/data1.txt"
  install -Dm644 data2.txt "${pkgdir}/usr/share/${pkgname}/data2.txt"
  install -Dm644 data3.txt "${pkgdir}/usr/share/${pkgname}/data3.txt"
}

由于md5已知漏洞,我使用sha256,但您可以选择使用其他sha*进行完整性检查。