轶哥

📚 Having fun with AI Agent. Always learning.

    在MacOS中运行Linux图形程序
    •   更新:2022-06-23 13:12:23
    •   首发:2022-06-23 13:12:23
    •   教程
    •   4418

    近期分享了《从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用户运行。切换为普通用户即可正常运行。

    打赏
    交流区

    暂无内容

    尚未登陆
    发布
      上一篇 (解决VSCode中Github登录状态无法保存的异常)
    下一篇 (从SSH远程唤起本地浏览器打开URL)  

    评论回复提醒