在openEuler上写代码,是种什么体验?聊聊我的“野路子”编程指南【华为根技术】

举报
Echo_Wish 发表于 2025/07/02 21:39:24 2025/07/02
【摘要】 在openEuler上写代码,是种什么体验?聊聊我的“野路子”编程指南

在openEuler上写代码,是种什么体验?聊聊我的“野路子”编程指南

在这个“卷技术栈”的年代,操作系统作为底座,越来越不被重视,但真正做底层开发或者系统应用的朋友都知道:系统不稳,写啥都白搭;系统灵活,才能玩得花。

而 openEuler,就是那块逐渐被越来越多开发者认可的“国产操作系统主力军”。从最早的服务器版本,到现在社区开放、兼容多芯片架构、覆盖边缘+云+端的能力,openEuler 一步步走来,不仅是国产替代,更是新生态的起点。

这篇文章,我就想用“唠嗑”的方式,带大家看一看——在 openEuler 上搞开发,到底该怎么玩?怎么避坑?怎么跑得更顺?


一、从 Hello World 到 Hello openEuler

说到在 openEuler 上开发,第一步当然是:搭环境。

目前 openEuler 支持的语言挺全的,GCC、Go、Python、Rust、Java 都有官方包源支持。如果你是搞系统工具、命令行应用,那推荐直接用 C 或 Rust,如果是服务端应用,Go 和 Python 是“真香”组合。

比如我们先来个简单的 C 语言程序,看看 openEuler 上编译运行流程:

// hello.c
#include <stdio.h>

int main() {
    printf("Hello, openEuler!\n");
    return 0;
}

编译运行:

gcc hello.c -o hello
./hello

没啥花头,但关键在于——openEuler 的软件源和 GCC toolchain 更新非常积极,几乎和主流发行版同步,有些场景甚至比 Ubuntu 还清爽。

如果你是搞嵌入式或者边缘计算的,还可以用 musl 做极简构建,跑在 ARM 架构上。


二、开发体验到底咋样?——看包管理和依赖处理

要我说,openEuler 给我的一个巨大惊喜,就是 dnf/yum 包管理系统的“香”

举个例子,你想装个 Python3 + pip 环境:

dnf install python3 python3-pip

然后搞 Flask:

pip3 install flask

一气呵成,不需要你去折腾镜像、编译路径、软链接这些乱七八糟的事。

而且 openEuler 软件仓库里很多库都带了“secure enhanced build”参数,用起来安心不少。

我个人还推荐用 openEuler 自带的 A-TuneCompass 工具,前者做智能性能调优,后者支持操作系统镜像构建和裁剪,非常适合搞边缘节点、定制化设备的朋友。


三、写系统服务?Systemd 这套你得会

openEuler 用的是 systemd,写系统服务、守护进程那是标配。我们看个例子,写个简单的 systemd 服务来托管你的自定义脚本:

写一个 hello . sh 脚本:

#!/bin/bash
echo "Service Started at $(date)" >> /var/log/hello.log

赋权:

chmod +x /usr/local/bin/hello.sh

写 systemd 服务文件 /etc/systemd/system/hello.service

[Unit]
Description=My First openEuler Service

[Service]
ExecStart=/usr/local/bin/hello.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

然后启用服务:

systemctl daemon-reexec
systemctl enable hello.service
systemctl start hello.service

你去 /var/log/hello.log 看,是不是日志打上了?
这种小服务在 openEuler 上跑得飞快,几乎无感延迟,系统调度干净利落,体验比某些 bloated 系统好太多。


四、开发指南不是“文档堆”,而是“能跑的流程”

我一直觉得,开发者文档要像菜谱——不是一堆 API reference,而是“你按这套做,就能炒出这盘菜”。

而在 openEuler 的社区文档中,我最喜欢的是:

比如你想自己构建一个“裁剪后仅用于数据收集”的系统,可以用 Compass 配个 yaml 脚本,15分钟搞出 ISO 镜像,跑在你的设备上,一行命令都不用多敲。


五、自动化开发 + CI/CD?openEuler也能稳稳搞

很多朋友可能有个误解:国产OS是不是就不能跑现代化 CI 流程?错!

openEuler 兼容 GitHub Actions、GitLab CI、Jenkins 流程,你完全可以用 Docker 容器做构建环境,或者用其自带的 OBS 做包打包和测试流程。

比如我有个 Rust 项目跑在 openEuler 上,GitHub Actions 的 .yml 文件直接这样写:

runs-on: ubuntu-latest

steps:
  - name: Checkout
    uses: actions/checkout@v2

  - name: Set up Rust
    uses: actions-rs/toolchain@v1
    with:
      toolchain: stable

  - name: Build
    run: cargo build --release

  - name: Package
    run: tar czf myapp.tar.gz target/release/myapp

只要打包格式对了,openEuler 上一样用 rpm-builddnf localinstall 完美部署。


六、我的一点体会:openEuler不是“国产替代”,是“国产创新”

以前我们搞Linux开发,总觉得 Ubuntu / Debian 是主流,国产系统嘛,多半就是“兼容 + 没社区”。

但 openEuler 给我的感觉真的不一样:

  • 它不仅兼容传统Linux生态,还努力构建自己的工具链(像 A-Tune、Compass、StratoVirt 等);
  • 它不仅关注内核、架构,更做了大量开源社区治理,比如 SIG、LTS内核维护;
  • 更重要的是,它给了我们一个“参与生态而非被动使用”的机会。

我们不只是它的“使用者”,我们可以是它的“共建者”。


最后一句话:

不要等 openEuler 成为主流你才来拥抱它。

技术这玩意,永远是“早用早赚经验”。你可以从一个简单脚本开始,也可以从一个 C 服务组件切入,慢慢你就会发现——这个系统,其实真的“开发得挺香”。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。