DLAP221 OpenEuler系统开发环境配置
1. 修改OpenEuler的repo源
由于官方源速度很慢,建议用户修改为阿里云的OpenEuler源.
- 备份
$ sudo cp /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.orig
- 修改为阿里源地址
$ sed -i "s#repo.openeuler.org#mirrors.aliyun.com/openeuler#g" /etc/yum.repos.d/openEuler.repo
- 运行生成缓存
yum makecache
2. 配置DNS服务器
安装systemd-resolved软件
sudo yum install systemd-resolved
修改网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-ethX, 如果是DHCP获取ip地址,此步骤可以省略。
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
PEERDNS=no
DNS=114.114.114.114 #如果你有自己的DNS服务器,请修改为你的DNS服务器IP
DNS=8.8.8.8
3.安装依赖
检查root用户的umask
-
以root用户登录安装环境。
-
检查root用户的umask值。
-
如果umask不等于0022,请执行如下操作配置,在该文件的最后一行添加umask 0022后保存。
-
在任意目录下执行如下命令,打开**.bashrc**文件:
在文件最后一行后面添加umask 0022内容。
-
执行**:wq!**命令保存文件并退出。
-
执行source ~/.bashrc命令使其立即生效。
-
说明
依赖安装完成后,请用户恢复为原umask值(删除.bashrc文件中umask 0022一行)。基于安全考虑,建议用户将umask值改为0027。
配置安装用户权限
可使用root或非root用户(该非root用户需与软件包安装用户保持一致)安装依赖,如果使用非root用户安装,可能需要用到提权命令,请用户自行获取所需的sudo权限。使用完成后请取消涉及高危命令的权限,否则有sudo提权风险。
安装依赖
-
检查系统是否安装python依赖以及gcc等软件。
分别使用如下命令检查是否安装gcc,make以及python依赖软件等。
gcc --version g++ --version make --version cmake --version rpm -qa |grep unzip rpm -qa |grep zlib-devel rpm -qa |grep libffi-devel rpm -qa |grep openssl-devel rpm -qa |grep pciutils rpm -qa |grep net-tools rpm -qa |grep sqlite-devel rpm -qa |grep lapack-devel rpm -qa |grep gcc-gfortran rpm -qa |grep python3-devel
若分别返回如下信息则说明已经安装,进入下一步(以下回显仅为示例,版本要求请以依赖列表为准)。
gcc (GCC) 10.3.1 g++ (GCC) 10.3.1 GNU Make 4.3 cmake version 3.22.0 unzip-6.0-45.oe1.aarch64 zlib-devel-1.2.11-22.oe1.aarch64 libffi-devel-3.4.2-2.oe2203.aarch64 openssl-devel-1.1.1m-18.oe2203.aarch64 pciutils-3.7.0-2.oe2203.aarch64 net-tools-2.10-3.oe2203.aarch64 sqlite-devel-3.24.0-9.oe1.aarch64 lapack-devel-3.8.0-16.oe1.aarch64 gcc-gfortran-7.3.0-20190804.h31.oe1.aarch64 python3-devel-3.7.4-8.oe1.aarch64
否则请执行如下安装命令(如果只有部分软件未安装,则如下命令修改为还未安装的软件即可):
说明
- 如果使用root用户安装依赖,请将步骤1至步骤2命令中的sudo删除。
- 如果python及其依赖是使用非root用户安装,则需要执行su - username命令切换到非root用户继续执行步骤1至步骤3。
- sqlite-devel需要在python安装之前安装,如果用户操作系统已经安装满足版本要求的python环境,在此之后再安装sqlite-devel,则需要重新编译python环境。
$ sudo yum install -y gcc gcc-c++ make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel python3-devel $ sudo yum install gcc-gfortran
-
检查系统是否安装满足版本要求的python开发环境, python的版本需要大于等于Python3.7.5。
python3 --version pip3 --version
-
安装前请先使用pip3 list命令检查是否安装相关依赖,若已经安装,则请跳过该步骤;若未安装,则安装命令如下(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可)。
- 请在安装前配置好pip源,具体可参考[配置pip源](https://www.hiascend.co
- 安装前,建议执行命令pip3 install --upgrade pip进行升级,避免因pip版本过低导致安装失败。
- 如下命令如果使用非root用户安装,需要在安装命令后加上**–user**,例如:pip3 install attrs **–user,**安装命令可在任意路径下执行。
pip3 install attrs pip3 install numpy pip3 install decorator pip3 install sympy pip3 install cffi pip3 install pyyaml pip3 install pathlib2 pip3 install psutil pip3 install protobuf pip3 install scipy pip3 install requests pip3 install absl-py
说明
依赖安装完成后,请用户恢复为原umask值, 请参考检查root用户的umask,删除.bashrc文件中umask 0022一行)。基于安全考虑,建议用户将umask值改为0027。
4. 安装开发套件包
从华为官方网站或者通过凌华科技,获取对应设备固件版本的Ascend Toolkit 软件包,并通过如下的命令安装。
安装步骤
-
以软件包的安装用户登录安装环境。
若在安装依赖中安装依赖的用户为root用户,则软件包的安装用户可自行指定;若在安装依赖中安装依赖的用户为非root用户,请确保软件包的安装用户与该用户保持一致。
-
将获取到的开发套件包上传到安装环境任意路径(如“/home/package”)。
-
进入软件包所在路径。
-
增加对软件包的可执行权限。
chmod +x 软件包名.run
其中_软件包名_.run表示开发套件包Ascend-cann-toolkit__{version}__linux-{arch}.run,请根据实际包名进行替换。
-
执行如下命令校验软件包安装文件的一致性和完整性。
./软件包名.run --check
-
执行如下命令安装软件(以下命令支持**–install-path=**_
_等参数,具体参数说明请参见参数说明)。 ./软件包名.run --install
说明
-
如果以root用户安装,不允许安装在非root用户目录下。
-
如果用户未指定安装路径,则软件会安装到默认路径下,默认安装路径如下。
-
root用户:“/usr/local/Ascend”
-
非root用户:“${HOME}_/Ascend”
其中${HOME}为当前用户目录。
-
-
软件包安装详细日志路径如下。
-
root用户:“/var/log/ascend_seclog/ascend_toolkit_install.log”
-
非root用户:“${HOME}/var/log/ascend_seclog/ascend_toolkit_install.log”
其中${HOME}为当前用户目录。
-
安装完成后,若显示如下信息,则说明软件安装成功:
xxx install success
xxx表示安装的实际软件包名。
-
配置环境变量
CANN软件提供进程级环境变量设置脚本,供用户在进程中引用,以自动完成环境变量设置。用户进程结束后自动失效。示例如下(以root用户默认安装路径为例):
# 安装toolkit包时配置
source /usr/local/Ascend/ascend-toolkit/set_env.sh
# 其中<arch>请替换为实际架构
export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/<arch>-linux/devlib/:$LD_LIBRARY_PATH
用户也可以通过修改~/.bashrc文件方式设置永久环境变量,操作如下:
- 以运行用户在任意目录下执行vi ~/.bashrc命令,打开**.bashrc**文件,在文件最后一行后面添加上述内容。
- 执行**:wq!**命令保存文件并退出。
- 执行source ~/.bashrc命令使其立即生效。
5. 安装ffmpeg和opencv工具包
用户可以自行根据自己的开发需求,安装工具软件包,如ffmpeg、opencv,下载软件源码,自行编译并安装。 为了方便用户,我预先编译并打包好了opencv和ffmpeg,用户可以通过下载链接下载二进制包。
安装准备
请执行以下命令进行安装准备
# 以安装用户在任意目录下执行以下命令,打开.bashrc文件。
vi ~/.bashrc
# 在文件最后一行后面添加如下内容。
export CPU_ARCH=`arch`
export THIRDPART_PATH=${HOME}/Ascend/thirdpart/${CPU_ARCH} #代码编译时链接samples所依赖的相关库文件
export LD_LIBRARY_PATH=${THIRDPART_PATH}/lib:$LD_LIBRARY_PATH #运行时链接库文件
export INSTALL_DIR=${HOME}/Ascend/ascend-toolkit/latest #CANN软件安装后的文件存储路径,根据安装目录自行修改
# 执行命令保存文件并退出。
:wq!
# 执行命令使其立即生效。
source ~/.bashrc
# 创建第samples相关依赖文件夹
mkdir -p ${THIRDPART_PATH}
# 下载源码并安装git
cd ${HOME}
sudo apt-get install git
git clone https://gitee.com/ascend/samples.git
# 拷贝公共文件到samples相关依赖路径中
cp -r ${HOME}/samples/common ${THIRDPART_PATH}
解压二进制包安装
cd $THIRDPART_PATH
tar xvf thirdpart_opencv_ffmpeg_openEulerOs.gz
安装acllite库
执行以下命令安装acllite(注意,安装前需要先进行ffmpeg的源码安装)。如果代码中并没有使用acllite库相关功能及函数,可以跳过此步骤。
# 编译并安装acllite
cd ${HOME}/samples/cplusplus/common/acllite/
make
make install