如何在 PKGBUILD 中安装 32 位版本的软件包?

如何在 PKGBUILD 中安装 32 位版本的软件包?

因此,我接管了一个孤立的 AUR 包,其中包含 32 位和 64 位包的单独源。我使用的是 64 位计算机,但我还想在推送更新的 PKGBUILD 之前测试 32 位安装是否有效。我已经读过PKG构建Arch Linux Wiki 的部分,但它没有提及任何有关执行此操作的信息。

PKGBUILD 的示例(简化):

pkgname=...
pkgver=...
pkgdesc=...
arch=('i686' 'x86_64')
depends_x86_64=(
  'lib32-freetype2')
depends_i686=(
  'freetype2')
source_x86_64=("https://site.com/download/{pkgver}_amd64.deb"
                "https://archive.archlinux.org/packages/l/lib32-freetype2/lib32-freetype2-2.11.0-3-x86_64.pkg.tar.zst")
source_i686=("https://site.com/download/{pkgver}_i386.deb"
              "https://archive.archlinux.org/packages/f/freetype2/freetype2-2.11.0-4-x86_64.pkg.tar.zst")
sha256sums_i686=('SKIP'
                 'SKIP')
sha256sums_x86_64=('SKIP'
                   'SKIP')

package() {
    install -d -m0755 "${pkgdir}"/usr/{share/applications,share/pkgname}
}

如何强制 makepkg 构建 32 位版本?

答案1

愚蠢的我 - 原来makepkg.

https://wiki.archlinux.org/title/Makepkg


创建32位配置文件

~/.makepkg.i686.conf
CARCH="i686"
CHOST="i686-unknown-linux-gnu"
CFLAGS="-m32 -march=i686 -mtune=generic -O2 -pipe"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-m32 -Wl,-O1,--sort-common,--as-needed,-z,relro"

并调用 makepkg

linux32 makepkg --config ~/.makepkg.i686.conf

相关内容