![如何在 PKGBUILD 中安装 32 位版本的软件包?](https://linux22.com/image/197276/%E5%A6%82%E4%BD%95%E5%9C%A8%20PKGBUILD%20%E4%B8%AD%E5%AE%89%E8%A3%85%2032%20%E4%BD%8D%E7%89%88%E6%9C%AC%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%EF%BC%9F.png)
因此,我接管了一个孤立的 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