华为OpenEuler安装配置
虚拟机
环境介绍
系统:Win10_64位
虚拟机:Hyper-V(Windows自带虚拟机,启动需要专业版)
OpenEuler版本:
20.03-LTS-SP1-everything-x86_6420.03LTS为长期维护版本
everything为本地源版本
网络源版本为:https://repo.openeuler.org/openEuler-20.03-LTS-SP1/ISO/x86_64/openEuler-20.03-LTS-SP1-x86_64-dvd.iso
新建虚拟机
打开Hyper-V管理器,
ALT+A+Q
进行快速创建虚拟机 ,如图.依次操作:本地安装源 » 更改安装源 » 在弹出目录下选中下载的镜像文件 » 打开 » 更多选项 » 修改名称 » 创建虚拟机
创建成功后,在管理器中出现如图所示虚拟机
修改虚拟机配置
依次操作:右击新建的虚拟机 » 设置 » 安全选项 » 如图取消所有选项[^此项必须关闭,否则不能正常启动] » 保存
安装系统(安全完成后iso文件不可删除,建议事先放在一个合适的位置[^所有目录建议英文,以防意外])
打开虚拟机
依次操作:双击虚拟机 » 在弹出的界面点击启动进入系统引导界面,选择Install openEuler 20.03-LTS-SP1直接安装,点击
Enter
确认 (剩下两项用于检测故障,一般不需要)等待进入安装设置界面,完成用户设置(过程略),开始安装,等待。
用户设置,务必记住密码 (虚拟机打开可能未开启
NUM
小键盘请注意输入根用户的用户名为root)
请注意用户区分大小写
在软件选择中,根据需要选择勾选功能(在不确定的情况下可以全勾上)
安装成功重启系统。设置检查点,如图所示,用于操作错误时进行还原
创建成功后在Hyper-V管理器的检查点中,选择检查点右击应用进行还原
登陆界面如图所示
登入成功如图所示
设置本地源(非everything可跳过)[^SP1版本已默认配置好官方网络源]
以下操作均使用root权限操作演示,普通用户请使用sudo+指令进行操作。
挂载本地源镜像
- 新建一个文件夹用于存放镜像
mkdir /mnt/local
- 挂载镜像
mount /dev/sr0 /mnt/local
[^local为自定义存放位置] - 查看挂载信息
df -h
。可以看到挂载成功
- 新建一个文件夹用于存放镜像
进入源目录:
cd /etc/yum.repos.d/
查看你的源文件名字
ls
。显示openEuler.repo即为我的源文件,若不存在可自行创建此文件。打开源文件进行修改
vi openEuler.repo
- makdir + 目录 为创建文件夹指令
- mnt文件为默认挂载外部文件的文件夹
- mount + 目录1 + 目录2 目录1为镜像地址,目录2为挂载到的位置
- umount + 目录2 可卸载目录
- cd + 空格 + 目录 为切换目录的指令
- 使用tab键可以自动补全指令
- ls意为显示目录下的所有文件
- 系统没有vim,请使用vi进行编辑
添加如下信息:(原有的信息可以留着,或者在每行开头加#注释掉)
[Local] name=Local baseurl=file:///mnt/local/ enabled=1 gpgcheck=1 gpgkey=file:/// mnt/local/RPM-GPG-KEY-openEuler
gpgcheck可设置为1或0,1表示进行gpg(GNU Private Guard)校验,0表示不进行gpg校验,gpgcheck可以确定rpm包的来源是有效和安全的。
gpgkey为签名公钥的存放路径。vi编辑器的简单使用方法(详尽方法请自行百度)
使用上下左右键移动光标
按下
i
键,切换为插入模式 (可在此模式下编辑)按下
ESC
退出插入模式 – INSERT –输入:
q
退出编辑器,且不保存内容输入:
wq
退出编辑器,且保存内容测试更新源
yum makecache
若出现Couldn’t read a file…问题可能是源中的目录配置错误,或没有正确挂载镜像(每一次重启虚拟机都需要重新挂载一次镜像,即输入
mount /dev/sr0 /mnt/local
)
安装图形界面(可以选择GNOME、DDE或UKUI等等,这里用DDE)
安装DDE
dnf install dde -y
使用dnf或者
yum + install + 软件名
进行下载安装(若是本地源则省去了大量下载时间)测试图形界面
startx
,提示错误[^startx为打开图形界面的指令]参考运行startx报错的解决_xilin6664的博客-CSDN博客
dnf groupinstall "X Window System"
再测试
startx
,不报错并闪退。输入init 5
切换至图形界面,成功。图形界面登陆,显示框框乱码,点下面那个(上面是特效模式、下面是简洁模式)
安装中文字体,参考Linux CentOS 7 安装字体库 & 中文字体 - 林台山人 - 博客园 (cnblogs.com)
设置图形界面启动
systemctl set-default graphical.target
使得开机就切换为图形界面删除图形界面自带的openeuler用户,在图形界面中操作如图 [^可选]
再次换yum源(有图形界面后自动挂载,不需要每次开机挂载了)
///mnt/local/改为///run/media/你的用户名/openEuler-20.03-LTS-SP1-x86_64/
开发境配置
C++语言配置
安装
dnf install gcc
,默认安装版本为7.3.0升级至8.2.0[^自选]
新建一个文件夹用于存放软件
mkdir /home/softFi
le,进入文件夹cd /home/softFile
下载安装包
wget http://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz
解压
tar -C /home/softFile -xzf gcc-8.2.0.tar.gz
进入目录
cd /home/softFile/gcc-8.2.0
下载依GCC赖包gmp、mpfr、mpc等
./contrib/download_prerequisites
Linux升级gcc到最新版本–gcc-9.2.0 - 垃圾里的战斗机 - 博客园 (cnblogs.com)
centos7升级gcc_Asimov__的博客-CSDN博客
问题参考。速度慢需要换镜像
创建编译目录
mkdir build
,进入目录cd build
生成Makefile文件
.../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
安装一次性开发工具
yum groupinstall “Development Tools”
编译
make & make install
,❗注意这步时间约2小时重启
reboot
,校验版本gcc -v
Java语言配置
查询可安装的JDK软件包
dnf search jdk | grep jdk
查看命令打印信息,选择安装java-x.x.x-openjdk-devel.aarch64软件包。其中x.x.x为版本号,同时支持openjdk 1.8、openjdk 11和 openjdk latest 版本
安装JDK软件包,以安装java-1.8.0-openjdk-devel软件包为例。
dnf install java-1.8.0-openjdk-devel
查询JDK软件版本
java -version
javac -version
软件安装配置
火狐浏览器dnf install firefox
输入法fcitx
Ibus输入法的DDE桌面环境配置不会弄,遂使用fcitx
安装参考:[21.03 安装DDE及中文输入法0329.md · wzq-hwx/raspberry-test - Gitee.com](https://gitee.com/wzqhwx/raspberry-test/blob/master/21.03 安装DDE及中文输入法0329.md)
- 添加源[^20.03LTS的输入法只有ibus,安装fcitx需要21.03的源]
[OS]
name=OS
baseurl=http://119.3.219.20:82/openEuler:/21.03/standard_$basearch/
enabled=1
gpgcheck=0
[fcitx]
name=fcitx
baseurl=http://121.36.3.168:82/home:/weidong:/branches:/openEuler:/21.03:/Epol/standard_$basearch/
enabled=1
gpgcheck=0
[epol]
name=epol
baseurl=http://119.3.219.20:82/openEuler:/21.03:/Epol/standard_$basearch/
enabled=1
gpgcheck=0
安装fcitx
dnf install fcitx fcitx-qt5 fcitx-cloudpinyin fcitx-sunpinyin fcitx-configtool
imsettiings-switch fcitx systemctl restart lightdm
远程登陆x11vnc和xrdp[^需要新版本的源]
X11vnc安装
dnf install x11vnc
设置vnc密码
x11vnc -storepasswd
开机自启
systemctl enable x11vnc.service
开启服务
systemctl start x11vnc.service
Xrdp前置编译库文件下载
dnf install openssl-devel pam-devel libX11-devel libXfixes-devel libXrandr-devel libjpeg-devel nasm
下载源码
git clone git://github.com/FreeRDP/xrdp.git
,进入目录cd xrdp
生成makefile
./bootstrap
./configure --enable-jpeg --enable-simplesound
编译
make & make install
启动服务、开放端口过程略
Visual Studio Code
安装密钥和仓库
rpm --import https://packages.microsoft.com/keys/microsoft.asc sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
用dnf或者yum安装,安装的是最新的稳定版
dnf check-update(yum check-update)
dnf install code(yum install code)
C++配置
launch.json配置参考
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "g++ - 生成和调试活动文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/Run/${fileBasenameNoExtension}", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}/Run", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: g++ 生成活动文件", "miDebuggerPath": "/bin/gdb" } ] }
tasks.json配置参考
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: g++ 生成活动文件", "command": "/bin/g++", "args": [ "-g", "-std=c++17", "${file}", "-o", "${fileDirname}/Run/${fileBasenameNoExtension}" ], "options": { "cwd": "${workspaceFolder}/Run" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "编译器: /bin/g++" } ] }
Qt Creator
安装xcb库
dnf install libxcb libxcb-devel
官网下载在线安装包Download Qt: Get Qt Online Installer
非root权限打开安装包,进行安装
安装提示Not enough disk space to store temporary files,意为tmp空间不足。
重新挂载
tmpumount -l /tmp
安装完成,测试demo,提示cannot find -IGL
参考运行Qt Creator出现cannot find -lGL的问题多种解决_wangshaobovip的博客-CSDN博客
安装
dnf install mesa-libEGL-devel
Apache
安装
dnf install httpd
启动服务
systemctl start httpd
,开机自启systemctl enable httpd
开放端口
firewall-cmd --permanent --add-service=http
重启防火墙
firewall-cmd --reload
MariaDB
mariadb与mysql都属于同一类数据库管理系统。但是mariadb与mysql在使用范围和使用目的上都有所不同,两者的主要功能都是为了通过开源社区在维护中,从而获得GPL授权许可。从关系上来看,mariadb是属于数据库管理系统的开发和升级版本,它仅仅代表MySQL的一个分支。
Mariadb可以使用mysql的语句
安装
dnf install mariadb mariadb-server
启动服务
systemctl start mariadb
,开机自启systemctl enable mariadb
预配置
mysql_secure_installation
- mysql_secure_installation #直接执行初始化命令,会弹出交互配置信息Enter current
- password for root (enter for none):#初次进入密码为空,直接回车
- New password: #输入要为root用户设置的数据库密码。
- Re-enter new password: #重复再输入一次密码。
- Remove anonymous users? [Y/n] y #删除匿名帐号
- Disallow root login remotely? [Y/n] n #是否禁止root用户从远程登录,安全起见应禁止,这里为做实验方便这里不禁止。
- Remove test database and access to it? [Y/n] y #是否删除test数据库,想留着也随意
- Reload privilege tables now? [Y/n] y #刷新授权表,让初始化后的设定立即生效
登陆
mysql -uroot
添加远程账号
CREATE USER '新建账号名'@'%' IDENTIFIED BY '新密码';
添加权限
grant 权限 on 数据库.数据表 to '用户' @ '主机名';
查看端口
show global variables like 'port';
退出客户端
exit
开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
命令含义:
- –zone #作用域
- –add-port=1935/tcp #添加端口,格式为:端口/通讯协议
- –permanent #永久生效,没有此参数重启后失效
重启防火墙
firewall-cmd --reload
PHP
安装
dnf install php php-mysqlnd php-fpm
启动
php-fpm service php-fpm restart
重启
Apache systemctl restart httpd
新建一个php文件
vi /var/www/html/info.php
<?php phpinfo();?>
修改php.ini,设置
short_open_tag = On
openGauss(单节点)
参考官网教程企业版安装 | openGauss
安装依赖文件
dnf install libaio-devel flex bison ncurses-devel glibc-devel patch openeuler-lsb libnsl
- redhat-lsb-core代替为openeuler-lsblibnsl安装可能出现“(try to add ‘–allowerasing’ to command line to replace conflicting packages or ‘–skip-broken’ to skip uninstallable packages or ‘–nobest’ to use not only best candidate packages”
- 请使用21.03的源进行安装
创建存放GaussDB的文件夹
mkdir -p /opt/software/openGauss
,chmod 755 -R /opt/software
进入文件夹
cd /opt/software/openGauss
下载安装包
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/x86_openEuler/openGauss-2.0.0-openEuler-64bit-all.tar.gz
解压安装包
tar -zxvf openGauss-x.x.x-openEuler-64bit-all.tar.gz
tar -zxvf openGauss-x.x.x-openEuler-64bit-om.tar.gz
创建XML配置文件
vi cluster_config.xml
,以单节点为例,修改中文部分其他配置请看官方文档创建 X M L配置文件 | openGauss
<?xml version="1.0" encoding="UTF-8"?> <ROOT> <CLUSTER> <PARAM name="clusterName" value="数据库名称" /> <PARAM name="nodeNames" value="主机名" /> <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" /> <PARAM name="gaussdbLogPath" value="/var/log/omm" /> <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" /> <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" /> <PARAM name="corePath" value="/opt/huawei/corefile" /> <PARAM name="backIp1s" value="主机ip地址"/> </CLUSTER> <DEVICELIST> <DEVICE sn="主机名"> <PARAM name="name" value="主机名"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="主机ip地址"/> <PARAM name="sshIp1" value="主机ip地址"/> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="访问端口"/> <PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/> <PARAM name="dataNode1_syncNum" value="0"/> </DEVICE> </DEVICELIST> </ROOT>
进入工具脚本目录
cd /opt/software/openGauss/script
交互式创建omm用户和root互信
./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
登陆omm用户
su - omm
安装GaussDB
gs_install -X /opt/software/openGauss/cluster_config.xml
查看数据库状态
gs_om -t status
,cluster_state 显示Normal表示数据库可正常使用。数据库安装完成后,默认生成名称为postgres的数据库,尝试连接
gsql -d postgres -p 你的端口
创建客户端用户
CREATE USER 用户名 PASSWORD '密码';
,退出数据库\q
配置远程访问白名单
gs_guc set -N all -I all -h "host 数据库名 用户名 ip地址/32 sha256"
- -N all表示openGauss的所有主机。
- -I all表示主机的所有实例。
- -h表示指定需要在“pg_hba.conf”增加的语句。
- all表示允许客户端连接到任意的数据库。
- jack表示连接数据库的用户。
- 10.10.0.30/32表示只允许IP地址为10.10.0.30的主机连接。此处的IP地址不能为openGauss内的IP,在使用过程中,请根据用户的网络进行配置修改。
- 32表示子网掩码为1的位数,即255.255.255.255。
- sha256表示连接时jack用户的密码使用sha256算法加密。
修改监听地址(使得可以远程访问)
关闭数据库gs_om -t stop
进入配置目录cd /opt/huawei/install/data/dbn,目录可能略有不同
打开配置文件vi postgresql.conf
修改其中几项
listen_addresses = ‘新监听地址’ [^监听地址改为*则是全开放]
local_bind_address = ‘新监听地址’ port = 新端口
启动数据库gs_om -t start [^暂时不知道如何自启动]