【开发实录】在一台VPS里面从零构建鸿蒙OS编译环境!

你们好~我是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登陆到编译完成的

从零开始教学~

6671b5e19d757e54bcd781e9fb1de48fc9cbcd.jpg

首先,咱们要先选择一台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一类的工具,这些工具就再也不赘述啦~


----2830fdc2138e7b56ee11389d4069886a8c20cc.jpg

像这样就是成功登陆啦!能够看到,在终端的开始,用户名改变了~如今你们输入的每一个操做,都是在操做这个vps!

----

首先,咱们得先建立一个“工做目录”,在这个目录里面进行代码以及工具的配置。

mkdir code
cd code

在建立完成目录之后,咱们就能够按照官方教程来进行了。

步骤一:将终端改成BASH

以下图

a3998775270ace645954432e2d03c6b125f1fc.jpg

ls -l /bin/sh
sudo dpkg-reconfigure dash

直接复制粘贴便可,在选择【no】后退出。

咱们必定不要忘记这个步骤,在后面工具安装的时候,会为你们介绍起因

步骤二:建立screen终端,防止工具安装时因意外退出

直接使用

screen -S harmony
-若是提示找不到,请使用:
apt install screen
----
若是意外退出,不要慌张,只须要再次进入,而后使用
screen -r harmony
便可登陆!

屏幕会清空~

步骤三:更正python的版本,防止编译工具没法安装、编译出错

d5693af07bc4ad93bed569885209b7cb73d2a1.jpg

若是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版本号。

e9ce82e96167b8bb2886647f476f82f6a05219.jpg

步骤四【坑点!】: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

079942a12368f211ca3935a9262e05d4b307c0.jpg6840cab20dad1192da43102a7e1ef2c7685993.jpg

啥,难道你觉得这步就结束啦?事情没有那么简单!

通过以前我无数次踩坑,和无数次重装系统,每一次都会失败。

在最后看日志的时候,才发现,根本没有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

83a1c25427054518351420c401adf0f4d825fe.jpg

若是你们遇到问题,能够留言~

还有许多细节没写,不过坑大概也就这些了....

会持续更新

BTW:最近在研究树莓派经过qemu-user运行交叉编译器,达到随时随地编译的小目标~

惋惜树莓派最近一直抽风,也不知道该咋弄了.....若是成功了,必定再次分享!




文章来源:https://harmonyos.51cto.com/posts/1304

做者: ryc12138

相关文章
相关标签/搜索