站点图标 姿势小王子

解决chroot/proot/wsl容器安装archlinux不能使用fakeroot的问题

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[虽然也可以自己编译],安卓远程投屏安卓,成功试了一下自己投自己。

退出移动版