【鴻蒙開發(fā)實錄】在一臺vps里面從零構(gòu)建鴻蒙OS編譯環(huán)境!
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.51cto.com/#zz
從零系列-1
大家好~我是RYC~這兩天收到社區(qū)寄來的板子啦~十分感謝社區(qū)、大佬和鴻蒙~
開箱可能得先等等哈~不是很擅長曬板子,我需要好好P個圖~哈哈哈哈或O(∩_∩)O哈哈哈~
我們鴻蒙編譯環(huán)境十分強大,但是同時也是一個很難以搭建的環(huán)境。這里面涉及到好多好多的坑,作為一個不怎么使用ubuntu系統(tǒng)的小白,花了大概一周的時間,才完成構(gòu)建,所以我就打算先把這個《踩坑指南》寫出來~
Q&A:
Q:為啥不用虛擬機呢~甚至使用Vmware都不用手動構(gòu)建環(huán)境,直接就能夠使鏡像,載入鏡像就能夠編譯了的說~
A:原因很簡單--我需要到處跑,要做到Coding Everywhere!相信大家也有一會寢室一會實驗室一會教室互相跑的經(jīng)歷~最近大家在知乎上面討論很多的一個問題:《如何評價清華大學(xué)一學(xué)生騎車時使用筆記本電腦》,其實就是使用虛擬機跑程序的故事~只不過我們要隨時隨地寫的話,靠虛擬機肯定不行的~而且虛擬機在我這臺筆記本上面跑的時候,會稍微有一點卡......臺式機又不能拿著到處走....所以用vps+screen+Vim+git就能完美搞定問題。美的不行~具體流程如下:
1·SSH到 vps
2·在vps打開screen進程
3·在vps中用vim編碼
4·用vps編譯,把bin文件git上去
5·在筆記本把bin文件git下來并編譯
而且最重要的是!就算你不小心忘帶電腦了,想coding了,直接ssh即可,代碼和環(huán)境都在云端,根本不怕沒有代碼,沒辦法Coding【DOGE】
Q:不就搭建個環(huán)境嗎?用的著單獨寫一個教程?官方不都有ubuntu搭建教程了嗎?你這個是不是水啊!
A:搭建環(huán)境,那倒是,但是別忘了,我們使用的是vps,里面的ubuntu版本是ubuntu-server,與自己的個人電腦不一樣的地方很多的!要是直接照搬官方教程,一定會失敗的,一不小心就會前功盡棄,不像虛擬機能夠回退鏡像,只能夠自己修復(fù),為了防止大家陷入【無限重裝】的陰影當(dāng)中,所以我才打算把這些經(jīng)驗分享一下~
Q:普通vps的性能能夠?你開玩笑呢?
A:實踐出真知,的確夠。根據(jù)實際測試,我這里使用的是一臺(0.5核-0.5G內(nèi)存-8.3G硬盤),編譯時間低于1Min,完全夠了,如果使用的配置能夠更加好,編譯速度會更加快。
Q:如何選擇vps?
A:如果你財大氣粗,隨便選{DOGE}。。。。實際上,選最實惠的就行~不要錢的最好!反正無論什么架構(gòu)的機器,多少的配置,都能完美搭建成功。剩下的就是邊界遞減效應(yīng)了。
------------------------------------------分割線---------------------------------------------------------------------------------------------------------------------------------
下面,就開始從vps的SSH登錄到編譯完成的
從零開始教學(xué)~

首先,我們要先選擇一臺vps并且下單~然后一般情況下,商家會展示兩個東西,一個是{ROOT密碼/Root Password},一個是{IP地址}。
ip地址大家可以理解為門牌號,可以在網(wǎng)絡(luò)中任何一個位置通過這個地址來尋找到我們的那一臺主機
而root密碼則是我們vps的ssh登錄時要用到的,其實就是主機的密碼!
我們可以在ubuntu系統(tǒng)下,使用ssh命令登錄。
- ssh root@IP
如上所示,root表示的是root用戶,后面的ip則是vps的ip。
敲擊回車后,如果ip沒有輸入錯誤,會彈出一個提示,這個提示是“為了確定你連接的vps是你的”,大家直接輸入yes后回車即可。
然后則會彈出一個讓你輸入密碼的指示,直接輸入密碼后回車即可成功登錄。(這里需要注意,linux系統(tǒng)下,輸入密碼的時候是不會有任何反應(yīng)的,也就是說,你看不到任何反饋,不用擔(dān)心,直接登錄就可以!)
如果你是windows,也可以使用xshell一類的工具,這些工具就不再贅述啦~

像這樣就是成功登錄啦!可以看到,在終端的開始,用戶名改變了~現(xiàn)在大家輸入的每個操作,都是在操作這個vps!
首先,我們得先創(chuàng)建一個“工作目錄”,在這個目錄里面進行代碼以及工具的配置。
- mkdir code
- cd code
在創(chuàng)建完成目錄以后,我們就可以按照官方教程來進行了。
步驟一:將終端改為BASH
如下圖
- ls -l /bin/sh
- sudo dpkg-reconfigure dash
直接復(fù)制粘貼即可,在選擇【no】后退出。
我們一定不要忘記這個步驟,在后面工具安裝的時候,會為大家介紹原由
步驟二:創(chuàng)建screen終端,防止工具安裝時因意外退出
直接使用
- screen -S harmony
- -如果提示找不到,請使用:
- apt install screen
- ----
- 如果意外退出,不要慌張,只需要再次進入,然后使用
- screen -r harmony
- 即可登錄!
屏幕會清空~
步驟三:更正python的版本,防止編譯工具無法安裝、編譯出錯

如果python版本
- 由于是ubuntu-server,所以基本上不會內(nèi)置python3.8所以需要大家自己手動安裝~
- sudo apt-get install python3.8 -y
- which python3.8
- 這里會返回一個路徑
- cd /usr/bin && sudo rm python && sudo ln -s 把上面返回的內(nèi)容粘貼到此處后回車運行 python && python --version
- ln -s /usr/bin/python3.8 python && python --version
最后會返回一個python版本號。

步驟四【坑點!】:pip3的安裝
大家到這一步,一定會選擇通過apt安裝pip3,但是,,,有問題!
根據(jù)實際測試,apt安裝python3-pip十有八九會出現(xiàn)錯誤,不信你可以使用pip3 -V這條命令看一看,這個下面的路徑可能不會是python3.8的路徑》。。
所以我建議大家在此使用安裝包編譯~
- curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
- python get-pip.py
- 當(dāng)然,用apt也不是不行,你到時候再卸載就行【doge】
步驟五:安裝一系列python庫以及工具
這步驟沒坑,大家復(fù)制粘貼即可
- pip3 install setuptools
- sudo pip3 install kconfiglib
- sudo pip3 install pycryptodome
- sudo pip3 install six --upgrade --ignore-installed six
- sudo pip3 install ecdsa
- sudo apt-get install scons -y

啥,難道你以為這步就結(jié)束啦?事情沒有那么簡單!
經(jīng)過之前我無數(shù)次踩坑,和無數(shù)次重裝系統(tǒng),每一次都會失敗。
在最后看日志的時候,才發(fā)現(xiàn),根本沒有crypto!
然而在ubuntu桌面的電腦上,卻沒有出現(xiàn)這個問題。。。
后來才知道,需要先卸載pycrypto,然后安裝pycrypto.....注意啦
是pyctypto!不是crypto.....
如下:
- pip3 install pycrypto
步驟六:下載工具包
在這里,我們會采用wget命令來進行安裝,wget是一個網(wǎng)絡(luò)下載工具。
如果沒有wget,需要使用apt install wget!安裝好wget
- wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar
- wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
- wget https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz
步驟七:解壓工具包
直接使用tar解壓工具即可~
- tar -xvf gn.1523.tar -C ~/
- tar -xvf ninja.1.9.0.tar -C ~/
- tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/
直接復(fù)制粘貼即可!
步驟八:安裝工具包-配置環(huán)境變量!
- vim ~/.bashrc
- 在進入vim后,首先按下i鍵(進入編輯模式)
- 然后使用PgDn鍵將頁面拉到底端。
- 粘貼這個
- export PATH=~/gn:$PATH
- export PATH=~/ninja:$PATH
- export PATH=~/gcc_riscv32/bin:$PATH
- 不要使用ctrl+v!不要使用ctrl+v!不要使用ctrl+v!
- 重要的事情說三遍!
- ubuntu下終端內(nèi)粘貼要用ctrl+shift+v!
- 最后執(zhí)行
- source ~/.bashrc
- 生效一下就行!
- 你也可以使用下面的語句查看是否安裝成功~
- riscv32-unknown-elf-gcc -v
步驟九: 編譯!
編譯這個很簡單的
- 下載源碼包,http://tmp.link/f/5f8ac2c9ab495
- 不要問為啥不直接從官方下載...
- 這個源碼包是我從虛擬機鏡像里面提取的....用著沒問題
- 但是官方渠道下載的,就會報utf-8編碼的錯誤......
- cd ~/code
- tar -xzvf code-1.0.tar.gz
- python build.py wifiiot
如果大家遇到問題,可以留言~
還有許多細(xì)節(jié)沒寫,不過坑大概也就這些了....
會持續(xù)更新
BTW:最近在研究樹莓派通過qemu-user運行交叉編譯器,達到隨時隨地編譯的小目標(biāo)~
可惜樹莓派最近一直抽風(fēng),也不知道該咋弄了.....如果成功了,一定再次分享!
-----10月25日更新----
大家好~一周過去啦,大家肯定也都搭建好環(huán)境啦,現(xiàn)在給大家推薦一個黑科技~goorm ide,這是一個云端ide,有網(wǎng)絡(luò)就可以使用,而且最重要的是-----不花錢!
這篇攻略也同時可以在goorm上面使用,以圖為證~我已經(jīng)搭建好了!

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
https://harmonyos.51cto.com/#zz