如何从头开始创建 Archlinux 软件包

hac*_*t77 4 packaging arch-linux

我正在使用 archlinux,我想用我自己的修改来制作我自己的软件包,

那么,我如何使用源代码创建一个新的 archlinux 软件包以及如何修改现有的软件包?

最后,如何下载 archlinux 软件包的二进制或源代码,例如:

apt download [package name]
Run Code Online (Sandbox Code Playgroud)

或者

apt source [package name]
Run Code Online (Sandbox Code Playgroud)

在 debian 或 ubuntu 包管理器中?

rki*_*huk 6

Arch Linux 软件包是使用makepkg工具构建的。为了从头开始构建包,您需要创建一个PKGBUILD定义包元数据和构建步骤的文件。该文件本质上是一个 Bash 脚本。

一个非常基本的PKGBUILD文件可能如下所示:

pkgname=arch-update-notify
pkgver=0.2
pkgrel=1
pkgdesc="Notify all users with X sessions about available updates with a popup."
arch=("any")
url="https://github.com/zoresvit/arch-update-notify"
license=('MIT')
depends=('libnotify' 'python')
source=("git://github.com/zoresvit/${pkgname}/")
sha1sums=('SKIP')

package() {
    cd "$pkgname"
    mkdir -p $pkgdir/usr/bin
    install -D -m755 ./updates.py $pkgdir/usr/bin/$pkgname
}
Run Code Online (Sandbox Code Playgroud)

updates.py它创建一个将文件安装到目录中的包/usr/bin

有关更多信息,请参阅ArchWiki 页面,该页面深入描述了 Arch Linux 打包的工作原理以及如何正确构建包。

还有一个ArchLinux 用户存储库(AUR),其中包含PKGBUILD用户创建的文件。您可以选择一个包并单击查看 PKGBUILD以更好地了解其他人如何编写他们的PKGBUILD文件。

您可以使用pacman下载包:

pacman -Sw <package_name>
Run Code Online (Sandbox Code Playgroud)

这会将一个包及其所有依赖项下载到/var/cache/pacman/pkg.

有关使用的更多信息pacman您还可以查看相应的ArchWiki 页面