你們好~我是RYC~這兩天收到社區寄來的板子啦~十分感謝社區、大佬和鴻蒙~python
開箱可能得先等等哈~不是很擅長曬板子,我須要好好P個圖~哈哈哈哈或O(∩_∩)O哈哈哈~linux
咱們鴻蒙編譯環境十分強大,可是同時也是一個很難以搭建的環境。這裏面涉及到好多好多的坑,做爲一個不怎麼使用ubuntu系統的小白,花了大概一週的時間,才完成構建,因此我就打算先把這個《踩坑指南》寫出來~git
Q&A:shell
Q:爲啥不用虛擬機呢~甚至使用Vmware都不用手動構建環境,直接就可以使鏡像,載入鏡像就可以編譯了的說~bootstrap
A:緣由很簡單--我須要處處跑,要作到Coding Everywhere!相信你們也有一會寢室一會實驗室一會教室互相跑的經歷~最近你們在知乎上面討論不少的一個問題:《如何評價清華大學一學生騎車時使用筆記本電腦》,其實就是使用虛擬機跑程序的故事~只不過咱們要隨時隨地寫的話,靠虛擬機確定不行的~並且虛擬機在我這檯筆記本上面跑的時候,會稍微有一點卡......臺式機又不能拿着處處走....因此用VPS+screen+Vim+git就能完美搞定問題。美的不行~具體流程以下:ubuntu
1·SSH到 VPSvim
2·在VPS打開screen進程windows
3·在VPS中用vim編碼bash
4·用VPS編譯,把bin文件git上去網絡
5·在筆記本把bin文件git下來並編譯
並且最重要的是!就算你不當心忘帶電腦了,想coding了,直接ssh便可,代碼和環境都在雲端,根本不怕沒有代碼,沒辦法Coding【DOGE】
Q:不就搭建個環境嗎?用的着單獨寫一個教程?官方不都有ubuntu搭建教程了嗎?你這個是否是水啊!
A:搭建環境,那卻是,可是別忘了,咱們使用的是VPS,裏面的ubuntu版本是ubuntu-server,與本身的我的電腦不同的地方不少的!要是直接照搬官方教程,必定會失敗的,一不當心就會前功盡棄,不像虛擬機可以回退鏡像,只可以本身修復,爲了防止你們陷入【無限重裝】的陰影當中,因此我纔打算把這些經驗分享一下~
Q:普通VPS的性能可以?你開玩笑呢?
A:實踐出真知,的確夠。根據實際測試,我這裏使用的是一臺(0.5核-0.5G內存-8.3G硬盤),編譯時間低於1Min,徹底夠了,若是使用的配置可以更加好,編譯速度會更加快。
Q:如何選擇VPS?
A:若是你財大氣粗,隨便選{DOGE}。。。。實際上,選最實惠的就行~不要錢的最好!反正不管什麼架構的機器,多少的配置,都能完美搭建成功。剩下的就是邊界遞減效應了。
------------------------------------------分割線------------------------------------------------------
下面,就開始從VPS的SSH登陸到編譯完成的
從零開始教學~
首先,咱們要先選擇一臺vps而且下單~而後通常狀況下,商家會展現兩個東西,一個是{ROOT密碼/Root Password},一個是{IP地址}。
ip地址你們能夠理解爲門牌號,能夠在網絡中任何一個位置經過這個地址來尋找到咱們的那一臺主機
而root密碼則是咱們vps的ssh登陸時要用到的,其實就是主機的密碼!
咱們能夠在ubuntu系統下,使用ssh命令登陸。
ssh root@IP
如上所示,root表示的是root用戶,後面的ip則是vps的ip。
敲擊回車後,若是ip沒有輸入錯誤,會彈出一個提示,這個提示是「爲了肯定你鏈接的vps是你的」,你們直接輸入yes後回車便可。
而後則會彈出一個讓你輸入密碼的指示,直接輸入密碼後回車便可成功登陸。(這裏須要注意,linux系統下,輸入密碼的時候是不會有任何反應的,也就是說,你看不到任何反饋,不用擔憂,直接登陸就能夠!)
若是你是windows,也可使用xshell一類的工具,這些工具就再也不贅述啦~
----
像這樣就是成功登陸啦!能夠看到,在終端的開始,用戶名改變了~如今你們輸入的每一個操做,都是在操做這個vps!
----
首先,咱們得先建立一個「工做目錄」,在這個目錄裏面進行代碼以及工具的配置。
mkdir code cd code
在建立完成目錄之後,咱們就能夠按照官方教程來進行了。
步驟一:將終端改成BASH
以下圖
ls -l /bin/sh sudo dpkg-reconfigure dash
直接複製粘貼便可,在選擇【no】後退出。
咱們必定不要忘記這個步驟,在後面工具安裝的時候,會爲你們介紹起因
步驟二:建立screen終端,防止工具安裝時因意外退出
直接使用
screen -S harmony -若是提示找不到,請使用: apt install screen ---- 若是意外退出,不要慌張,只須要再次進入,而後使用 screen -r harmony 便可登陸!
屏幕會清空~
步驟三:更正python的版本,防止編譯工具沒法安裝、編譯出錯
若是python版本<python3.8,亦或者如圖中這樣出現了沒法找到python等信息,則須要進行。若是python版本大於3.8則能夠跳過本步驟。
因爲是ubuntu-server,因此基本上不會內置python3.8因此須要你們本身手動安裝~
sudo apt-get install python3.8 -y which python3.8 這裏會返回一個路徑 cd /usr/bin && sudo rm python && sudo ln -s 把上面返回的內容粘貼到此處後回車運行 python && python --version ln -s /usr/bin/python3.8 python && python --version
最後會返回一個python版本號。
步驟四【坑點!】:pip3的安裝
你們到這一步,必定會選擇經過apt安裝pip3,可是,,,有問題!
根據實際測試,apt安裝python3-pip十有八九會出現錯誤,不信你可使用pip3 -V這條命令看一看,這個下面的路徑可能不會是python3.8的路徑》。。
因此我建議你們在此使用安裝包編譯~
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py 固然,用apt也不是不行,你到時候再卸載就行【doge】
步驟五:安裝一系列python庫以及工具
這步驟沒坑,你們複製粘貼便可
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
啥,難道你覺得這步就結束啦?事情沒有那麼簡單!
通過以前我無數次踩坑,和無數次重裝系統,每一次都會失敗。
在最後看日誌的時候,才發現,根本沒有crypto!
然而在ubuntu桌面的電腦上,卻沒有出現這個問題。。。
後來才知道,須要先卸載pycrypto,而後安裝pycrypto.....注意啦
是pyctypto!不是crypto.....
以下:
pip3 install pycrypto
步驟六:下載工具包
在這裏,咱們會採用wget命令來進行安裝,wget是一個網絡下載工具。
若是沒有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 ~/
直接複製粘貼便可!
步驟八:安裝工具包-配置環境變量!
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下終端內粘貼要用ctrl+shift+v! 最後執行 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
若是你們遇到問題,能夠留言~
還有許多細節沒寫,不過坑大概也就這些了....
會持續更新
BTW:最近在研究樹莓派經過qemu-user運行交叉編譯器,達到隨時隨地編譯的小目標~
惋惜樹莓派最近一直抽風,也不知道該咋弄了.....若是成功了,必定再次分享!
文章來源:https://harmonyos.51cto.com/posts/1304
做者: ryc12138