# Ubuntu Build Environment - [Setting up a Ubuntu Build Environment Using a Docker Environment](#section1643363843714) - [Obtaining System Source Code](#section58448331029) - [Installing and Using the Docker Environment](#section22916211916) - [Setting up a Ubuntu Build Environment Using an Installation Package](#section25961010189) - [Obtaining Standard-System Source Code](#section15424183111912) - [Installing Dependent Tools](#section109262032104819) - [Obtaining prebuilts](#section16453104219209) - [Configuring the Node.js Environment and Obtaining the Node\_modules Dependency Package](#section133741330192119) - [Installing the hc-gen Tool](#section149281248182116) You can use either the Docker environment or installation package provided by OpenHarmony to set up a Ubuntu build environment. This section describes the two methods. ## Setting up a Ubuntu Build Environment Using a Docker Environment The standard OpenHarmony system provides a Docker environment which encapsulates build tools. To use the Docker environment, perform the following steps: 1. Obtain the system source code. 2. Install and use the Docker environment. ### Obtaining System Source Code For details, see [Source Code Acquisition](../get-code/source-code-acquisition.md). ### Installing and Using the Docker Environment For details, see [Installing and Using Docker](../get-code/tool-acquisition.md). ## Setting up a Ubuntu Build Environment Using an Installation Package The procedure is as follows: 1. Obtain the system source code. 2. Install dependent tools. 3. Obtain prebuilts. 4. Configure the Node.js environment and obtain the Node\_modules dependency package. 5. Install the hc-gen tool. ### Obtaining Standard-System Source Code For details, see [Source Code Acquisition](../get-code/source-code-acquisition.md). ### Installing Dependent Tools The installation command is as follows: ``` 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 ``` ### Obtaining prebuilts 1. Go to the OpenHarmony working directory. ``` cd OpenHarmony ``` 2. Download the script. ``` curl https://gitee.com/landwind/script-tools/raw/master/Shell/OpenHarmony/OpenHarmony_2.0_canary_prebuilts_download.sh >./prebuilts_download.sh ``` 3. Download and decompress the prebuilts package in a specified directory. ``` bash ./prebuilts_download.sh ``` By default, binary files are stored in the **OpenHarmony\_2.0\_canary\_prebuilts** directory, which is in the same directory as **OpenHarmony**. To change the storage path, change the value of **bin\_dir** in **prebuilts\_download.sh**. 4. Return to the previous directory. ``` cd - ``` ### Configuring the Node.js Environment and Obtaining the Node\_modules Dependency Package To build the JS framework, you need to download and configure Node.js on a Linux server. The procedure is as follows: 1. Download Node.js on a Linux server. ``` mkdir -p OpenHarmony/prebuilts/build-tools/common/nodejs # Create the nodejs directory. cd OpenHarmony/prebuilts/build-tools/common/nodejs # Go to the nodejs directory. wget --no-check-certificate https://nodejs.org/download/release/v12.18.4/node-v12.18.4-linux-x64.tar.gz # Download the Node.js package. ``` 2. Decompress the Node.js package and configure the Node.js environment. ``` tar -zxvf node-v12.18.4-linux-x64.tar.gz # Decompress the Node.js package. echo "export PATH=`pwd`/node-v12.18.4-linux-x64/bin:${PATH}" >> ~/.bashrc;source ~/.bashrc # Set a Node.js environment variable. cd - # Return to the previous directory. ``` 3. Go to the **third\_party/jsframework** directory of the OpenHarmony code and download the **node\_modules** package. ``` cd OpenHarmony/third_party/jsframework # Go to the jsframework directory. npm install # Download the node_modules package. cd - # Return to the previous directory. ``` 4. Store the **node\_modules** package in the **prebuilts/build-tools/common/js-framework** directory of the OpenHarmony code. ``` mkdir -p OpenHarmony/prebuilts/build-tools/common/js-framework # Create the js-framework directory. cp -rp OpenHarmony/third_party/jsframework/node_modules OpenHarmony/prebuilts/build-tools/common/js-framework/ ``` ### Installing the hc-gen Tool hc-gen is used to compile the driver. To install hc-gen, perform the following steps: 1. Start a Linux server. 2. Download [hc-gen](https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar). 3. Decompress the hc-gen installation package to **\~/hc-gen** on the Linux server. ``` tar -xvf hc-gen-0.65-linux.tar -C ~/ ``` 4. Set an environment variable. ``` vim ~/.bashrc ``` Copy the following command to the last line of the **.bashrc** file, save the file, and exit. ``` export PATH=~/hc-gen:$PATH ``` 5. Validate the environment variable. ``` source ~/.bashrc ```