python2.7前几天报废害我的gentoo升级又失败了,所以这次重装琢磨想个办法绕开这些坑。之前试过flatpak,效果没我预期的理想,所以还是自己用容器封吧。
以后说不定可以拿来当一种自己发布程序的方法。
网上只找到一个x11的,在新的操作系统上已经不能用了,所以我琢磨了一下:
制作系统的方式是这样的,因人而异哈,我用的ubuntu20.04:
docker run -it ubuntu:20.04 /bin/bash
#创建和当前用户相同的用户
useradd -m -u 1000 -g 1000 -s /bin/bash wangjl
#root设个密码方便以后装软件
passwd root
#装几个软件,xclock测试x11,calibre、keepassxc是qt wayland。
apt update
apt install xclock calibre keepassxc
#参考安装qq、微信、百度网盘之类的。wine需要x11。
#然后退出来打包
docker commit gui ubuntu:20.04.gui
#启动
xhost +SI:localuser:$(id -un)
docker run -it -e XDG_RUNTIME_DIR=/home/wangjl \
-e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/home/wangjl/$WAYLAND_DISPLAY \
--user=`id -u`:`id -g`\
-e QT_QPA_PLATFORM=wayland \
-v /home/wangjl/:/home/wangjl \
-e DISPLAY=:0 \
--name gui -v /tmp/.X11-unix/:/tmp/.X11-unix/ \
-e LANG=zh_CN.UTF-8 \
--network host \
ubuntu:20.04.gui /bin/bash
XDG_RUNTIME_DIR和WAYLAND_DISPLAY是wayland需要的,加起来指向wayland的unix
socket路径,QT_QPA_PLATFORM=wayland是qt需要配的,DISPLAY=:0和/tmp/.X11-unix/指向x11的socket路径。
#然后就可以当本地应用那么玩了
也可以像
docker exec -it gui calibre
docker exec -it gui /opt/deepinwine/apps/Deepin-WeChat/run.sh
这样启动gui程序
刚刚又用18.04封了一个mysql-workbench,20.04的
mysql-workbench还没出
gentoo上面我现在看着这种依赖一大堆python2.7包的程序我就怕。
阅读(1960) | 评论(0) | 转发(0) |