1e41f4b71Sopenharmony_ci# Environment Setup 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci## Mini and Small Systems 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci### hb Installation 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci#### Garbled Characters and Segmentation Faults 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci- **Symptom** 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci After the **python3 -m pip install --user ohos-build** command is executed, garbled characters and segmentation faults occur. 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci- **Possible Causes** 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci The pip version does not meet requirements. 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci- **Solution** 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci Run the following command to upgrade pip: 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci ``` 24e41f4b71Sopenharmony_ci python3 -m pip install -U pip 25e41f4b71Sopenharmony_ci ``` 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci 28e41f4b71Sopenharmony_ci#### "cannot import 'sysconfig' from 'distutils'" 29e41f4b71Sopenharmony_ci 30e41f4b71Sopenharmony_ci- **Symptom** 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci During the execution of **python3 -m pip install --user ohos-build**, the following information is displayed:<br>cannot import 'sysconfig' from 'distutils' 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci- **Possible Causes** 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci The **distutils** module is unavailable. 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci- **Solution** 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci Run the following command to install **distutils**: 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci ``` 44e41f4b71Sopenharmony_ci sudo apt-get install python3.8-distutils 45e41f4b71Sopenharmony_ci ``` 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci#### "module 'platform' has no attribute 'linux_distribution'" 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci- **Symptom** 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci During the execution of **python3 -m pip install --user ohos-build**, the following information is displayed:<br>module 'platform' has no attribute 'linux\_distribution' 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci- **Possible Causes** 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci There is a compatibility issue of python3-pip. 58e41f4b71Sopenharmony_ci 59e41f4b71Sopenharmony_ci- **Solution** 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci Reinstall pip. 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci ``` 64e41f4b71Sopenharmony_ci sudo apt remove python3-pip 65e41f4b71Sopenharmony_ci curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 66e41f4b71Sopenharmony_ci python get-pip.py 67e41f4b71Sopenharmony_ci ``` 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci#### "Could not find a version that satisfies the requirement ohos-build" 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci- **Symptom** 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci During the execution of **python3 -m pip install --user ohos-build**, the following information is displayed:<br>Could not find a version that satisfies the requirement ohos-build 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci- **Possible Causes** 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci The installation fails due to poor network connectivity. 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci- **Solution** 82e41f4b71Sopenharmony_ci 83e41f4b71Sopenharmony_ci 1. Check that your computer has a good network connection. If the network connection is unstable, rectify the network fault and reinstall hb. 84e41f4b71Sopenharmony_ci 85e41f4b71Sopenharmony_ci 2. If the network is functional, run the following commands to install hb by specifying a temporary PyPI source: 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_ci ``` 88e41f4b71Sopenharmony_ci python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ohos-build 89e41f4b71Sopenharmony_ci ``` 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci### Python 3 Installation 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci#### "configure: error: no acceptable C compiler found in $PATH" 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ci- **Symptom** 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci The following informaton is displayed during the Python 3 installation process: 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ci ``` 100e41f4b71Sopenharmony_ci configure: error: no acceptable C compiler found in $PATH. See 'config.log' for more details 101e41f4b71Sopenharmony_ci ``` 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci- **Possible Causes** 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci GCC is not installed. 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci- **Solution** 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci 1. Run the **apt-get install gcc** command to install GCC online. 110e41f4b71Sopenharmony_ci 111e41f4b71Sopenharmony_ci 2. Install Python 3. 112e41f4b71Sopenharmony_ci 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci#### "-bash: make: command not found" 115e41f4b71Sopenharmony_ci 116e41f4b71Sopenharmony_ci- **Symptom** 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci The following information is displayed during the Python 3 installation process: 119e41f4b71Sopenharmony_ci 120e41f4b71Sopenharmony_ci ``` 121e41f4b71Sopenharmony_ci -bash: make: command not found 122e41f4b71Sopenharmony_ci ``` 123e41f4b71Sopenharmony_ci 124e41f4b71Sopenharmony_ci- **Possible Causes** 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci make is not installed. 127e41f4b71Sopenharmony_ci 128e41f4b71Sopenharmony_ci- **Solution** 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci 1. Run the **apt-get install make** command to install make online. 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci 2. Install Python 3. 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci 135e41f4b71Sopenharmony_ci#### "zlib not available" 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_ci- **Symptom** 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ci The following information is displayed during the Python 3 installation process: 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci ``` 142e41f4b71Sopenharmony_ci zipimport.ZipImportError: can't decompress data; zlib not available 143e41f4b71Sopenharmony_ci ``` 144e41f4b71Sopenharmony_ci 145e41f4b71Sopenharmony_ci- **Possible Causes** 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci **zlib** is not installed. 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci- **Solution** 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci 1. Install zlib online or offline. 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci Online installation: 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci Run the **apt-get install zlib** command to install zlib online. 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci Offline installation: 158e41f4b71Sopenharmony_ci 159e41f4b71Sopenharmony_ci 1. Download zlib from http://www.zlib.net/. 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci  162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci 2. Run the following command to install zlib: 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci ``` 166e41f4b71Sopenharmony_ci # tar xvf zlib-1.2.11.tar.gz 167e41f4b71Sopenharmony_ci # cd zlib-1.2.11 168e41f4b71Sopenharmony_ci # ./configure 169e41f4b71Sopenharmony_ci # make && make install 170e41f4b71Sopenharmony_ci ``` 171e41f4b71Sopenharmony_ci 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_ci 2. Install Python 3. 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci#### "No module named '_ctypes'" 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci- **Symptom** 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ci The following information is displayed during the Python 3 installation process: 182e41f4b71Sopenharmony_ci 183e41f4b71Sopenharmony_ci ``` 184e41f4b71Sopenharmony_ci ModuleNotFoundError: No module named '_ctypes' 185e41f4b71Sopenharmony_ci ``` 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci- **Possible Causes** 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci libffi and libffi-devel are not installed. 191e41f4b71Sopenharmony_ci 192e41f4b71Sopenharmony_ci 193e41f4b71Sopenharmony_ci- **Solution** 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci 1. Run the **apt-get install libffi\* -y** command to install libffi and libffi-devel online. 196e41f4b71Sopenharmony_ci 197e41f4b71Sopenharmony_ci 2. Install Python 3. 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ci 200e41f4b71Sopenharmony_ci### lsb_release Error During kconfiglib Installation 201e41f4b71Sopenharmony_ci 202e41f4b71Sopenharmony_ci- **Symptom** 203e41f4b71Sopenharmony_ci 204e41f4b71Sopenharmony_ci The following information is displayed during the **kconfiglib** installation process: 205e41f4b71Sopenharmony_ci 206e41f4b71Sopenharmony_ci ``` 207e41f4b71Sopenharmony_ci subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1. 208e41f4b71Sopenharmony_ci ``` 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_ci- **Possible Causes** 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ci The Python version in use does not match the Python version on which the lsb_release module depends. 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_ci- **Solution** 215e41f4b71Sopenharmony_ci 216e41f4b71Sopenharmony_ci Run **find / -name lsb_release** to locate lsb_release, and delete it, for example, run **sudo rm -rf /usr/bin/lsb_release**. 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci 219e41f4b71Sopenharmony_ci### "ImportError: No module named apt_pkg" 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci- **Symptom** 222e41f4b71Sopenharmony_ci 223e41f4b71Sopenharmony_ci When an unidentifiable command is executed on the Linux server, the following information is displayed:<br>ImportError: No module named apt_pkg 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ci 226e41f4b71Sopenharmony_ci- **Possible Causes** 227e41f4b71Sopenharmony_ci 228e41f4b71Sopenharmony_ci There is a compatibility issue of python3-apt. 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci- **Solution** 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ci Reinstall python3-apt. 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci ``` 235e41f4b71Sopenharmony_ci sudo apt-get remove python3-apt 236e41f4b71Sopenharmony_ci sudo apt-get install python3-apt 237e41f4b71Sopenharmony_ci ``` 238e41f4b71Sopenharmony_ci 239e41f4b71Sopenharmony_ci### Updating Source Code 240e41f4b71Sopenharmony_ci- **Scenario** 241e41f4b71Sopenharmony_ci 242e41f4b71Sopenharmony_ci Update the OpenHarmony source code downloaded to the branch (for example, Master) source code. 243e41f4b71Sopenharmony_ci 244e41f4b71Sopenharmony_ci- **Solution** 245e41f4b71Sopenharmony_ci 246e41f4b71Sopenharmony_ci 1. Go to the OpenHarmony root directory. 247e41f4b71Sopenharmony_ci 248e41f4b71Sopenharmony_ci Check that the root directory has a **.repo** folder, which is usually hidden. If the **.repo** folder does not exist, decompress the obtained source code package again to obtain complete source code. 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_ci 2. Run the **repo init** command to initialize the source code repository information. 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_ci In the command, *branch* indicates the branch name, for example, **master** or **OpenHarmony-3.2-Beta3**. 253e41f4b71Sopenharmony_ci ```shell 254e41f4b71Sopenharmony_ci repo init -u https://gitee.com/openharmony/manifest -b branch --no-repo-verify 255e41f4b71Sopenharmony_ci ``` 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_ci 3. Download and update the source code file. 258e41f4b71Sopenharmony_ci 259e41f4b71Sopenharmony_ci ```shell 260e41f4b71Sopenharmony_ci repo sync -c 261e41f4b71Sopenharmony_ci repo forall -c 'pwd;git lfs pull' 262e41f4b71Sopenharmony_ci ``` 263e41f4b71Sopenharmony_ci To keep the working directory clean, run the following command: 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_ci > **CAUTION**<br> 266e41f4b71Sopenharmony_ci >This command will reset the local workspace and delete files or directories that are not managed by gitee. Exercise caution when performing this operation. 267e41f4b71Sopenharmony_ci ```shell 268e41f4b71Sopenharmony_ci repo forall -c 'git reset --hard;git clean -fdx' 269e41f4b71Sopenharmony_ci ``` 270e41f4b71Sopenharmony_ci 271e41f4b71Sopenharmony_ci 4. Run the prebuilts script to install the compiler and binary tool. 272e41f4b71Sopenharmony_ci 273e41f4b71Sopenharmony_ci ```shell 274e41f4b71Sopenharmony_ci bash build/prebuilts_download.sh 275e41f4b71Sopenharmony_ci ``` 276e41f4b71Sopenharmony_ci 277e41f4b71Sopenharmony_ci 278