# Ubuntu编译环境准备
- [Docker方式准备Ubuntu编译环境](#section1643363843714)
- [获取系统源码](#section58448331029)
- [Docker环境安装使用](#section22916211916)
- [安装包方式准备Ubuntu编译环境](#section25961010189)
- [安装依赖工具](#section109262032104819)
- [获取标准系统源码](#section6325556113718)
- [获取prebuilts](#section16453104219209)
- [配置NodeJS环境和获取Node\_modules依赖包](#section133741330192119)
- [安装hc-gen工具](#section149281248182116)
OpenHarmony为开发者提供了Docker和安装包两种方式来搭建Ubuntu编译环境。接下来将分别针对这两种方式进行介绍。
## Docker方式准备Ubuntu编译环境
OpenHarmony标准系统为开发者提供的Docker环境已经将对应的编译工具链进行了封装,开发者可省略对应工具的安装。具体Docker使用分为如下几步:
1. 获取系统源码。
2. Docker环境安装使用。
### 获取系统源码
具体获取方式请参考[获取标准系统源码](../get-code/源码获取.md)。
### Docker环境安装使用
具体Docker环境的安装和使用请参考[Docker环境安装使用指导](../get-code/获取工具.md)。
## 安装包方式准备Ubuntu编译环境
安装包方式具体操作分为如下几步:
1. 安装依赖工具。
2. 获取系统源码。
3. 获取prebuilts。
4. 配置NodeJS环境和获取Node\_modules依赖包。
5. 安装hc-gen工具。
### 安装依赖工具
安装命令如下:
```
sudo apt-get install binutils git-core 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 lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 python2.7 python-minimal
```
> **说明:**
>以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。
### 获取标准系统源码
具体获取方式请参考[获取标准系统源码](../get-code/源码获取.md)。
### 获取prebuilts
1. 切换到OpenHarmony工作目录。
```
cd OpenHarmony
```
2. 下载脚本。
```
curl https://gitee.com/landwind/script-tools/raw/master/Shell/OpenHarmony/OpenHarmony_2.0_canary_prebuilts_download.sh >./prebuilts_download.sh
```
3. 下载并解压prebuilts压缩包到指定位置。
```
bash ./prebuilts_download.sh
```
二进制默认存放在与OpenHarmony同目录下的OpenHarmony\_2.0\_canary\_prebuilts下,如需修改默认位置,请编辑prebuilts\_download.sh修改bin\_dir值。
4. 切换到之前的目录。
```
cd -
```
### 配置NodeJS环境和获取Node\_modules依赖包
为了编译JS Framework,开发者需要在Linux服务器下载配置NodeJS(注意:步骤中OpenHarmony目录指代当前工程的根目录,可自定义),具体操作如下:
1. 开发者在Linux服务器下载Nodejs。
```
mkdir -p OpenHarmony/prebuilts/build-tools/common/nodejs #创建nodejs目录
cd OpenHarmony/prebuilts/build-tools/common/nodejs #进入nodejs目录
wget --no-check-certificate https://nodejs.org/download/release/v12.18.4/node-v12.18.4-linux-x64.tar.gz #下载nodejs
tar -zxvf node-v12.18.4-linux-x64.tar.gz #解压nodejs压缩包
cd - #切换到之前的目录
```
2. 配置NodeJS环境变量,下载node\_modules包。
```
cd OpenHarmony/third_party/jsframework #进入jsframework目录
export PATH=../../prebuilts/build-tools/common/nodejs/node-v12.18.4-linux-x64/bin:${PATH} #设置NodeJS环境变量
npm install #下载node_modules包
cd - #切换到之前的目录
```
3. 把下载的node\_modules包放入OpenHarmony代码的prebuilts/build-tools/common/js-framework目录下。
```
mkdir -p OpenHarmony/prebuilts/build-tools/common/js-framework #创建js-framework目录
cp -rp OpenHarmony/third_party/jsframework/node_modules OpenHarmony/prebuilts/build-tools/common/js-framework/
```
### 安装hc-gen工具
hc-gen用于进行驱动编译,具体安装步骤如下:
1. 打开Linux编译服务器终端。
2. [下载hc-gen工具](https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar)。
3. 解压hc-gen安装包到Linux服务器\~/hc-gen路径下。
```
tar -xvf hc-gen-0.65-linux.tar -C ~/
```
4. 设置环境变量。
```
vim ~/.bashrc
```
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
```
export PATH=~/hc-gen:$PATH
```
5. 生效环境变量。
```
source ~/.bashrc
```