我四处搜寻,目前建议使用两种方法;安装适用于Linux的Windows子系统的增强功能并安装XServer。
我想知道哪种方法最省事(易于安装和使用),哪种方法不占用大量内存。
我只想要Synaptic和CMake。为什么那不是内置功能?
我四处搜寻,目前建议使用两种方法;安装适用于Linux的Windows子系统的增强功能并安装XServer。
我想知道哪种方法最省事(易于安装和使用),哪种方法不占用大量内存。
我只想要Synaptic和CMake。为什么那不是内置功能?
Answers:
简短的答案是您不能,因为WSL尚不支持此功能。WSL不是带有Linux内核的完整Linux安装,它允许您在Windows(Microsoft)内核上运行某些本机linux命令/二进制文件,并且有局限性。
参见https://github.com/Microsoft/WSL/issues/2356
但是,您可以在WSL中安装第3方X服务器(例如xming)和ssh。
我没有在此处复制该教程,因为它相当普遍(X over ssh),我希望某些应用程序即使使用该技术也无法正常工作。
DISPLAY
好,您就可以开始使用了(无论如何对于xming和VcXsrv)。
我选择VcXsrv
在WSL(Linux的Windows 10子系统)中使用。我建议所有人在Windows 10 Ubuntu 16.04中选择一个或多个图形用户界面(GUI)支持之前,先在xming
(接受的答案)和VcXsrv之间进行研究。
安装简单明了。从2019年3月17日开始,您只需接受默认值即可。如果gedit
要从Bash Shell /终端内调用,则需要编辑~/.bashrc
并插入以下行:
export DISPLAY=localhost:0.0
我能够跑步:
sudo apt install ubuntu-desktop
sudo apt install yad
sudo apt install gedit
...安装GUI桌面软件。这就让我跑gedit
和nautilus
。然后,我还可以使用apt
或apt-get
命令通过CLI(命令行界面)安装特定的GUI应用程序。
当我想尝试WSL VcXsrv中的许多Ubuntu bash脚本时,必须安装它们,zenity
并显示yad
x-windows对话框供用户输入。
正如其他人指出的那样,WSL中的GUI并不完美,您可能会花一些时间来解决一些问题。另外,某些GUI软件根本无法在WSL中运行。
我修改/etc/environment
为调整GUI下拉菜单:
PATH="/mnt/e/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export LIBGL_ALWAYS_INDIRECT=Yes
export DISPLAY=localhost:0.0
/mnt/e/bin
这是一条不寻常的路径,因为它是我存储Windows 10双启动WSL和Ubuntu 16.04双启动中使用的脚本的位置。大多数用户不会在其计算机上包括此功能。gedit
Ubuntu桌面经验中熟悉的功能。另外,我的许多bash脚本都使用zenity
或yad
用于x-windows对话框。除非VcXsrv
已安装,否则这些bash脚本将不会运行 。
export DISPLAY=:0
。现在,我可以运行xhost
,xeyes
并且可以gnuplot
在Ubuntu中运行(前提是这些程序已经安装在Ubuntu WSL中)。
export LIBGL_ALWAYS_INDIRECT=1
,你会得到一些硬件加速GL应用了X使用VcXsrv
我在Windows的Ubuntu(Ubuntu 16.04 Xenial x86_64 Linux 4.4.0-17074-Microsoft)的Win 10 Bash上的VcXsrv方面有非常积极的经验。我没有专注于运行Unity桌面,因为它无用且消耗资源。我只是简单地使用XServer在Windows10桌面上以GUI模式从bash运行应用程序。
从此处在Sourceforge上安装VcXsrv
直接运行VcXsrv应用程序,不要启动XLaunch。将localhost:0.0 - 0 clients
鼠标悬停在Win10任务栏上的图标上时,您应该看到
打开Ubuntu Bash:
cd /mnt
(结果为localhost @ localhost:/ mnt $)
cd ..
(localhost @ localhost:/ $表示此命令将您带到WSL可以看到的硬盘驱动器的开头...)
sudo apt-get install dbus synaptic nautilus --install-suggests --show-progress
(这将安装“ dbus”以创建用于GUI的虚拟连接器,“ Synaptic Package Manager”和“ Nautilus”文件浏览器以用于统一桌面
cd /usr/share/dbus-1 && sudo vi session.conf
(session.conf
在vi编辑器中打开时)
按i进入插入模式并添加
<!-- <listen>unix:tmpdir=/tmp</listen> || Original Command --> to preserve original rules
比添加:
<listen>tcp:host=localhost,bind=0.0.0.0,port=0</listen>
<auth>EXTERNAL</auth>
<auth>DBUS_COOKIE_SHA1</auth>
<auth>allow_anonymous</auth>
完成文件编辑并:wq
保存文件后,按ESC 。
运行以下命令并检查其输出:
$ export DISPLAY=localhost:0
$ sudo service dbus start
* Starting system message bus dbus [OK]
$ echo $DISPLAY
localhost:0
大功告成!现在只需从Bash运行突触,nautilus或firefox,它们便应加载到Win10桌面上。像这样的GUI选项有问题,但可以操作。您可以安装ubuntu-desktop
,unity
,ccsm
,compiz
并尝试运行统一桌面的Ubuntu。我没有尝试设置“ Steam”,因为我仍然很痛苦地运行“ Unreal”,祝您好运:)
如果有人知道如何gnome-terminal
在XServer而不是XTerm上运行,请分享...
PS
您可以将VcXsrv添加为Win10可启动文件
要使用原始文章中指定的“ Steam”来最大化源,请对Windows进行一些调整,以进行网络软件包管理(以降低延迟)和CPU / GPU优先级,以制作Win10XBox…:)
尽管您将在“ Unix”下运行“ Steam”,但外壳仍然是“ Windows”,它使您可以在“ Unix”上启动“ Steam”……
Tcp准备:;
在regedit中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces
在这里,您需要浏览子项列表,以找到用于连接到Internet的网络适配器条目。如果使用DHCP,则需要查找DhcpIPAdddress
条目(系统数据值为NOT :0.0.0.0
)以找到正确的适配器。
找到正确的密钥后,右键单击它,然后选择“ 新建”>“ Dword(32位)值”。
将其命名为TcpFrequency,然后单击ok。
之后双击该值并将其十进制值设置为1。(要恢复默认设置,请将值更改为2或删除键)现在导航到以下键: HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ
再次右键单击该键,然后选择“ 新建”>“ Dword(32位)值”。
命名新参数TcpDelay
之后双击它,并将其十进制值更改为1。(要在以后的某个时间点还原密钥,请将其更改为0或删除密钥)
Nagle的算法将几个小数据包组合成一个较大的数据包,以实现更高效的传输。这旨在提高数据传输的吞吐效率。禁用“小游戏”可以帮助减少某些游戏的延迟/ ping。默认情况下,Windows中启用了Nagle的算法。要实现此调整,请修改以下注册表项。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-id}
对于{NIC-id}
,寻找列出您IP地址的那个;在此{NIC-id}
键下创建以下DWORD值:
注意:
一些报道说,这些调整确实减少了玩《 Dota 2》和《英雄联盟》时的等待时间,但对某些人却无效。我尝试过,在玩Dota 2时,我的等待时间从110ms改善到了90ms(SEA Server)。
Windows实现了一种网络限制机制,这种限制背后的思想是处理网络数据包可能是一项资源密集型任务。关闭此类限制以实现最大吞吐量是有益的。
要实施此调整,请运行regedit并修改注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile.
在SystemProfile下,创建一个DWORD值并将其命名为NetworkThrottlingIndex,然后将其十六进制值设置为ffffffff以实现游戏和最大吞吐量:ffffffff完全禁用限制。
多媒体流和某些使用“多媒体类计划程序”服务(MMCSS)的游戏最多只能使用80%的CPU。“多媒体类调度程序”服务(MMCSS)可确保优先访问CPU资源,而不会拒绝优先级较低的后台应用程序使用CPU资源。
要实施此调整,请运行regedit并修改注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile.
在此处创建一个新的DWORD,并将其命名为SystemResponsiveness,将其十进制值设置为00000000,以进行纯游戏/流媒体播放。
在与上述调整相同的注册表配置单元中,您还可以更改游戏的优先级。要实施此调整,请转到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games
并更改以下注册表值:
Windows = Xbox的作者对“未知”的所有欢呼声(请原谅我一段时间,因为我复制了您的指导)……
PPS:如果XServer失败,请尝试找到Docker的解决方法。
<auth>allow_anonymous</auth>
到<auth>ANONYMOUS</auth>
,然后service dbus restart
和gnome-terminal
应该工作
即使Microsoft不“完全”支持完整的GUI桌面环境,它也可以工作。
打开或关闭Windows功能
为Linux启用Windows子系统
重新启动计算机
启动Microsoft Store
搜索Ubuntu
选择应用程序下的Ubuntu 18.04
单击获取
启动Ubuntu并等待安装
设置用户名和密码
运行以下命令:
sudo apt-get update -y
sudo apt-get install ubuntu-desktop -y
sudo apt-get install xfce4 xorg xrdp -y
sudo sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini
创建和修改.xsession
cd /home/user/
sudo vim .xsession
添加文字:
gnome-session --session=ubuntu-2d
保存并退出vi
sudo chmod 755 .xsession
sudo systemctl enable xrdp
您将在Ubuntu上需要第二个帐户
sudo adduser remote
sudo usermod -aG sudo remote
修改startwm.sh
cd /etc/xrdp
sudo chmod 777 startwm.sh
vim startwm.sh
注释掉下面两行
#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession
添加文字:
startxfce4
保存并退出vi
exit
在Windows中,重新启动Ubuntu并运行:
sudo /etc/init.d/xrdp start
在Windows中运行mstsc.exe
计算机:127.0.0.1:3390
保留用户名空白
连接
会话:Xorg
用户名:远程
密码:密码
享受xfce!
完成后,关闭远程桌面连接
返回Ubuntu命令行
sudo /etc/init.d/xrdp stop
exit
既然您想轻松...在Microsoft Store中有一个名为x410的应用程序。它基本上是一台Cygwin X11服务器,没有使用Cygwin本身。安装后(即零配置),您可以运行WSL X11 Apps!(甚至整个台式机)。您可能想在.bashrc中插入以下几行(通过WSL用户帐户),以便可以从bash终端运行应用程序。
### Setup a D-Bus instance that will be shared by all X-Window apps
pidof dbus-launch 1> /dev/null || dbus-launch --exit-with-x11 1> /dev/null 2>
/dev/null
## Export
export DISPLAY=127.0.0.1:0.0
我花了大约5欧元购买了x410上的x410。因此,如果价格过高,也许要等一下出售!
我选择Panther的答案不仅是因为它是唯一的,而且还因为它是正确的答案。没有让GUI应用程序运行的简便方法。
另外,我使用了本教程,但做了一些更改:
xfce
,因为我不知道为什么我需要台式机。Multiple Windows
在XLaunch
(无DE,因此不需要一个巨大的窗口)我安装了哪些gui应用程序?只有Synaptic和CMake,因为我真的想不起wsl上需要的其他任何东西。
由于Panther指出的相同原因,我不执行VM / Dual Boot。我需要一个方便的(对我而言)开发环境,而不是一个完整的Flex OS。
根据我的研究,wsl最初不是为GUI用户设计的。但是,我们可以从第三方安装X服务器来显示GUI。我已经测试了具有适当设置的VcXsrv可以用于显示Debian Linux桌面。
我认为我的方法可以在Windows子系统Linux Debian上顺利显示mate-desktop(GUI)。我已经制作了一个视频,介绍如何从头开始在wsl Debian上安装和显示mate-desktop(GUI)。链接:https://youtu.be/QjogEWudpaM
在Ubuntu上,mate-desktop的安装略有不同。
第1步:安装WSL
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
步骤2:安装图形用户界面,例如mate桌面。
对于Debian用户:
sudo apt-get update
Enter键。sudo apt install task-mate-desktop
,然后按Enter。或对于Ubuntu用户:
sudo apt install tasksel
,按回车sudo apt update
,按回车sudo tasksel install ubuntu-mate-desktop
,按回车步骤3:在Windows 10中安装X服务器。我使用了一个名为VcXsrv的开源服务器。可以从https://sourceforge.net/projects/vcxsrv/下载。
安装完成后:
在Windows 10中打开XLauch
执行以下设置:
"One large window"
Display number: 0
next
Start no client
next
finish
步骤4:在Linux控制台中进行设置:
类型 export DISPLAY=:0
类型export LIBGL_ALWAYS_INDIRECT=1
(也许不需要此推荐)
步骤5:显示队友桌面GUI:
类型mate-session
为Debian的用户
键入mate-session
或lightdm-session
针对Ubuntu用户
如果您对我的描述感到困惑,可以查看我的youtube视频将GUI(伴侣桌面)安装到Microsoft Windows Subsystem Linux。
sudo service ssh start
ssh -Y 10.0.2.2
通常,VirtualBox来宾的主机可以通过10.0.2.2与之联系。
现在,即使使用无缝Windows,您也可以在Fedora桌面上使用任何WSL X程序。