惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Vercel News
Vercel News
F
Fortinet All Blogs
月光博客
月光博客
G
Google Developers Blog
博客园 - Franky
GbyAI
GbyAI
The Cloudflare Blog
I
InfoQ
雷峰网
雷峰网
WordPress大学
WordPress大学
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
T
The Blog of Author Tim Ferriss
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
小众软件
小众软件
腾讯CDC
B
Blog
量子位
V
V2EX
S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News

轶哥博客

blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog
blog
2022-06-23 · via 轶哥博客

近期分享了《从SSH远程唤起本地浏览器打开URL》,其实从远程SSH也可以直接打开带GUI的Linux应用程序的。之前分享过《Win10中通过WSL2开发基于Electron的Ubuntu应用程序》,原理上其实是一样的。

都是通过安装X11服务来实现。

此方法和虚拟机以及Wine有本质区别。应用程序可以运行在远程服务器,这样是不占用系统内存和CPU的。

本文介绍的方法是从MacOS中SSH远程到服务器调试和开发Linux平台的GUI应用程序

在MacOS中运行Linux的GUI程序需要借助开源软件XQuartz

安装命令(支持ARM64和x86_64,即M1、M2、Intel芯片都可以正常运行):

brew install --cask xquartz

更推荐直接到https://github.com/XQuartz/XQuartz/releases安装最新的测试版。

安装完成后,务必重启一次计算机,只需要在运行SSH命令的时候增加参数-Y即可(iTerm2,其它终端程序自行测试)。XQuartz会自动启动(如果没有启动,需要先启动XQuartz再开启终端执行SSH命令)。

例如:

ssh -Y root@192.168.1.1

在服务器中执行经典的GUI程序xclock可以看到:

xclock.png

同理,尝试运行X11其它GUI程序也是正常的:

sudo apt install x11-apps
xcalc

xcalc.png

我们可以看到Calculator明显比xclock清晰得多,不是因为XQuartz支持高DPI屏幕缩放(Retina屏),而是因为Calculator使用了点阵字体。

目前XQuartz属于社区驱动项目,还存在一些尚未实现的功能,在最新的MacOS(13.0 Beta 22A5266r)版本中也存在一些小问题,暂时不支持Retina缩放、调用摄像头和麦克风等功能。

很多在维护开源项目的工程师令人敬佩。例如XQuartz的维护者,大部分科学界软件都依赖X11,XQuartz对应用程序开发人员和研究人员至关重要,例如美国宇航局正在使用XQuartz进行火星试飞。XQuartz使得二十多年前甚至四十多年前为Linux开发的应用程序能够在MacOS正常运行,要知道开发这些应用程序的人很多都是世界顶尖的科学家。

XQuartz支持运行Electron开发的应用程序,也支持从MacOS中SSH远程到服务器调试和开发Electron应用程序。但是不支持使用root用户运行。切换为普通用户即可正常运行。