openEuler 虚拟机从零到一:完整部署指南

openEuler 虚拟机从零到一:完整部署指南

本指南记录在 VMware Workstation 中安装 openEuler,并配置 DDE 桌面环境、VMware Tools、Java 24、Nginx 以及 Tesseract OCR 的完整过程,适用于开发测试环境搭建。

目录

  • 环境准备与系统安装
    • [1.1 准备工作](#1.1 准备工作)
    • [1.2 创建虚拟机步骤](#1.2 创建虚拟机步骤)
    • [1.3 系统安装流程](#1.3 系统安装流程)
  • [安装 DDE 桌面环境](#安装 DDE 桌面环境)
  • [配置 VMware Tools](#配置 VMware Tools)
  • [安装 Java 24 (JDK)](#安装 Java 24 (JDK))
  • [安装 Nginx (Web 服务器)](#安装 Nginx (Web 服务器))
  • [安装 Tesseract OCR 引擎](#安装 Tesseract OCR 引擎)
  • 常见问题排查

环境准备与系统安装

1.1 准备工作

  • 虚拟化软件:VMware Workstation Pro / Player
  • 系统镜像:openEuler ISO 镜像
    • 下载地址:openEuler 官方下载
    • 建议下载 LTS(长期支持版)版本,如 24.03 LTS

1.2 创建虚拟机步骤

  • 新建虚拟机:打开 VMware,点击"创建新的虚拟机"
  • 选择配置:选择"自定义(高级)",下一步
  • 硬件兼容性:保持默认,下一步
  • 安装来源:选择"安装程序光盘映像文件(ISO)",并选中 openEuler ISO
  • 客户机操作系统:
    • 操作系统:Linux
    • 版本:CentOS 8 64 位(openEuler 基于此内核,兼容性较好)
  • 命名与位置:设置虚拟机名称及存储路径
  • 固件类型:默认(BIOS 或 UEFI 均可)
  • 处理器配置:
    • 数量:2
    • 核心数:默认
  • 内存配置:
    • 最小推荐:4 GB(如运行 DDE 桌面,建议 4GB 以上)
  • 网络类型:默认(NAT 模式即可联网)
  • I/O 控制器:默认
  • 磁盘类型:默认(SCSI/NVMe)
  • 磁盘文件:选择"创建新虚拟磁盘"
  • 磁盘容量:建议 40 GB 或以上,选择"将虚拟磁盘存储为单个文件"
  • 完成配置:点击完成,启动虚拟机

1.3 系统安装流程

  • 语言选择:中文(简体)或 English
  • 软件选择:默认最小化安装(后续手动安装 DDE)
  • 安装目的地:选择自动分区或自定义分区,点击完成
  • 网络与主机名:
    • 开启网络连接
    • 设置主机名(可选)
  • Root 密码:设置 root 用户密码(务必牢记)
  • 开始安装:点击"开始安装",等待进度完成
  • 重启:安装完成后重启系统

📚 参考文档: https://blog.csdn.net/2302_82189125/article/details/137759482?spm=1001.2014.3001.5506


安装 DDE 桌面环境

openEuler 默认可能为命令行界面,安装 Deepin Desktop Environment(DDE)可获得图形化体验。

执行以下命令:

bash 复制代码
sudo dnf update -y
sudo dnf install dde -y

# 设置默认启动为图形界面
sudo systemctl set-default graphical.target

# 重启生效
sudo reboot

重启后,系统将自动进入 DDE 登录界面。

📚 参考文档: https://docs.openeuler.org/zh/docs/24.03_LTS_SP1/tools/desktop/dde/dde_installation.html


配置 VMware Tools

安装 open-vm-tools 以实现剪贴板、拖放文件及共享文件夹功能。

3.1 安装组件

bash 复制代码
sudo dnf install -y open-vm-tools open-vm-tools-desktop

注意:必须安装 open-vm-tools-desktop 才能支持剪贴板和拖放。

3.2 启动服务

bash 复制代码
sudo systemctl start vmtoolsd
sudo systemctl enable vmtoolsd

3.3 重启虚拟机

bash 复制代码
sudo reboot

说明:重启后桌面集成功能才会生效。

3.4 验证状态

bash 复制代码
systemctl status vmtoolsd

看到 active (running) 即表示成功。

功能测试:

  • 尝试从宿主机复制文字在虚拟机中粘贴
  • 尝试拖拽文件进入虚拟机

安装 Java 24 (JDK)

由于 openEuler 仓库可能尚未收录最新 Java 24,采用手动安装 Adoptium(Temurin)二进制包。

4.1 下载 JDK

bash 复制代码
cd /tmp
wget `https://github.com/adoptium/temurin24-binaries/releases/download/jdk-24%2B36/OpenJDK24U-jdk_x64_linux_hotspot_24_36.tar.gz`

4.2 解压安装

bash 复制代码
# 创建安装目录
sudo mkdir -p /usr/lib/jvm

# 解压
sudo tar -zxvf OpenJDK24U-jdk_x64_linux_hotspot_24_36.tar.gz -C /usr/lib/jvm/

# 查看生成的目录名(版本号可能略有不同)
ls /usr/lib/jvm/
# 假设解压后的目录名为 jdk-24+36

4.3 配置环境变量

编辑 /etc/profile

bash 复制代码
sudo vi /etc/profile

在文件末尾添加:

bash 复制代码
export JAVA_HOME=/usr/lib/jvm/jdk-24+36
export PATH=$JAVA_HOME/bin:$PATH

提示:请将 jdk-24+36 替换为你实际 ls 看到的目录名。

使配置生效:

bash 复制代码
source /etc/profile

4.4 验证安装

bash 复制代码
java -version
javac -version
echo $JAVA_HOME

输出应显示 openjdk version "24"


安装 Nginx (Web 服务器)

1. 安装 Nginx

bash 复制代码
sudo dnf install -y nginx

2. 启动服务与配置自启

bash 复制代码
sudo systemctl start nginx
sudo systemctl enable nginx

3. 关键配置:处理 SELinux 权限 (openEuler/CentOS 必做)

在 openEuler 或 CentOS 系统中,SELinux 默认会拦截 Nginx 绑定非标准端口(如 8088, 8181)或访问非标准目录,导致启动失败(报错 Permission denied)。

临时关闭 SELinux(开发/测试环境推荐):

bash 复制代码
# 将 SELinux 模式设置为 Permissive (宽容模式)
sudo setenforce 0

# 验证状态,输出应为 Permissive
getenforce

注意:此命令重启后失效。若需永久关闭,请编辑 /etc/selinux/config,将 SELINUX=enforcing 改为 SELINUX=disabled 并重启系统。

4. 部署项目文件与配置

假设你的项目文件(html 文件夹)和配置文件(nginx.conf)已上传至桌面 (/root/Desktop)。

4.1 替换默认网页文件

备份原有目录,并将新项目文件移动至 Nginx 默认根目录:

bash 复制代码
# 1. 备份原有 html 目录
sudo mv /usr/share/nginx/html /usr/share/nginx/html.bak

# 2. 移动新 html 文件夹到 Nginx 目录
# 注意:确保桌面上的文件夹名字确实是 'html',否则请修改路径
sudo mv /root/Desktop/html /usr/share/nginx/

# 3. 赋予读取权限
sudo chmod -R 755 /usr/share/nginx/html
4.2 应用自定义配置文件

备份原配置,并替换为你准备好的 nginx.conf:

bash 复制代码
# 1. 备份原配置文件
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

# 2. 复制新配置文件
sudo cp /root/Desktop/nginx.conf /etc/nginx/nginx.conf

# 3. 【关键】测试配置语法是否正确
sudo nginx -t

若输出 syntax is ok 和 test is successful,则继续下一步;若报错,请检查配置文件中路径是否写错。

5. 重启服务并验证

使所有配置生效:

bash 复制代码
# 重启 Nginx
sudo systemctl restart nginx

# 查看运行状态(按 q 退出)
sudo systemctl status nginx

看到 Active: active (running) 且为绿色,即表示启动成功。

6. 配置防火墙

如防火墙(firewalld)处于运行状态,需放行 HTTP(80)和 HTTPS(443)端口。

bash 复制代码
sudo firewall-cmd --state

若输出为 running,执行:

bash 复制代码
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

提示:若第一步显示 not running,则无需进行防火墙放行。

7. 访问测试

由于配置中监听了本地回环地址 (127.0.0.1),请在虚拟机内部浏览器访问:

提示:若需在宿主机(Windows/Mac)访问,需修改 nginx.conf 将 listen 127.0.0.1:xxx 改为 listen xxx;,并开放对应防火墙端口。

常用管理命令速查

功能 命令
启动 sudo systemctl start nginx
停止 sudo systemctl stop nginx
重启 sudo systemctl restart nginx
重载配置 sudo systemctl reload nginx
检查配置语法 sudo nginx -t
查看运行状态 systemctl status nginx
配置文件路径 /etc/nginx/nginx.conf
默认网站目录 /usr/share/nginx/html

安装 Tesseract OCR 引擎

安装支持多语言(中、英、法、葡)的 OCR 识别引擎。

5.1 安装主程序与语言包

bash 复制代码
sudo dnf install -y tesseract \
    tesseract-langpack-chi_sim \
    tesseract-langpack-chi_tra \
    tesseract-langpack-eng \
    tesseract-langpack-fra \
    tesseract-langpack-por

5.2 修复语言包路径(关键)

openEuler 的包管理器将语言包安装在深层目录,需复制到默认识别路径才能生效。

bash 复制代码
sudo cp /usr/share/tesseract/tessdata/*.traineddata /usr/share/tessdata/

5.3 验证安装

bash 复制代码
tesseract --list-langs

成功标志:输出包含以下语言代码:

  • chi_sim(简体中文)
  • chi_tra(繁体中文)
  • eng(英文)
  • fra(法文)
  • por(葡萄牙文)

5.4 使用示例

识别图片中的中英文:

bash 复制代码
tesseract image.png result -l chi_sim+eng

查看结果:

bash 复制代码
cat result.txt

常见问题排查

问题现象 可能原因 解决方案
无法复制粘贴 未安装 desktop 包或未重启 确认安装 open-vm-tools-desktop 并执行 reboot
Java 命令找不到 环境变量未生效 执行 source /etc/profile 或重新登录终端
Tesseract 报错 0 语言 语言包路径错误 执行 cp 命令修复路径,或设置 TESSDATA_PREFIX 环境变量
DDE 启动黑屏 显卡驱动或内存不足 增加虚拟机内存至 4GB+,或在 VMware 设置中勾选"加速 3D 图形"

🎉 恭喜!你的 openEuler 虚拟机已完全配置好,具备图形界面、Java 开发环境及多语言 OCR 能力,可以开始你的开发工作了!

相关推荐
大志若愚YYZ1 小时前
野火嵌入式Linux——内核编程模块 (进程)
linux
红豆子不相思2 小时前
Keepalived
运维·服务器·网络
古月-一个C++方向的小白2 小时前
Linux——进程控制
linux·运维·服务器
文静小土豆2 小时前
CentOS 7 OpenSSH 10.2p1 升级全攻略(含离线安装与回退方案)
linux·运维·centos·ssh
牢七3 小时前
反序列化重点模块 private Object readOrdinaryObject(boolean unshared)废案与反思
java·服务器·前端
五阿哥永琪3 小时前
进程的调度算法
linux·运维·服务器
小杜的生信筆記3 小时前
生信技能技巧小知识,Linux多线程压缩/解压工具
linux·数据库·redis
nzxzn3 小时前
LVS(Linux virual server)知识点
linux·运维·lvs
菜鸟别浪3 小时前
内存管理-第1章-Linux 内核内存管理概述
linux·运维·云计算·虚拟化·内存管理