基于Ubuntu 20.04配置OpenHarmony开发环境

1,281 阅读4分钟

1. Ubuntu 20.04系统安装

配置OpenHarmony开发环境之前,需要先具备Ubuntu 20.04的基本环境。可以通过以下四种方式安装Ubuntu 20.04系统。

  • 本地电脑安装Ubuntu 20.04的系统或者Windows+Ubuntu 20.04双系统
  • 本地电脑Windows环境,基于虚拟机安装Ubuntu 20.04系统
  • 本地电脑Windows环境,基于WSL安装Ubuntu 20.04系统
  • 云服务器,配置为Ubuntu 20.04Ubuntu 20.04系统

其中,第一种方式会给不是完全习惯Ubuntu系统的开发者带来很大的适应或学习成本;第二种方式会导致计算机性能的极大浪费;本文推荐第三和第四种方式,其中,基于WSL安装Ubuntu 20.04系统可以参考Windows 10安装Linux子系统

2. Ubuntu 20.04基本环境配置

2.1 配置软件源

  • 备份软件源

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
  • 清空软件源

    sudo echo "" > /etc/apt/sources.list
    
  • 更改软件源

    sudo vim /etc/apt/sources.list # 使用vim打开文件,写入如下内容
    

    写入的内容如下:

    • ubuntu 20.04

      deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
      
    • ubuntu 18.04

      deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
      

2.2 更新系统软件

依次执行如下命令,将系统软件升级至最新版本

sudo apt update
sudo apt upgrade

2.3 配置root用户密码

执行如下命令,按照提示先输入当前用户的密码,之后会提示输入要设置的root用户密码,执行完毕即可。之前设置过的不用再次设置。

sudo passwd root

3. 配置OpenHarmony编译环境

3.1 安装编译所需软件

执行如下命令即可安装编译OpenHarmony需要的所有工具。

sudo apt install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby libncurses5 default-jre default-jdk genext2fs liblz4-tool libssl-dev libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev

3.2 配置git环境

  • 配置本地git环境

    • 设置git用户名:

      git config --global user.name "username"
      
    • 设置git签名邮箱:

      git config --global user.email "youremail@example.com"
      
    • 设置git凭证存储方式:相关参考

      git config --global credential.helper store
      
  • 注册gitee账号

    参考如下链接,按照提示逐步进行,即可完成gitee账号注册。注册 Gitee 账号

  • 配置ssh公钥

    • 在本地家目录下查看是否有.ssh文件夹,若没有,执行如下命令,执行过程中,不必输入,全程enter即可。

      ssh-keygen -t rsa -C "youremail@example.com"
      
    • 查看并复制ssh公钥,并将其添加至gitee的个人账户中

      cat ~/.ssh/id_rsa.pub
      
    • 验证公钥是否添加成功

      ssh -T git@gitee.com # 命令执行后,提示“Hi XXX! You've successfully authenticated, but GITEE.COM does not provide shell access.”,表示添加成功
      

3.3 配置repo工具

  • 切换到root用户

    su # 切换到root用户,需要root用户密码,若未配置过,请执行上一步
    
  • 下载安装repo工具:需要超级用户状态执行,结束后可退出

    curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
    chmod a+x /usr/local/bin/repo
    
  • python安装requests库

    pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
    

4. 代码拉取与编译

4.1 代码仓初始化

从服务器上下载最新的 repo 源代码和 manifest 仓库,此命令只需要执行一次。

  • OpenHarmony主干

    repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
    
  • OpenHarmony Weekly分支

    repo init -u git@gitee.com:openharmony/manifest.git -b weekly --no-repo-verify
    

4.2 同步代码

该命令首次执行会下载所有代码,其后执行该命令会是本地代码与远程仓库代码同步。

repo sync -c

4.3 下载所有代码仓所需的大文件

repo forall -c 'git lfs pull'

4.4 预编译

bash build/prebuilts_download.sh

4.5 编译

  • 编译rk3568镜像

    ./build.sh --product-name rk3568
    
  • 编译sdk

    ./build.sh --product-name ohos-sdk --target-cpu arm64
    
  • 编译用于测试的预览器可执行文件

    ./build.sh --export-para PYCACHE_ENABLE:true --product-name ohos-sdk --ccache --gn-args enable_glfw_window=true
    

5. 报错记录

  • ubuntu 缺少 libtinfo.so.5 问题

    sudo apt install libncurses5
    
  • ubuntu缺少java环境

    sudo apt install default-jre default-jdk
    
  • 编译rk3568时,大片报错

    sudo apt install genext2fs liblz4-tool libssl-dev