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

问题描述:

我有一个使用一些静态文本文件作为数据源的小脚本。我想为这个脚本制作Archlinux AUR包。我打算将脚本安装到本地的/usr/bin/和静态文本文件中~/.data_files如何将静态数据文件包含到Archlinux AUR包中?

我有几个静态文件: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

不要触碰用户的主目录中PKGBUILD特别是不要删除东西,因为weird bugs可以做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,但你可以选择自己o使用其他sha *进行完整性检查。