这是一篇简化的教程,如果你有一个喜爱的 Python 模块不在 Arch 仓库里,AUR 里也没有,可以尝试读下去。
准备
对 Python 模块来说,一般仅仅一个 PKGBUILD 文件就足以完成所有的事情。现在你可以打开你最喜欢的文本编辑器,把下面这一个简单的 PKGBUILD 模板复制进去:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# $Id$ # Maintainer: Felix Yan <felixonmars@archlinux.org> pkgbase=python-whatever pkgname=('python-whatever' 'python2-whatever') pkgver=0.4.3 pkgrel=1 pkgdesc='Easy way to make anonymous functions by partial application of operators' arch=('any') license=('BSD') url='https://github.com/Suor/whatever' makedepends=('python-setuptools' 'python2-setuptools') checkdepends=('python-pytest-runner' 'python2-pytest-runner') source=("$pkgbase-$pkgver.tar.gz::https://github.com/Suor/whatever/archive/$pkgver.tar.gz") sha512sums=('162d66753ef4fb15279150b7fa953b4ecf086e2b36cc77531dac099ff4a25b3458af627bdf52e168b7b4b2163a1445f35c2c656b1c10c0c73502d2357ba42dd8') prepare() { cp -a whatever-$pkgver{,-py2} } build() { cd "$srcdir"/whatever-$pkgver python setup.py build cd "$srcdir"/whatever-$pkgver-py2 python2 setup.py build } check() { cd "$srcdir"/whatever-$pkgver python setup.py pytest cd "$srcdir"/whatever-$pkgver-py2 python2 setup.py pytest } package_python-whatever() { depends=('python') cd whatever-$pkgver python setup.py install --root="$pkgdir" --optimize=1 install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE } package_python2-whatever() { depends=('python2') cd whatever-$pkgver-py2 python2 setup.py install --root="$pkgdir" --optimize=1 install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE } # vim:set ts=2 sw=2 et: |
因为距离 Python 2 的废弃时间(2020年)还早,Arch 仓库中的 Python 模块包通常同时提供 Python 2/3 模块。上面例子里的 Python 软件包名叫 whatever,这也同样是它在 PyPI 中的名字。如果原来的包名中包含大写字母,在制作软件包时需要改成小写。 Continue reading 给 Arch 打一个包 – Python 模块篇