从零构建HarmonyOs开发环境
序
鸿蒙开发环境主要是两点:
1、需要一个linux环境:用来拉取代码、修改提交、以及编译构建
2、需要一个Windows环境:用来运行鸿蒙的IDE(DevCo),它用来编辑代码,烧写调试
所以笔者建议的方式是,在Windows上虚拟一个linux。
本文将介绍如何基于Windows10主机,通过VirtualBox虚拟一个Linux系统(ubuntu):
Win10上运行IDE,虚拟机运行Ubuntu,Win10通过ssh连接虚拟机获得shell端口;
同时Win10可通过samba访问虚拟机文件目录,使得IDE可以打开虚拟机中的代码,实现IDE和shell共同操作同一套代码。
VirtualBox安装
官网下载安装:
https://www.virtualbox.org/wiki/Downloads
这个比较简单,不再赘述,笔者安装的本版是:6.1.14 r140239 (Qt5.6.2)
PS:官网比较慢,如果着急,也可以通过360软件管家安装
创建Ubuntu虚拟机
1、打开VirtuaBox点击新建
2、如图指定参数,名称您随意,文件夹路径用来存放该虚拟机数据,类型选Linux,版本选Ubuntu64-bit,然后点击“下一步”
3、进入内存设置页面,建议设置为主机真实内存1/4到1/2,本例设置为2G(主机有8G内存)
4、选择创建一个新的虚拟硬盘,然后点击“下一步”
接下来是连续的虚拟硬盘参数设置,
5、选择VDI类型,然后下一步
6、虚拟硬盘文件分配类型,选择“动态分配”,然后下一步
7、指定虚拟硬盘文件存储位置;同时设置虚拟硬盘大小,建议128G,然后点击“创建”
8、创建完毕后,右建虚拟机图标,选择“设置”->”系统”,根据实际情设置cpu核个数
安装Ubuntu系统
1、Ubuntu安装镜像下载
https://ubuntu.com/download/alternative-downloads\
选择18.04和20.04都可以
PS:Server版体积小,没有UI,如果喜欢花
哨的桌面,也可以选择Desktop版
2、设置启动介质顺序
右键当前的虚拟机图标,选择“设置”,再选择系统,在“启动顺序”列表中将硬盘设置到光驱前面,其他选项全部取消,然后点击“OK”
PS:这样首次硬盘没有系统,无法启动,会继续选择光盘启动,进行安装;再次启动,硬盘系统已经安装好,就会优先硬盘启动,进入系统
3、设置虚拟光盘镜像
右键当前的虚拟机图标,选择“设置”,再选择存储,将虚拟光盘选定为刚刚下载的iso
4、启动虚拟机
点击“启动”,启动虚拟机,首次运行,体贴的VirtualBox会提示我们指定一个虚拟光盘文件,默认就是我们刚才设置的iso镜像,直接点“启动”就行
5、启动虚拟
开启后,会刷2分钟左右日志,然后进入安装选项界面
这里熟悉的读者可以自己设置各类选项,不熟悉的一路默认到底也是OK的,本例选择一路默认。。。
6、设置用户名和密码
7、安装过程,刷日志
PS : 由于安装过程中需要下载软件,所以安装速度会受网络情况影响,如果真的很慢,就去看部电影吧。。。
Ubuntu环境配置
1、虚拟机网络配置
虚拟机开展任何工作前,得先保证网络畅通,虚拟机网络主要两种模式:
1) 网络地址转换(NAT)
这种方式虚拟机可以利用主机网络接入internet,例如ping通baidu.com;
但是外界无法通过网络访问虚拟机,虚拟的IP不能被外界识别
2) 桥接网卡
这种方式,笔者认为是最happy的,虚拟机相当于借助主机网卡的能力,虚拟出一个网卡
虚拟机拥有和主机一个网段的IP地址,就像一个独立的机器一样,可以和外界互通
建议选择第二种方式,这两种方式在当主机需要访问虚拟机硬盘文件时配置有些差异,后面会讲到
2、ssh登录设置
ssh登录设置
直接在VritualBox窗口操作虚拟机比较难受,我们当然希望通过Xshell/Putty等工具接入LInux服务器,这需要配置ssh服务
安装ssh-server:sudo apt-get install openssh-server
启动ssh服务: sudo service ssh start
1、桥接网卡方式:
ifconfig查看IPV4地址,然后在Putty/Xshell中直接登录
2、网络地址转换
这种模式下,主机ssh工具无法直接链接虚拟机IP,需要配置端口转发
然后ssh工具登录的时候,直接链接本地主机地址,端口指定为端口转发中配置的端口,本例中为2222
3、samba配置
如果要使用IDE,那么IDE如何打开linux服务器上的代码呢? 答案是samba
samba可以让windows像访问本地磁盘一样访问其他linux服务器上的文件夹
首先安装samba:sudo apg-get install samba
配置修改:vim /etc/samba/smb.conf 在最后面添加如下信息:
[yang]
browseable = yes
writable = yes
available = yes
path = /home/yang
valid users = yang
public = yes
添加samba用户:sudo smbpasswd -a yang
说明:yang是当前登录的用户,我们直接将他添加为samba用户;提示输入密码,这个是samba密码,和登录密码不是一回事,但是可以设置成一样的
重启samba:sudo service smbd restart
在windows资源管理器里输入虚拟机ip地址,就可以访问了
4、源码获取配置
这个直接参考官方文档:
https://gitee.com/openharmony/docs/blob/master/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.md
建议选第四种方式:从代码仓库获取
这里做几点补充:
1)curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
这一步如果出现权限问题,可以用下面两部替代:
wget https://gitee.com/oschina/repo/raw/fork_flow/repo-py3
sudo mv repo-py3 /usr/local/bin/repo
2)还需要安装Python3
官方文档要求python3.7+,但是笔者安装的ubuntu自带3.6.9也可以;
接着安装pip管理工具:sudo apt-get install python3-pip
另外需要将默认python设置为新安装的python3.7+, 其实就是设置软连接到/usr/bin/python
3)pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
这一步请使用pip3,另外如果很慢,可以直接尝试pip3 install requests
5、编译环境配置
目前Hi3861/Hi3516/Hi3518环境配置及编译命令稍有差异,请参考官方快速入门:
https://gitee.com/openharmony/docs/blob/master/quick-start/Readme-CN.md
这里做必要补充:
1)Hi3861的第一个示例中详细介绍了IDE工具VsCode及插件DevEco的使用,后面Hi3516和Hi3518的介绍中就淡化了,所以直接看后面例子不明白IDE用法的,先去看一遍Hi3861的入门
2)编译时若提示zip命令没找到,则直接安装:sudo apt-get install zip
3)弱提示mcopy命令没有找到的,则直接安装mtools: sudo apt-get install mtools
Windos环境配置
windows上,主要是IDE环境的配置,请参考官方指导文档:
https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905
关于IDE的使用,可以直接参考快速入门的这一篇:
IDE的作用主要是:
代码编辑:通过插件实现自动补全,错误提示等等
烧写镜像:将编译生成的镜像烧到开发板中,以及在线调试
终端工具:可以通过Terminal链接linux服务器,获取shell端口,这样IDE和shell端口就在一个页面中,很方便!
总结
真个环境搭建过程,是依照 “源码获取配置-》编译环境配置-》IDE环境配置” 的顺序进行的
其实官方的README及开发指导都有比较详细的阐述,但是由于涉及的软件、配置较多,而且不集中,所以容易让刚入门的童鞋感觉配置起来比较麻烦
本帖就是顺着这个思路,从零开始,一步步搭建环境,记录踩坑过程,分享给大家,与君共勉,鸿蒙加油!