修复在跨架构chroot下出现的一些问题

This commit is contained in:
gfdgd xi 2023-01-22 09:48:35 +08:00
parent 84f701b1d6
commit fb0e87f81c
4 changed files with 9 additions and 6 deletions

View File

@ -41,6 +41,7 @@ if [[ $2 == "root" ]]; then
else
mount --bind "/home/$2" "$1/home/$2"
fi
# 挂载此内容以可以跨架构运行程序
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
# 如果参数 3 存在
"$programPath/pardus-chroot" "--userspec=$2:$2" . env "HOME=/home/$2" ${@:3}

View File

@ -26,6 +26,7 @@ cp -r /usr/bin/qemu-*-static ./usr/bin
#mount --bind /dev/shm ./dev/shm
chmod 777 -R root tmp
xhost +
# 挂载此内容以可以跨架构运行程序
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
# 如果参数 3 存在
"$programPath/pardus-chroot" . ${@:3}

View File

@ -2622,12 +2622,12 @@ installWineOnDeepin23Alpha = QtWidgets.QAction(QtGui.QIcon(f"{programPath}/Icon/
installWineHQ = QtWidgets.QAction(QtGui.QIcon(f"{programPath}/Icon/Function/wine.png"), transla.transe("U", "安装 WineHQ"))
installMoreWine = QtWidgets.QAction(QtGui.QIcon(f"{programPath}/Icon/Function/more-wine.png"), transla.transe("U", "安装更多 Wine"))
downloadChrootBottle = QtWidgets.QAction(QtGui.QIcon(f"{programPath}/Icon/Function/CHROOT.png"), transla.transe("U", "下载 Chroot 容器"))
p2 = QtWidgets.QAction(transla.transe("U", "设置程序(&S)"))
p2 = QtWidgets.QAction(QtGui.QIcon.fromTheme("settings"), transla.transe("U", "设置程序(&S)"))
enabledAll = QtWidgets.QAction(transla.transe("U", "强制启用所有被禁用的组件(不推荐)"))
p3 = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(47), transla.transe("U", "清空软件历史记录(&C)"))
cleanCache = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(47), transla.transe("U", "清空软件缓存"))
cleanProgramUnuse = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(47), transla.transe("U", "删除程序组件"))
p4 = QtWidgets.QAction(transla.transe("U", "退出程序(&E)"))
p4 = QtWidgets.QAction(QtGui.QIcon.fromTheme("exit"), transla.transe("U", "退出程序(&E)"))
programmenu.addAction(p1)
programmenu.addAction(installWineOnDeepin23)
programmenu.addAction(installWineOnDeepin23Alpha)

View File

@ -24,12 +24,13 @@ mount -t tmpfs tmpfs "$DESTDIR/dev/shm"
if [[ -d /sys/firmware/efi/ ]] ; then
mount -t efivarfs efivarfs "$DESTDIR/sys/firmware/efi/efivars"
fi
cat /etc/resolv.conf > $DESTDIR/etc/resolv.conf
#cat /etc/resolv.conf > $DESTDIR/etc/resolv.conf
SHELL=/bin/bash unshare --fork --pid chroot "$DESTDIR" "$@"
exit
if [[ -d /sys/firmware/efi/ ]] ; then
while umount "$DESTDIR/sys/firmware/efi/efivars" 2>/dev/null ; do : ;done
fi
for dir in dev/pts dev/shm dev sys proc run media ; do
while umount "$DESTDIR/$dir" 2>/dev/null; do : ;done
done
umount -lf "$DESTDIR" 2>/dev/null
#umount -lf "$DESTDIR" 2>/dev/null