openEuler24.03安装UKUI + Node.js v26.2.0 + OpenClaw

Complete Guide to Installing UKUI + Node.js v26.2.0 + OpenClaw on openEuler 24.03

1. Environment Overview

Item Description
Operating System openEuler 24.03 LTS (Linux kernel 6.6)
Desktop Environment UKUI (developed by Kylin Software Team, based on GTK and QT)
Node.js Version v26.2.0
AI Assistant Framework OpenClaw (personal AI assistant gateway)

openEuler 24.03 LTS is based on Linux kernel 6.6 and supports both x86_64 and aarch64 architectures. UKUI is a Linux desktop environment developed by the Kylin Software Team, well-integrated with openEuler, featuring a Windows-like interface suitable for Chinese users.

2. Installing UKUI Desktop Environment

2.1 Prerequisites

  • openEuler 24.03 system already installed (minimal or Server edition acceptable)
  • Stable network connection
  • Root or sudo privileges
  • Recommended: Create a regular admin user before installing UKUI (root user cannot log in to desktop by default)

2.2 Update System Packages

First, update all installed packages to the latest versions:

sudo dnf update -y

The -y flag automatically confirms all prompts, avoiding manual confirmation.

2.3 Install UKUI

Run the following command to install the UKUI desktop environment:

sudo dnf -y install ukui

This command automatically resolves and installs all dependencies. Installation takes about 10 minutes and supports both x86_64 and aarch64 architectures.

Note: You can also use sudo dnf -y install ukui-desktop-environment for a standard installation; the results are essentially identical.

2.4 Set Graphical Interface as Default Boot Target

After installation, set the system to boot into graphical mode by default:

sudo systemctl set-default graphical.target

Then reboot the system:

sudo reboot

After reboot, the system will automatically enter the UKUI graphical login screen.

2.5 Manually Switch Between GUI and CLI

To manually switch between graphical and command-line interfaces:

# Switch to graphical mode (runlevel 5)
sudo init 5

# Switch to command-line mode (runlevel 3)
sudo init 3

2.6 Allow Root User to Log In to Desktop (Optional)

By default, root cannot log in to the UKUI desktop. To enable root login, edit the LightDM configuration file:

sudo vim /etc/lightdm/lightdm.conf

Find and modify the following settings:

greeter-show-manual-login=true
allow-user-switching=true
allow-guest=true

Save and exit. Reboot the system to log in manually as root at the login screen.

Security Warning: For security reasons, avoid allowing root login to the graphical desktop in production environments. Always use a regular user account.

2.7 Verify Installation

After reboot, you should see the UKUI graphical login interface. After logging in, run the following command in the terminal to confirm the desktop environment:

echo $XDG_CURRENT_DESKTOP

The output should be UKUI.

2.8 Uninstall UKUI (if needed)

sudo dnf -y remove ukui
# or
sudo dnf -y remove ukui-desktop-environment

3. Install Node.js v26.2.0

3.1 Installation Method Selection

The default software repository in openEuler 24.03 contains an older version of Node.js (around v20.x), which does not meet OpenClaw’s requirement of Node.js ≥ v22. Therefore, manual installation of the specific version is required.

This guide uses the official binary package manual installation method (recommended), as follows:

3.2 Download Node.js v26.2.0 Binary Package

Visit the official Node.js distribution site to download the pre-compiled binary package for your architecture. For x86_64:

cd /tmp
wget https://nodejs.org/dist/v26.2.0/node-v26.2.0-linux-x64.tar.xz

AArch64 Architecture (e.g., Kunpeng processors): Replace linux-x64 with linux-arm64 in the URL.

Faster Download: Chinese users can use mirrors such as https://npmmirror.com/mirrors/node/v26.2.0/ for faster downloads.

3.3 Extract and Install

Extract the binary package to /usr/local/:

sudo tar -xJf node-v26.2.0-linux-x64.tar.xz -C /usr/local/

The extracted directory will be /usr/local/node-v26.2.0-linux-x64/, containing subdirectories like bin/, lib/, and include/.

3.4 Configure Environment Variables

Method 1: Create Symbolic Links (Recommended)

sudo ln -s /usr/local/node-v26.2.0-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /usr/local/node-v26.2.0-linux-x64/bin/npm /usr/local/bin/npm
sudo ln -s /usr/local/node-v26.2.0-linux-x64/bin/npx /usr/local/bin/npx

After creating symbolic links, since /usr/local/bin is typically in the system PATH, you can use node, npm, and npx commands from any directory.

Method 2: Configure System Environment Variables (Global Effect)

Edit the /etc/profile file:

sudo vim /etc/profile

Add the following lines at the end of the file:

export NODE_HOME=/usr/local/node-v26.2.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin

Save and reload the configuration:

source /etc/profile

3.5 Verify Installation

node -v    # Should output v26.2.0
npm -v     # Should output corresponding npm version
npx -v     # Should output corresponding npx version

3.6 Configure npm with Domestic Mirror (Recommended)

To speed up future package downloads, configure npm to use a domestic mirror:

npm config set registry https://registry.npmmirror.com

Or use Huawei Cloud mirror:

npm config set registry https://mirrors.huaweicloud.com/repository/npm/

Verify the configuration:

npm config get registry

4. Install OpenClaw

4.1 OpenClaw Overview

OpenClaw is a self-hosted personal AI assistant gateway framework. Its core philosophy is “local-first, multi-channel integration, execution beyond chat.” It connects multiple chat platforms (Telegram, WhatsApp, Discord, Feishu, DingTalk, etc.) to a single AI assistant and enables automation via a skill system—such as code execution, file management, and web search.

4.2 System Requirements

Item Minimum Requirement Recommended Configuration
Node.js ≥ v22 (v26.2.0 already installed) ≥ v22
Memory 2 GB 4 GB+
Network Requires internet access to download dependencies Stable internet connection

OpenClaw has low hardware requirements; a 2-core, 4GB system runs smoothly.

4.3 Installation Methods

OpenClaw offers two main installation methods: official one-click script and global npm install.

Method 1: Official One-Click Script (Recommended for Beginners)

Suitable for Linux/macOS. The script automatically detects and installs Node.js and all dependencies:

curl -fsSL https://openclaw.ai/install.sh | bash

After installation, follow the terminal prompts to complete the initial setup wizard.

Method 2: Global npm Install (Used in This Guide)

npm install -g openclaw@latest

If you encounter permission errors (EACCES permission denied), resolve them as follows:

npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
npm install -g openclaw@latest

Verify installation:

openclaw --version

4.4 Run Onboard Initialization Wizard

Onboard is the official interactive configuration tool provided by OpenClaw, automatically handling gateway daemon registration, initial config file creation, and health checks:

openclaw onboard --install-daemon

The wizard will guide you through:

  1. Installation Directory: Default is ~/.openclaw/ — press Enter to accept.
  2. Daemon Registration: On Linux, it writes to ~/.config/systemd/user/openclaw-gateway.service.
  3. API Key Setup: Choose your model provider and enter your API Key.
  4. Health Check: Automatically runs openclaw doctor to verify configuration.
  5. Gateway Auto-Start: The gateway starts automatically after configuration.

During setup, consider:

  • Model: Choose Moonshot AI (Kimi), OpenAI, Anthropic, etc. Chinese users are recommended to use Moonshot AI .cn endpoint.
  • Skills: Select as needed. Recommended: enable web search and other common skills.
  • Chat Interface: Start with TUI (Terminal User Interface) for initial testing.

4.5 Manually Configure API Key

If skipping the wizard, manually edit the configuration file:

Configuration file: ~/.openclaw/config.yaml
Auth profiles file: ~/.openclaw/agents/main/agent/auth-profiles.json

Example configuration (using Moonshot AI / Kimi):

{
  "profiles": [
    {
      "id": "kimi-main",
      "type": "api-key",
      "provider": "moonshot",
      "apiKey": "Your Kimi API Key",
      "model": "moonshot-v1-128k"
    }
  ],
  "default": "kimi-main"
}

4.6 Start Gateway Service

openclaw gateway start
# Or specify port (default: 18789)
openclaw gateway --port 18789 --verbose

4.7 Verify Gateway Status

# Check gateway status
openclaw gateway status

# Test health endpoint
curl -s http://127.0.0.1:18789/health | python3 -m json.tool

# View real-time logs
openclaw logs --follow --level info

Normal output should include "status": "ok".

4.8 Experience via TUI

openclaw tui

After entering the terminal interface, you can interact with the AI assistant. Press Ctrl+C twice to exit TUI.

4.9 Common Gateway Control Commands

openclaw gateway start      # Start
openclaw gateway stop       # Stop
openclaw gateway restart    # Restart (after config changes)
openclaw gateway status     # Check status
openclaw doctor             # Diagnostic tool
openclaw status             # Check overall status

4.10 Configure Firewall (if remote access is needed)

To access OpenClaw Gateway from other devices, open the port:

sudo firewall-cmd --add-port=18789/tcp --permanent
sudo firewall-cmd --reload

Security Warning: In production, use a whitelist strategy—only allow access from necessary IP ranges.

4.11 Enable “Thinking” Feature in OpenClaw

There are two ways to enable the “thinking” feature in OpenClaw: one controls thinking depth (/think), and the other controls visibility of reasoning process (/reasoning).

/think: Control Thinking Depth (Think Harder)

This feature controls the model’s “thinking budget”—how much computational resources it spends on internal reasoning before responding. Choose the level based on your task:

Thinking Level Use Case Speed Token Usage
off Extremely simple tasks (e.g., “What time is it?”) Extremely fast No extra cost
minimal Very simple tasks (e.g., “What’s today’s weather?”) Fast +10-20%
low Daily simple conversations or routine tasks Fast (1–3 sec) +10–20%
medium Multi-step reasoning tasks (recommended for daily use) Medium (3–8 sec) +30–60%
high Complex analysis, deep logic, or planning Slow (8–30+ sec) +80–200%+
xhigh Extreme complex tasks requiring maximum thinking budget Very slow Massive token cost

Note: Thinking process consumes tokens. Higher levels significantly increase usage. However, the internal reasoning is hidden by default and not displayed on the UI.

How to Enable /think

You can use it in three scenarios:

  • Temporary (One-time): Prefix your message with /think:high — effect applies only to this message.

    /think:high Please analyze potential legal risks in this contract.
    
  • Session-wide (Persistent): Send /think:medium alone — applies to all subsequent messages in the same session.

  • Global (Permanent): Modify the config file to set the default thinking level.

    openclaw config set agents.defaults.thinkingDefault high
    openclaw gateway restart
    

/reasoning: Show Your Work (Display Reasoning Chain)

This feature controls whether the model’s internal reasoning process is displayed — it does not affect the quality of thinking, only transparency.

Reasoning Level Description
on Sends the model’s reasoning steps as separate messages, showing the AI’s “thought path”.
stream Streams reasoning content in real-time during response generation, improving interactivity.
off Disables reasoning display (default).

How to Enable /reasoning

Usage is similar to /think:

  • Temporary: Add /reasoning:on before your message.
  • Session-wide: Send /reasoning:on as a standalone message.
/reasoning:on
```> **Note**: Some models (e.g., DeepSeek-R1) inherently support displaying internal reasoning processes, and this command allows you to control their output more conveniently.

### Combining Commands

You can combine `/think high` (deep thinking) with `/reasoning:on` (show reasoning steps). This way, you get high-quality answers while clearly seeing how the AI arrives at each conclusion step by step.

### Additional Details

- **`/verbose` (Verbose Mode)**: This command is primarily used for debugging tool calls (e.g., browser access, code execution). Enable it with `/verbose on` to see detailed information such as tool names, input parameters, and return results—ideal for troubleshooting functional issues.

- **Command Priority**: The priority order for rule application is: **Temporary Commands > Session Commands > Global Configuration**. Temporary commands have the highest priority.

## **5. Troubleshooting Common Issues**

### **5.1 UKUI Installation Failed**

```bash
# Check network connectivity
ping -c 4 www.baidu.com

# Clean dnf cache and retry
sudo dnf clean all
sudo dnf makecache
sudo dnf -y install ukui

5.2 UKUI Desktop Black Screen or Fails to Start

# Check display manager status
sudo systemctl status lightdm

# If not running, start it manually
sudo systemctl start lightdm
sudo systemctl enable lightdm

5.3 Node.js Command Not Found

# Verify symbolic links are correct
ls -la /usr/local/bin/node /usr/local/bin/npm

# Check PATH environment variable
echo $PATH

# Manually add (temporary effect)
export PATH=/usr/local/node-v26.2.0-linux-x64/bin:$PATH

5.4 OpenClaw Command Not Found

# Check Node.js version
node -v

# Check global package directory
npm prefix -g

# Confirm global bin directory is in PATH
echo $PATH

# If not, add it manually
echo 'export PATH=$(npm prefix -g)/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

5.5 Gateway Startup Failed

# Run diagnostic tool
openclaw doctor

# View detailed logs
openclaw logs --follow --level debug

# Check if port is already in use
sudo ss -tlnp | grep 18789

6. Quick Reference: Complete Installation Checklist

# ===== Step 1: Update System =====
sudo dnf update -y

# ===== Step 2: Install UKUI Desktop =====
sudo dnf -y install ukui
sudo systemctl set-default graphical.target
sudo reboot

# ===== Step 3: Install Node.js v26.2.0 =====
wget https://nodejs.org/dist/v26.2.0/node-v26.2.0-linux-x64.tar.xz
sudo tar -xJf node-v26.2.0-linux-x64.tar.xz -C /usr/local/
sudo ln -s /usr/local/node-v26.2.0-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /usr/local/node-v26.2.0-linux-x64/bin/npm /usr/local/bin/npm
npm config set registry https://registry.npmmirror.com

# ===== Step 4: Install OpenClaw =====
npm install -g openclaw@latest
openclaw onboard --install-daemon
openclaw gateway start
openclaw tui

Reference Resources: