linux在不安装桌面环境的情况下运行gui程序

linux实现不安装桌面环境,运行gui程序

作者:LYGreen
分类:Linux
创建时间: 8/10/2025, 10:51:43 AM
更新时间: 8/10/2025, 10:51:43 AM

在linux做开发的时候,可能会需要开发gui程序,比如opencv,但是桌面环境太大了,会比较占资源,所以这里会尝试不安装桌面环境来启动gui程序

安装所需要的包

这里用的是Arch Linux,所以用的是pacman包管理工具

安装xorg相关包

xorg是运行gui程序所需要的包

sudo pacman -Sy xorg-server xorg-apps xorg-xinit xorg-xclock xorg-xeyes xorg-xcalc
  • xorg-server:X 服务器核心
  • xorg-apps:Xorg 工具集
  • xorg-xinit:启动 X 服务器的工具(startx)
  • xorg-xclock, xorg-xeyes, xorg-xcalc: xorg 示例程序

安装窗口管理器

窗口管理器(Window Manager, WM)是负责管理窗口外观和行为的一个软件层,此处使用i3窗口管理器

sudo pacman -Sy i3

配置启动脚本

  1. 创建文件 ~/.xinitrc ,这个文件是运行startx命令的时候所需要执行的脚本
vim ~/.xinitrc
  1. 在里面写入需要执行的命令:exec i3,保存

启动xorg并运行gui程序

启动xorg

  1. 此处终端为tty1
startx
  1. 启动之后的界面是这样,一片黑,什么也没有,但是已经成功启动xorg了

运行gui程序

  1. 切换到终端tty2,按住 Ctrl + Alt + F2 进行切换,运行命令
export DISPLAY=:0 # 指定显示号,这个显示号也就是 tty1 终端那边的显示
xclock
  1. 切换到终端tty1,Ctrl + Alt + F1 ,此时会看到一个gui程序显示了出来 ::: info 在opencv开发过程中能正常显示gui,默认不是全屏,窗口可以进行拖动 :::

X11转发

  1. 编辑文件 /etc/ssh/sshd_config ,开启x11转发,重启服务
sudo vim /etc/ssh/sshd_config # 把 '#X11Forwarding yes' 的 '#' 去掉,保存
systemctl restart sshd # 重启 sshd 服务
  1. 本机下载ssh客户端和xserver,这里使用的是PuTTYVcXsrv
  2. 打开vcxsrv,会在后台运行一个x服务器(设置全部默认即可)
  3. 运行putty,打开x11转发
  4. 输入ip连接到arch linux
  5. 接下来运行xclock,可以看到有小窗口弹了出来
xclock

参考