同步操作将从 Moe/TMOE 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
. <(curl -L gitee.com/mo2/linux/raw/2/2)
If you do not understand the following readme, please give me an issue to explain the situation,or open README.en.md
化繁为简,让 GNU/Linux 的乐趣触手可及。
在 GNU/Linux、Android Termux 和Windows10 的 linux 子系统上配置 GNU/Linux chroot 或 proot 容器环境,并 configure remote desktop、pulseaudio 音频服务和 system。
Support multiple systems and virtualized environments
You can run tmoe-linux manager not only on termux, but also on GNU/Linux.
您不仅可以在 WSL 运行本工具,亦可在 Android 手机上运行。
Tutorial:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
After restarting the win10 system, run powershell again as an administrator, then type the following command.
重启系统后再次以管理员身份运行 powershell ,然后输
wsl --set-default-version 2
若无法连接Microsoft Store,那么也可以手动安装。
Debian
Kali
Ubuntu
The first chapter is over. You can find more easter eggs in README.第一章 WSL 篇完结,如需阅览第二章,则请自行寻找彩蛋。
介绍:本(伪)漫画讲述的是少女们机缘巧合之下卷入了 debian 状的旋涡,最终穿梭时空拯救世界的故事。
打开子系统,然后根据提示更新 WSL2 的 linux 内核。更新完成后,重新打开子系统,然后输
sudo apt update
sudo apt install -y curl
bash -c "$(curl -L gitee.com/mo2/linux/raw/2/2)"
If you do not live in China, please enter
bash -c "$(curl -L git.io/linux.sh)"
若已经为 root 用户,则可以去掉 sudo。
最后按方向键和回车键进行操作。
注:WSL 请选择安装工具
后期注:建议 WSL 用户直接安装 gui ,不要在里面先套娃安装 chroot 容器,再装 gui,因为这将导致 windows 程序调用失败。
1.安装安卓版Termux 和Termux:api
2.打开 termux,输入以下命令
. <(curl -L gitee.com/mo2/linux/raw/2/2)
3.若您使用的是 manager,则可以使用触摸屏进行点击;若为 tool,则可使用触摸屏进行滑动,回车键进行确认。
When you are using the manager, you can use the touch screen to click.When you are using the tool, you can use the touch screen to slide and press the Enter to confirm.4.如需使用 gui,可能还需要安装 VNC apk,您可以前往 Google play 或使用 Tmoe-linux 的 debian-i 来下载。
注:web 端的 novnc 无需安装 apk,但触控操作体验不佳。
sudo apt update
sudo apt install -y curl
bash -c "$(curl -L gitee.com/mo2/linux/raw/2/2)"
不兼容 debian 8 jessie 及更低版本
sudo dnf install -y curl || sudo yum install -y curl
bash -c "$(curl -L https://gitee.com/mo2/linux/raw/2/2)"
不兼容 CentOS 7/RHEL 7 及更低版本
[[ $(command -v curl) ]] || sudo pacman -Syu curl
bash -c "$(curl -L https://gitee.com/mo2/linux/raw/2/2)"
202010 不再支持 OpenWRT ,请路由器用户自行解决依赖关系。
opkg update
opkg install libustream-openssl ca-bundle ca-certificates wget bash
bash -c "$(wget --no-check-certificate -O- https://gitee.com/mo2/linux/raw/2/2)"
apk update
apk add wget bash sudo
cd /tmp
wget -O .tmoe-linux.sh https://gitee.com/mo2/linux/raw/2/2
bash .tmoe-linux.sh
[[ $(command -v wget) ]] || sudo xbps-install -Sy wget
bash -c "$(wget -O- https://gitee.com/mo2/linux/raw/2/2)"
202010 不再对 gentoo 进行支持和维护。
[[ $(command -v sudo) ]] || emerge -avk app-admin/sudo
[[ $(command -v curl) ]] || emerge -avk net-misc/curl
bash -c "$(curl -L https://gitee.com/mo2/linux/raw/2/2)"
[[ $(command -v curl) ]] || sudo zypper in -y curl
bash -c "$(curl -L https://gitee.com/mo2/linux/raw/2/2)"
其它 system 未测试!!!
例如:GuixSD等发行版
若您需手动克隆本仓库,则请自行解决依赖关系。
I think you can resolve dependencies manually.
The dependencies of the old version before 2020-10(v1.10beta) are git aria2 pv curl grep procps less tar xz(xz-utils) newt(whiptail) sudo
In addition, the new version has more dependencies, please check the source code yourself to understand the dependencies.
After resolving the dependencies,you can git clone this repo manually
case $(uname -o) in
Android) TMOE_LINUX_DIR="${HOME}/.local/share/tmoe-linux" ;;
*) TMOE_LINUX_DIR="/usr/local/etc/tmoe-linux" ;;
esac
TMOE_GIT_URL="https://gitee.com/mo2/linux"
TMOE_GIT_DIR="${TMOE_LINUX_DIR}/git"
[[ -e ${TMOE_GIT_DIR}/.git ]] || mkdir -pv ${TMOE_LINUX_DIR}
git clone --depth=1 ${TMOE_GIT_URL} ${TMOE_GIT_DIR}
After cloning the repo, you can type bash ${TMOE_GIT_DIR}/manager.sh
to start tmoe-linux manager.
For the docker container, the command is docker, so I will not repeat it here.
The following will introduce the startup commands of proot and chroot containers.
The startup command of the most recently used container isdebian
如果容器只有一个,或者您最近使用过那个容器,那么其启动命令为
debian
不管是 kali rolling i386,还是 ubuntu focal arm64,只要您最近使用过它,那就是debian
在 v1.10 beta 中,加入了新命令tmoe
,支持启动特定的 GNU/Linux 容器版本。
You can type startvnc
to start tiger vncserver.
If your host system is Android,then the vnc viewer will be started at the same time.
在宿主系统下,输startvnc
将启动容器 + tiger vncserver
若宿主系统为 Android,则将同时启动 Real vncviewer
在容器环境下,输startvnc
仅启动 tiger vncserver
You can type startx11vnc
to start x11 vncserver.
在宿主系统下,输startx11vnc
将启动容器 + x11 vncserver
在容器环境下,输startx11vnc
仅启动 x11 vncserver
You can type stopvnc
to stop VNC server
在容器环境下,输stopvnc
来停止启动 VNC server
如需了解更多参数,例如-non-stop-dbus
(不停止 dbus-daemon),请输stopvnc --help
如果您遇到了无法退出容器的情况,则请将 stopvnc
添加至 ~/.zlogout
[[ $(egrep '^[^#]*stopvnc' ~/.zlogout) ]] || printf "%s\n" "stopvnc" >> ~/.zlogout
You can type startxsdl
to start X client & server.
在容器环境下,输startxsdl
仅启动 X client
若您的宿主系统为 win10,则输入startxsdl
将同时启动 VcXsrv X server
For different distros and different architectures, the startup commands of the container are different.
The complete command is similar to tmoe chroot kali rolling arm64 x11
完整的启动命令类似于 tmoe proot debian sid amd64 vnc
Next, I will introduce the meaning of each parameter.
The 1st parameter is the container-type.
You can type "tmoe p" instead of "tmoe proot"
在第一个参数中,chroot可以简化为c;proot可简化为p
For example,"tmoe chroot"="tmoe c"
"$1":
"c:chroot:A chroot is an operation that changes the apparent root directory for the current running process and their children."
"chroot:与宿主机共享相同的内核,硬件,进程空间和网络子系统"
"p:proot - mount --bind and binfmt_misc without privilege/setupmount"
"proot:能在用户空间内运行的程序,I/O性能弱于chroot"
"ns:systemd-nspawn:It supports executing systemctl commands in the container."
"nspawn:systemd容器,支持执行systemctl"
-------------
The 2nd parameter is the distribution name.
在第二个参数中,"arch"可以简化为"a";"debian"可简化为"d";"fedora"可简化为"f";"ubuntu"可简化为"u"
例如:"tmoe p debian"="tmoe p d"
"$2":
"a:arch"
"arch:simplicity,modernity,pragmatism,user centrality and versatility"
"al:alpine"
"ap:alpine"
"alpine:Small. Simple. Secure. Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox"
"arm:armbian"
"armbian:香蕉派,香橙派,nanopi"
"c:centos"
"centos:CentOS is a community-driven free software effort focused on delivering a robust open source ecosystem around a Linux platform"
"d:debian"
"debian:Debian is a distro composed of free and open-source software"
"devuan:Devuan is a fork of Debian that uses sysvinit or OpenRC instead of systemd"
"f:fedora"
"fedora:developed by the community-supported Fedora Project which is sponsored primarily by Red Hat"
"g:gentoo"
"gentoo:追求极限配置和极高自由"
"k:kali"
"kali:Kali is a Debian-derived distro designed for digital forensics and penetration testing"
"m:manjaro"
"manjaro:Free fast and secure Linux based operating system for everyone"
"mi:mint"
"mint:Elegant, easy to use, up to date and comfortable GNU/Linux desktop distribution."
"o:opensuse"
"suse:opensuse"
"opensuse"
"ow:openwrt"
"openwrt:OpenWRT is a Linux OS targeting embedded devices"
"r:raspios"
"raspios:Raspberry Pi OS"
"s:slackware"
"slackware:Slackware is a distro created by Patrick Volkerding in 1993"
"u:ubuntu"
"ub:ubuntu"
"ubuntu:Ubuntu is the modern, open source OS."
"v:void"
"void:Void is a general purpose operating system, based on the monolithic Linux kernel"
-------------
The 3rd parameter is the distro version code.
在第三个参数中,"sid"可以简化为"s";"无版本代号"既可以简化为"n",也可以忽略,直接使用第四个参数。
Note: The following list does not include all codes. If there is no version code, you can skip it.
如果版本代号不为空,且参数列表中没有出现其具体代号名称,那么请手动输入完整代号。
如果存在简化版代号,则可使用简化版代号来替代完整代号。
例如ubuntu 21.04,您可以用"21.04"来代替"hirsute",至于其他版本却不一定可以,故建议第三个参数使用完整的代号。
We recommend that you type the complete code.
For example, for Debian 12, you should use "tmoe c d bookworm" or "tmoe p d bookworm" instead of "tmoe c d 12".
"$3":
"s:debian sid"
"sid"
"n:none(Rolling releases like archlinux do not have a version code)"
"none:諸如arch之類的發行版無代號"
"r:kali rolling"
"21.04:ubuntu hirsute"
"20.10:ubuntu groovy"
"20.04:ubuntu focal"
"buster:debian10"
"bullseye:debian11"
"bookworm:debian12"
"trixie:debian13"
"18.04:ubuntu bionic"
"31:fedora 31"
"32:fedora 32"
"33:fedora 33"
"3.12:alpine 3.12"
"3.13:alpine 3.13"
"edge:alpine edge"
"8-Stream:CentOS 8-Stream"
"tumbleweed:OpenSUSE tumbleweed"
-------------
The 4th parameter is the architecture.
在第四个参数中,"arm64"可以简化为"a";"amd64"可以简化为"x";"i386"可以简化为"i";"armhf"可以简化为"h"。
If you are not using qemu-user for cross-architecture,then you can skip it.
例如:"tmoe p arch arm64"="tmoe p a a"
若您未选择跨架构运行,且当前架构为"arm64",则可去除 "arm64" 参数,直接输入"tmoe p a" 就能启动"proot archlinux arm64"容器
"$4":
"x:x64/amd64"
"amd64:It defines a 64-bit virtual address format, of which the low-order 48 bits are used in current implementations.It defines a 64-bit virtual address format, of which the low-order 48 bits are used in current implementations."
"a:aarch64/arm64"
"arm64:64-bit extension of the ARM architecture"
"h:armhf/arm"
"armhf:32-bit arm hard float"
"armel:32-bit arm soft float"
"i:i386/x86/x32"
"i386:x86 is a family of instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant"
"p:ppc64el"
"ppc64el:a pure little-endian mode that has been introduced with the POWER8 as the prime target"
"s390x:Linux on IBM Z is not generally appropriate on premises for small businesses that would have fewer than about 10 distributed Linux servers"
"m:mipsel:Microprocessor without Interlocked Pipelined Stages little-endian"
"riscv64:RISC-V is an open standard instruction set architecture (ISA) based on established reduced instruction set computer (RISC) principlesRISC-V is an open standard instruction set architecture (ISA) based on established reduced instruction set computer (RISC) principles"
-------------
The 5th parameter can start a specific program of the container, such as vnc.
If it is empty, then zsh will be started.
在第五个参数中,"vnc"可简化为"v"。
启动chroot ubuntu-focal_arm64 tiger vncserver的命令:
"tmoe c u focal arm64 vnc"
可以简化为"tmoe c u focal a v"
虽然"xsdl"在第五个参数中可以简化为"x",但是在第四个参数中只能简化为"xs"。
若第五个参数为空,则将启动zsh作为默认登录shell,并且不会启动远程服务。
"$5":
"v:vnc(startvnc)"
"vnc:tight/tiger vnc server"
"x11:x11 vnc server"
"xs:xserver"
"xsdl:xserver"
"bash:GNU Bourne-Again SHell"
"zsh:z shell(Default)"
"ash:command interpreter (shell)"
-------------
根据上述参数的用法,可推出 debian-sid_amd64 systemd-nspawn 容器的启动命令为
tmoe ns d s x
Take the kali-rolling_arm64 chroot container as an example here
Full command:
tmoe chroot kali rolling arm64
Simplified command:
tmoe c k r a
Start kali-rolling_arm64 + tigervnc server:
tmoe c k r a v
Start kali-rolling_arm64 + x11vnc server:
tmoe c k r a x11
Start kali-rolling_arm64 + X client & server:
tmoe c k r a xs
The default login shell is zsh, if you want to start bash,then type
tmoe c k r a bash
Start ash as a login shell:
tmoe c k r a ash
此处以 debian-sid_i386 proot 为例
启动 debian-sid_i386 proot 容器的完整命令为
tmoe proot debian sid i386
精简命令为
tmoe p d s i
若您使用的是 tmoe-zsh 配置的环境,则可以进一步简化为
t p d s i
同时启动 debian-sid_i386 容器+tigervnc server 的命令为
t p d s i v
同时启动 debian-sid_i386 容器+x11vnc server 的命令为
t p d s i x11
同时启动 debian-sid_i386 容器+x client + XSDL/VcXsrv 的命令为
t p d s i x
容器的默认登录 SHELL 为 zsh,若您需要使用其它 shell,则请使用以下命令
临时使用 bash 作为登录 SHELL:
t p d s i bash
临时使用 ash 作为登录 SHELL:
t p d s i ash
(补全功能)说明
shell 环境要求:zsh
The completion function exists separately as a zsh plugin, so bash and other shells are not supported.
仅支持 zsh,不支持 bash
tmoe-zsh 会自动加载 tmoe 补全插件,其他插件管理器需要手动加载。
zinit 插件管理器手动配置补全插件:
If you are using Android system,then type the following command.
[[ $(egrep '^[^#]*zinit.*completion/_tmoe' ${HOME}/.zshrc) ]] || sed -i '$ a\zinit ice lucid wait=1 as"completion" && zinit snippet ${HOME}/.local/share/tmoe-linux/git/share/completion/_tmoe' ${HOME}/.zshrc
If you are using GNU/Linux system,then type the following command.
[[ $(egrep '^[^#]*zinit.*completion/_tmoe' ${HOME}/.zshrc) ]] || sed -i '$ a\zinit ice lucid wait=1 as"completion" && zinit snippet /usr/local/etc/tmoe-linux/git/share/completion/_tmoe' ${HOME}/.zshrc
至于其他插件管理器,例如oh-my-zsh,因开发者并未进行测试,故请自行加载插件。
TIPS OF TMOE COMPLETION PLUGIN
1.在 TMOE-ZSH 配置的环境下,输 t
,按下空格,再按下 TAB 键 ⇄ 进行补全,输/进行连续补全,在该模式下支持搜索发行版名称。
2.在其他插件管理器配置的环境下,输入 tmoe
,不按回车,按下 TAB 键 ⇄ 进行补全.
Type tmoe
, then don't press enter, press Tab**⇄** to complete.
gif preview
以 alpine 3.12 arm64 proot 以例
① 在 Android 系统上运行 Debian GNU/Linux arm64 应用
② 跨架构支持,在 Qualcomm 高通 arm64 cpu 的手机上借助 qemu-user 来模拟运行 x86(i686)架构的 Debian GNU/Linux,并通过 pulseaudio 来传输音频。
① 在 Android 设备上运行的 Ubuntu 容器,你可以通过 VNC 来连接自己;
通过 adb 远程来调试自己(Android);
还能通过 scrcpy+adb 调试来实现自己投屏给自己,将手机中 VNC 的画面投屏给手机中的 VNC。
② Desktop beautification
Supported containers:
配置和优化步骤仅适用于 Debian、Ubuntu、Kali、Arch、Fedora 和 Alpine。
🍹
All configuration and optimization steps only apply to Debian,Ubuntu,Kali,Fedora and Arch.
qemu 虚拟机管理
安装和配置各种工具
部分软件因其已存在强大的第三方 GUI 配置工具,故仅提供安装,不提供配置脚本。
1.✨ 支持配置多国语言环境,并执行其它优化步骤。
在安装容器前选择相关选项,运行容器后会自动配置相应语言环境,以“日语_日本”为例:
2-1.换源功能,全球镜像站
除 debian 官方的全球镜像站外,更有 ubuntu,arch,alpine,fedora,kali 和 manjaro 国内镜像站。
2-2. 额外源功能:arch 添加 archlinux_cn 源,centos 添加 epel 源,debian 添加 kali 源,debian 添加 ubuntu ppa 源并自动解决公钥问题。
3.sudo 用户组管理
4.UEFI 开机启动项管理
1.支持一键安装图形界面。
Support one-key graphical user interface installation.
2.TUI 式界面,便捷配置
3.对于不同系统,不同虚拟化环境进行适配
3-1.以 tightvnc/tigervnc 服务为例:
对于 deb 系的虚拟机和实体机,启动 de/wm 的脚本中包含了 dbus-launch --exit-with-session,不加的话可能会出现无法连接至设置服务的错误,而 deb 系的 proot 容器加上这个会很容易闪退,所以对 proot 容器和虚拟机分别进行适配。
而 arch 系虚拟机只需要 dbus-launch,不需要加那个参数。
3-2.自动修复 deb 系发行版+xfce4.14 在 tightvnc 下窗口标题栏丢失的问题。
3-3. 对桌面的多启动命令问题进行修正。
举例:对于 KDE plasma 桌面来说,新版的启动命令为 startplasma-x11 和 startplasma-wayland,不再包含 startkde,而本工具同时兼顾了新版和旧版。
3-4.自动解决非 root 用户在初次配置时可能出现的权限问题。
3-5.对于 WSL2 的适配: 自动识别出 B 类内网动态的 NAT ip,并通过 pulseaudio 实现音频传输,通过调用宿主机(win10)进程来实现便捷式 X 转发。
自动配置只是其中一个解决方案,还有一个是手动配置管理。
4.🍸 Supported GUI(DE)
目前支持的图形界面(桌面环境):
(仅部分系统支持)
注 1:Only some systems support desktop environment installation.
仅部分系统支持
注 2:Prioritize XFCE
优先适配 xfce
注 3: 未打勾的选项在容器/远程桌面环境下存在一些问题
Some desktops may not display properly through the remote desktop
4-1.Arch + Deepin desktop 在 VNC 下会黑屏
下图的 Arch 是运行在 debian 里的 chroot 容器。
后期注:经测试 qemu 虚拟机下的 arch+dde+tigervncserver 没有问题,但是我没有再次测试 WSL2 的兼容性。
4-2.如下图所示,Debian sid + KDE Plasma 5 转发 X11 后,窗口显示会出现问题。
注:在 RDP 下此问题未复现
注 2:qemu 虚拟机运行的 Debian+KDE+x11vnc 也没有问题。
4-3.GNOME3 的 VNC 配置脚本也没有问题。
虽然在 Proot 容器上跑可能会出问题,但是换 qemu-system 虚拟机后就没问题了。
1.提供了某些官方软件源中不包含的软件包,例如 vscode
你可以在手机的容器里安装 vscode。
2.对于部分工具提供了配置管理功能,例如 arm64 的 vscode-server。
3.对于特定虚拟化环境下运行报错的应用执行打补丁操作。
4.对 aria2 上百个参数进行配置管理。
5.对输入法进行安装和配置。
Debian 容器支持 arm64(aarch64)、armhf、armel、amd64(x86_64) 、i386(x86)、s390x 和 ppc64el
可以支持,但不想支持的是 mipsel
In addition, the mipsel architecture is also supported! The developer has tested it on the router
2020-03-24 已经支持 mipsel 架构了!(已经在路由器上测试过了 🍥)
可能支持 RISC-V (靠理论知识写出来的,未实际测试。由于现在暂时无法构建 risc-v 的基础容器镜像,故只能靠 qemu 在 risc-v 的设备上模拟其它架构的系统。)
下表中的所有系统均支持 x64 和 arm64
*表示仅旧版支持
Distro | x86 | armhf | ppc64el |
---|---|---|---|
Debian | ✓ | ✓ | ✓ |
Ubuntu | *<=19.10 | ✓ | ✓ |
Kali | ✓ | ✓ | X |
Arch | X | ✓ | X |
Fedora | *<=29 | ✓ | ✓ |
Alpine | ✓ | ✓ | ✓ |
CentOS | *<=7 | *<=7 | ✓ |
You can use the following command to install Tmoe GNU/Linux manager
bash -c "$(curl -L https://gitee.com/mo2/linux/raw/2/2)"
(旧版)视频教程链接 提取码: debb(已废弃)
进入工具后,按方向键和回车键进行操作,基本上所有操作都有提示。
如需了解完整命令,请看新版教程。
debian
If you want to start GNU/Linux next time, you can just type debian
.
启动 tigervnc server
若宿主机为 Android 设备,则将同时启动 VNC viewer
startvnc
启动 x11vnc server
startx11vnc
启动 X client & server 若宿主系统为 win10,则将同时启动 VcXsrv
startxsdl
debian-rm #(已废弃)
请在管理菜单中单独选择容器名称及其 umount & remove
选项
bash ~/容器选择菜单.sh
If your locale is not "zh_.*UTF-8" or "ja_JP.UTF-8", please type
bash ~/TMOE-CONTAINER-MENU.sh
宿主系统将调用 tmoe-linux manager,容器将调用 tool.
debian-i
stopvnc
stopvnc -non-stop-x11vnc
stopvnc -non-stop-dbus
进入 GNU/Linux 容器后,您可以从 xfce、lxde、mate、lxqt 中选择一种。
输startvnc
启动 vnc 服务,
输stopvnc
停止 vnc 服务。
完成后,打开 vnc viewer 客户端,输 localhost:5902
stopvnc
./zsh.sh
进行重新配置。在 GNU/Linux 容器内输debian-i
打开工具箱,然后选择相关选项,需要注意的只有一点,x 为英文小写,不是乘号。
apt install -y nano
nano $(command -v startvnc)
将 1440x720(竖屏)改成你需要的分辨率,例如 1920x1080(横屏) 修改完成后,按
Ctrl+S
保存,Ctrl+X
退出。
termux/proot-distro
mo2/tmoe-zsh
coslyk/debianopt-repo
旧版脚本部分命令借鉴了 atilo-cn 和 AnLinux,除此之外,大部分都是本人手打的。可能会有出错的地方,欢迎指正。
后期注:Anlinux 的脚本有些地方写得并不好,并且我知道它存在的某些缺陷。反正原作者也看不到,所以我在这里调侃也没事。😹
你去了解更本质的东西就知道哪些地方写得不好了!`(>﹏<)′
相比之下,Linux Deploy 的开发者写的东西要比他强很多。
完全重写脚本! 和别人写的脚本已经完全不一样了,重点不在于安装的方式,而在于配置优化以及与安卓原系统的联动,难点在于一些鬼点子。
本来是不想维护的,但是我发现了一个很严重的 bug,所以干脆重写一遍。 本次更新的内容真的有点多,而且真的很强哦 ✨ ο(=•ω <=)ρ⌒☆,我自己都觉得太强了! 脚本文件已经达到了 40 多 KB 了。
1.获取镜像途径依旧是清华镜像站,但把下载工具从 wget 换成了 aria2,从原本的单线程变成现在的 16 线程,加快了下载速度。
后期注:盲目调大线程最终适得其反,后期已改为 5 线程。
2.自动配置中文环境,默认就是中文,无需手动配置。
3.修复旧版脚本中非 xfce 桌面的 xstartup 文件问题。
4.新增自动配置 zsh 的功能,初次启动会出现提示,若在指定时间内无操作会自动开始安装并配置 zsh。
包含主题和语法高亮、语法历史记录插件。
5.简化安装流程,且不再需要某种很神奇的 internet 工具。
6.将 debian 10 buster (stable)换成 sid bullseye(unstable),滚动升级,一直都是新版。
7.修复 chromium 浏览器的启动问题,使用 ./chromium.sh
安装的版本,可以直接点击图标启动,在 root 环境下无需加--no-sandbox
参数。
8.加入对 armhf 和 x86_64(amd64)的支持。
9.支持一键更换为 kali 源,debian 变身 kali 就是这么简单!
10.简化卸载流程,安装脚本也可以执行卸载操作。
11.根据当前 linux shell 环境自动修改 proot 启动脚本。
12.修复启动 vnc 后,debian 无法正常关闭的 bug ,(请在 termux 原系统内输 stopvnc
)
13.简化启动流程,你可以在 termux 原系统里输 startvnc 来启动 debian+vnc 客户端
14.vnc 支持自动获取本机局域网 ip,地址格式类似于 192.168.123.3:5902
之后的更新内容真的是太多了,有空的话会从酷安原帖搬过来的。其中最突出的更新内容是将安装 gui 和其它软件、管理远程桌面配置等内容整合在 GNU/Linux 容器内的 debian-i 里,以及修复了 VNC 音频传输中可能存在的一些问题。 2020-04-29 注:包含更新日志的帖子已被酷安删除,由于超过 2 周时间,故无法恢复。
2020-02-16 至 2020-03-22 的更新日志待补
本次更新专注于用户体验方面的优化。
2.将默认主题更换为 powerlevel 10k,并同时修复 termux 和 xfce4 终端的字体显示问题。
3.加入 Command-not-found 插件。
当您未安装相关软件时,输入的是错误的命令。例如输 sshd 时,会出现apt install openssh-server
的提示,而不是单纯的显示:Command not found
.
后期注:宿主机为 OpenWRT 的路由器,不会加载上述部分插件,且默认主题非 p10k。
2.尝试让 RISC-V 架构的设备能运行 debian 容器,需要宿主机原系统为 deb 系。
当检测到设备为 riscv 架构时,将下载其他架构的容器镜像。
调用 qemu+chroot 来实现跨 CPU 架构运行容器,这是一个理论性操作,未实际测试。
2020-10 注:勿需跨架构,支持直接运行 riscv64 容器。
startxsdl
能同时启动 windows 的 X 服务对 WSL2 的支持已经称得上完善了!
最关键的地方在于脚本大量调用了 win10 原系统的程序。
在 win10 2004 下同时运行 linux 和 windows 程序的预览截图:
WSL2 与宿主机原系统(win10)的交互联动要比普通虚拟机强数倍,在 linux 子系统下可以直接调用 powershell.exe 等 windows 程序。
如上图所示,目前已经可以接近完美地将 win10 和 GNU/Linux 融为一体。
1.优化代码,增加高亮提示。
2.在 beta_features 中支持 docker 和 virtualbox 的安装。
其中,当 deb 系发行版初次安装后者时,将会自动获取清华源的最新 deb 包。第二次才会提示是否将其添加至软件源列表。
3.对已支持的所有系统正式开放测试功能!但由于未做过多测试,故 gentoo 、opensuse 和 alpine 等发行版可能会出现未找到匹配软件的错误信息。
1.支持给所有已支持的桌面配置 xwayland!(仅支持 Android,不支持 win10)
说明:
需要先在 termux 进行配置,并安装 wayland 服务端软件,再进入 GNU/Linux 容器内选择需要配置的桌面环境。
其中后者只是在我之前写的 xorg+xrdp 的配置方案的基础上进行了修改而已。
配置完成后,需要先打开 wayland 服务端,点击start
,然后在容器内输startw
启动。
特点:可以在 proot 环境下打开 kde 的某些应用(例如 plasma-discover),但是 bug 超级多。
由于 bug 实在过多,故我已经不想维护了。
触控操作体验极差!建议使用蓝牙鼠标进行操作!
由于目前在 Android 手机上暂时无法使用 gpu 硬件渲染加速,故实际体验非常糟糕!
不建议配置该服务!
等 wayland 完善之后,再来继续优化吧!
2020-10 注:配置 xwayland 的功能已经被我砍掉了!!!请自行研究配置步骤。
1.全面升级备份与还原功能,支持自定义备份文件名称。自动检测备份文件路径,也可以手动选择路径,然后会自动将备份文件排成一个列表,你只需输选项数字并按回车即可恢复所选文件。
2.优化 cookie 文件选择功能,支持图形化文件浏览。 因为改了太多内容了,也没有继续做兼容性测试,所以不确定路由器等嵌入式设备还能不能继续兼容。
3.修复 Android-Termux 赋予 proot 容器真实 root 权限的功能,原因是 termux 更新了 tsu,将 tsudo 切换至 sudo。
4.deb 系 Linux 现在也可以用 proot 容器啦!
2020-10 注:第三个功能已经被我砍掉了。请不要先输tsu
,再输debian
。
如果你要这样做的话,那么请使用chown
来解决权限问题,再自行解决其他可能存在的问题。
startx11vnc
启动,输stopvnc
停止。-目前暂不支持的功能: 1.虚拟机显卡硬件直通(需要双显卡,我没有测试条件) 2.快照管理(请自行在 qemu monitor 里管理 snapshoots)
ps
命令的问题。1.增加多容器管理
2.移除功能:xwayland,赋予 proot 容器真实 root 权限等等。
移除 vscode server 宿主机与容器的联动功能。
原功能介绍:在宿主机下执行指定命令将同时启动宿主机的浏览器并打开 code server 的 web 页面+容器的 code server。
此外,还有很多功能也被我砍了,此处不一一列举。
有些功能维护起来太累了,我不想管了。
还有的话,不再对 gentoo 和 openwrt 提供支持。
3.10-13:增加 vscode arm64/armhf 官方版,此前 arm 只有第三方编译版。
4.移除发行版: apertis,alt 和 raspbian。
5.新增 deepin v20 容器
6.修复 riscv64 架构容器的配置功能,arm64 可以跨架构运行 risv64。
7.新增 mips64el 架构的容器。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。