Command Line Tools 下载中心https://developer.huawei.com/consumer/cn/download/command-line-tools-for-hmos

Command Line Tools 下载下来通常是一个 zip 包,解压后执行 bin/Emulator 会返回大致这样的结果,缺少相关的依赖。

command-line-tools/emulator/Emulator: error while loading shared libraries: libdrm.so.2: cannot open shared object file: No such file or directory

在 Emulator(跳转网页) 的文档中,有这样的说明。

当前仅支持Ubuntu 18.04及以上的Linux系统,使用前需要安装相关的依赖,以Ubuntu 18.04操作系统为例,执行命令:

apt install -y libatomic1 libpulse0 libegl1 libgbm1 libgl1 libpng16-16 libfontconfig1 libfreetype6 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-xinerama0 libxcb-xkb1 libsm6 libice6 libxkbcommon-x11-0 libxkbcommon0 libglib2.0-0

于是需要在 nixpkgs 中找到提供相关依赖的包。经过一番搜索后,在 configuration.nix 中添加

programs.nix-ld = {
  enable = true;
  libraries = with pkgs; [
    libgbm
    libglvnd
    libdrm
    libpng
    libpulseaudio
    libxcb
    libxcb-util
    libxcb-wm
    libxcb-image
    libxcb-keysyms
    libxcb-render-util
    libx11
    libxext
    libxrender
    libxfixes
    libxi
    libSM
    libICE
    libxtst
    libxcomposite
    libxdamage
    libxinerama
    libxshmfence
    libxkbcommon
    libGL
    libxcursor
    mesa
    fontconfig
    freetype
    glib
    stdenv.cc.cc.lib
  ];
};

如此,再 sudo nixos-rebuild switch 构建后,应当可以正常执行 Command Line Tools 的相关命令。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐