yay社区源还是比较强大的,需要使用fakeroot,但是比如在linux deploy使用chroot,termux使用proot,Windows使用wsl等等情况下安装的archlinux无法正常使用fakeroot。
解决办法就是使用fakeroot-tcp替换fakeroot,wsl可能直接替换就可以用,或者和chroot/proot一样,自己编译安装fakeroot,然后安装fakeroot-tcp。
https://github.com/sdrausty/TermuxArch/issues/83
1、使用这些容器安装的Linux一般默认使用的是root,makepkg需要普通用户才能运行,需要先创建一个。
#创建一个用户名为zsxwz,用户组为users的用户 useradd -m -g users -s /bin/bash zsxwz pacman -S nano #用户添加root权限 EDITOR=nano visudo #添加 zsxwz ALL=(ALL) ALL #设置密码 passwd zsxwz #部分容器比如Linux deploy可能还需要修改用户组 #root查看用户组 groups #添加用户组,除了root组,其他的都可以添加 usermod --append --groups group1,group2,... zsxwz #切换用户,root目录不可读写 su zsxwz
2、编译安装:
#安装依赖 pacman -S glibc filesystem sed util-linux po4a automake autoconf acl git --overwrite "*" --needed #卸载原先安装的fakeroot pacman -R fakeroot #编译安装 wget http://ftp.debian.org/debian/pool/main/f/fakeroot/fakeroot_1.23.orig.tar.xz tar xvf fakeroot_1.23.orig.tar.xz cd fakeroot-1.23/ ./bootstrap ./configure --prefix=/opt/fakeroot --libdir=/opt/fakeroot/libs --disable-static --with-ipc=tcp make make install #创建临时软连接 ln -s /opt/fakeroot/bin/fakeroot /usr/bin/ ln -s /opt/fakeroot/bin/faked /usr/bin/ #测试,可能有报错,暂时忽略即可。 fakeroot #切换到普通用户 su zsxwz cd ~ git clone https://aur.archlinux.org/fakeroot-tcp.git cd fakeroot-tcp #安装,应该是安装不上去的,但是生成了离线安装包。 makepkg #删除之前编译的fakeroot sudo rm -r /opt/fakeroot #覆盖安装,离线安装包 sudo pacman -U --overwrite "*" fakeroot*.pkg.tar.xz
3、就可以愉快的玩耍社区源了。。。
pacman -S yay #部分软件源可能没有yay,自己修改一下/etc/pacman.conf nano /etc/pacman.conf #添加 [archlinuxcn] SigLevel = Optional TrustAll Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch #更新 yay -Syu
社区源还是有很多有意思的东西的,即使是linux deploy安装的archlinuxarm,也可以比较简单的安装scrcpy[虽然也可以自己编译],安卓远程投屏安卓,成功试了一下自己投自己。