Closed holymonson closed 4 years ago
本仓库以 x86_64 为主,别的架构很可能经常缺包的(因为别的架构都没有自动化打包)。
刚想说 archlinuxarm,发现它们没有打包 yay。
但 arch4edu 是有的。我也没看出哪个参数是修改打包的arch的,build_prefix
似乎是打包机上的的参数。
arch4edu是通过devtools-qemu打的 PS. 现在alarm官方没有devtools-qemu的依赖devtools-alarm>=20191227,我用的是自己改的
如果没有依赖的话,请打包yay-bin
,作者本身就放出二进制的,无需编译。
问题不在于编译,而在于打包。没弄错的话,devtools 无法出 aarch64 的包。使用诸如 devtools-qemu 的方案的话,那要先解决这个方案的测试和部署。
问题不在于编译,而在于打包
具体来说是弄一个非x86_64的clean chroot出来
devtools 无法出 aarch64 的包
devtools里有一部分是架构检查,非x86_64直接报错 devtools-alarm移除了这个架构检查限制,但也做了一些其他(有利有弊的)调整
使用诸如 devtools-qemu 的方案的话,那要先解决这个方案的测试和部署。
主要问题是devtools-alarm和devtools是替代关系,devtools-alarm现在alarm版还没有zstd支持 然后devtools-qemu有一些命令可能qemu下会报错(比如现在armv6h和armv7h下git会报错,所有-git包build不了)
还有其他方案就是yay官方的arm版都是走得qemu和docker的方案做的,docker内部直接makepkg打包,本质也是要弄一个clean chroot出来
我觉得就 yay 来说,它应该可以走交叉编译的路线。所以需要:
然而前者如何取得是个问题……除非 pacman 支持「交叉安装」?但是这样 install 脚本就跑不了了。
qemu 很慢啊……
Q_Q 搞个 aarch64 手动打包放上去,偶尔更新一下保持能用就好?
首先,我自己的 armv8,是可以通过 distcc ,用 x86_64上 的 distccd-alarm-armv8 交叉编译,不需要起 qemu。
至于打包,应该是架构无关的吧,makepkg.conf 本来就可以指定 CARCH=aarch64
,我刚才就直接在 x86_64
上打包了份yay-bin-9.4.6-1-aarch64.pkg.tar
. 设置好 makepkg.conf 里的参数和路径,应该不难解决?
但是你 makepkg 的時候是需要安裝依賴的包的,這個時候 install 脚本就跑不了
所有 install 脚本本来就是不必要的,那都是对系统的更改。makepkg 时的依赖包,只有库和头文件是 target 架构,依赖程序是 host 架构的。或者具体点,makedepends 是 x86_64,depends 是 aarch64。
依赖包的install脚本呢? 如果不跑,那这个依赖包就还没装好
Monson Shao notifications@github.com 于 2020年4月2日周四 20:33写道:
所有 install 脚本本来就是不必要的,那都是对系统的更改。makepkg 时的依赖包,只有库和头文件是 target 架构,依赖程序是 host 架构的。或者具体点,makedepends 是 x86_64,depends 是 aarch64。
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/archlinuxcn/repo/issues/1552#issuecomment-607817778, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABKDT5HEUNOPGUSM7FNIJLRKSAYZANCNFSM4LXL6TYQ .
如果不跑,那这个依赖包就还没装好
你确定?我印象中,install script 即使 fail 了,包还是安装成功,文件都在的。
你确定?我印象中,install script 即使 fail 了,包还是安装成功,文件都在的。
pacman 的确不报错, 但是并不代表装好了. 最近有没有不知道不过之前就有包是安装了以后再 mv
到正确的路径的.
如果真的非要 aarch64 的运行环境,就只能用 qemu 了。不过可以考虑 makepkg 用 distcc 到 host 上交叉编译,这样可以大幅减少 qemu 的计算量。
我觉得这个 issue 可以 close 了
[16:59:05][marvelous@daisuke-SSH ~]$ Si yay
Repository : archlinuxcn
Name : yay
Version : 9.4.6-2
Description : Yet another yogurt. Pacman wrapper and AUR helper written in go.
Architecture : aarch64
URL : https://github.com/Jguer/yay
Licenses : GPL
Groups : None
Provides : None
Depends On : pacman>=5.2 sudo git
Optional Deps : None
Conflicts With : None
Replaces : None
Download Size : 2016.65 KiB
Installed Size : 6001.94 KiB
Packager : Megumi Fox <i@megumifox.com>
Build Date : Mon 13 Apr 2020 04:44:50 PM HKT
Validated By : MD5 Sum SHA-256 Sum Signature
问题类型 / Type of issues
受影响的软件包 / Affected packages
https://github.com/archlinuxcn/repo/blob/1074113c1ef2be8554b5d8eef6ddab323efae22c/archlinuxcn/yay/PKGBUILD#L6
可是,
yay
(和yay-git
)并没有打包在aarch64
里。