• 安装本地OpenEuler虚拟机


    一、安装OpenEuler虚拟机

    1.准备镜像

    (1)下载镜像(aarch64的我用不了,只能用x86_64的)

    Files.... (openeuler.org)下载前两个文件

    image-20210429100600055

    (2)校验完整性

    输入以下两条指令,比较输出的结果是否一致(我在wsl Linux中做的)

    cat openEuler-20.03-LTS-SP1-aarch64-dvd.iso.sha256sum
    
    sudo sha256sum openEuler-20.03-LTS-SP1-aarch64-dvd.iso
    

    image-20210429105709023

    2.基于Virtualbox安装OpenEuler(简略)

    (1)选择版本

    选择LinuxOther Linux (64-bit)

    image-20210429110810131

    虽然已经校验了iso的完整性,但仍然报了启动盘的错!我晕了。改为下载x86版本。

    (2)一些需要点选的东西

    换为x86就不报错了,我晕

    image-20210505223002924

    image-20210505223127246

    image-20210505223157408

    image-20210505223310577

    image-20210505224128726

    重启后怎么又开始安装了???

    image-20210505224308937

    关闭虚拟机,删除盘片

    image-20210505224505632

    重启虚拟机,进入

    image-20210505224532291

    登录

    image-20210505224618376

    二、换源

    关机,加一张桥接网卡(个人习惯)

    image-20210505224715155

    查看系统

    uname -a
    

    我的是x86(因为aarch64失败了,离谱)

    image-20210505225008452

    查看原来的源

    cd /etc/yum.repos.d/
     
    cat openEuler_x64_64.repo
    

    vi打开

    vi openEuler_x64_64.repo
    

    粘贴以下内容,注意这里的url要跟你的系统一致

    [base]
    name=openEuler20.03LTS
    baseurl=https://repo.openeuler.org/openEuler-20.03-LTS/everything/x86_64/
    enabled=1
    gpgcheck=0
    

    再查看一下

    cat openEuler_x86_64.repo
    

    image-20210505232759835

    更新源

    yum makecache
    

    查看repolist

    yum repolist
    

    image-20210505225823776

    查看net-tools包

    yum provides net-tools
    

    安装

    yum -y install net-tools
    

    然后可以使用ifconfig了

    image-20210505230254202

    顺便装个vim

    yum install -y vim
    

    image-20210506004036971

    emmmmmm我应该在安装虚拟机之前就给它两张网卡的,这里桥接的网卡没有ip地址...我不会搞了

    关闭虚拟机,在Virtualbox中设置网络,NAT网卡的端口转发规则

    image-20210505230942415

    然后可以用ssh连接了,泪目

    ssh root@127.0.0.1 -p 8888
    

    image-20210505231104839

    三、安装图形化界面UKUI(失败)

    我先快了一下照

    查看python版本,是2.7,太棒了

    image-20210505231250011

    安装字体库

    yum groupinstall -y fonts
    

    然后输入下面这条指令

    systemctl set-default graphical.target
    

    image-20210505232255470

    然后执行这个

    yum install ukui -y
    

    失败了

    image-20210505233031836

    四、安装图形化界面UKUI(失败)

    这次参考官方文档来做

    修改/etc/yum.repos.d/openEuler_x86_64.repo,在文件末尾添加以下内容

    [ukui]
    name=ukui
    baseurl= http://openkylin.com/repo/ukui/x86_64/
    enabled=1
    gpgcheck=0
    priority=1
    

    image-20210505233210776

    yum makecache
    

    运行以下命令

    cd /root/
    wget http://openkylin.com/repo/ukui/x86_64/install_online.sh
    wget http://openkylin.com/repo/ukui/x86_64/reinstall.zip  
    unzip reinstall.zip
    chmod a+x install_online.sh
    ./install_online.sh
    

    结果第二条就因为连不上而失败了,遂放弃

    五、安装图形化界面UKUI(失败)

    这次参考官方文档的离线安装方法

    安装createrepo

    yum install createrepo
    

    image-20210505233811853

    后来把源里上一步添加的[ukui]的部分删掉,更新源,重新试试

    image-20210506062506560

    果然是这破源的问题

    然后百度网盘下载必须的文件

    链接:https://pan.baidu.com/s/1BDUyj5pRssqMOlZ7mfLh7Q 
    提取码:b9o0
    

    emmm然后为了把文件传进openEuler虚拟机,我尝试把这些文件上传到码云上,然后在虚拟机里装个git

    yum install git
    

    image-20210506063401841

    然后git clone下来

    git clone https://gitee.com/realyutian/information-system-design-1218.git
    mv information-system-design-1218/x86_64/ .
    

    (快个照)

    然后把reinstall.zipinstall.sh放到/root目录下,在/目录下新建文件夹RPMS,并将下载的整个RPMS文件夹的内容放入/RPMS目录下

    cd x86_64/
    cp install.sh /root
    cp reinstall.zip /root
    cd /
    mkdir RPM
    cp /root/x86_64/RPMS/* ./RPM
    

    然后改源/etc/yum.repos.d/openEuler_x86_64.repo,把那破[ukui]源再给弄进去

    [ukui]
    name=ukui
    baseurl=file:///RPMS/
    enabled=1
    gpgcheck=0
    priority=1
    

    切换到root目录,以root用户执行以下指令

    cd /root/
    createrepo ./../RPMS
    unzip reinstall.zip
    chmod a+x install.sh
    ./install.sh
    

    .....报了一堆错

    image-20210506064802038

    我把那破源再删掉试试

    报了一堆其他错

    image-20210506065009947

    恢复快照

    六、安装openssl

    查看原本的版本

    image-20210505233854326

    下载1.1.1k版本

    wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
    

    /root处建俩文件夹,分别放OpenSSL的源码和安装路径

    mkdir yutianopensslsrc yutianopenssl
    

    image-20210505234348835

    解压源代码到yutianopensslsrc路径

    tar -zxvf openssl-1.1.1k.tar.gz -C yutianopensslsrc
    

    发现没有tar,然后yum安装又是0速,于是改一下源,把之前添加的ukui源给删掉并更新了源

    image-20210505234800077

    然后可以安装tar了yum install -y tar,然后用tar执行上面的解压指令

    配置编译安装路径/root/yutianopenssl

    cd yutianopensslsrc/openssl-1.1.1k/
    ./config --prefix=/root/yutianopenssl
    

    image-20210505235016035

    编译(很慢)

    make
    make test
    make install
    

    查看安装后的版本

    cd ~/yutianopenssl
    ./bin/openssl version
    

    image-20210506001309528

    编译几个代码试试(代码来自《精通PKI网络安全认证技术与编程实现》,书中给的代码需要去掉windows.h,以及在两个ctx的定义之前加上*)

    注意使用vi而不是vim,vim因为自己的一些高级配置,导致粘贴进去的代码反而格式会出错

    #include <stdio.h>
    #include <string.h>
    #include <openssl/evp.h>
    #include <openssl/x509.h>
    
    //Base64编码
    void tEVP_Encode()
    {
    	EVP_ENCODE_CTX *ctx;				//EVP编码结构体
    	unsigned char in[1024];			//输入数据缓冲区
    	int inl;						//输入数据长度
    	char out[2048]={0};				//输出数据缓冲区
    	int outl;						//输出数据长度
    	FILE *infp;						//输入文件句柄
    	FILE *outfp;					//输出文件句柄
    
    	infp = fopen("test.dat","rb");//打开待编码的文件
    	if(infp == NULL)
    	{
    		printf("Open File "Test.dat"  for Read Err.
    ");
    		return;
    	}
    	
    	outfp = fopen("test.txt","w");//打开编码后保存的文件
    	if(outfp == NULL)
    	{
    		printf("Open File "test.txt" For Write Err.
    ");
    		return;
    	}
    	EVP_EncodeInit(&ctx);//Base64编码初始化
    	printf("文件"Test.dat" Base64编码后为:
    ");
    	//循环读取原文,并调用EVP_EncodeUpdate计算Base64编码
    	while(1)
    	{
    		inl = fread(in,1,1024,infp);
    		if(inl <= 0)
    			break;
    		EVP_EncodeUpdate(&ctx,out,&outl,in,inl);//编码
    		fwrite(out,1,outl,outfp);//输出编码结果到文件
    		printf("%s",out);
    	} 
    	EVP_EncodeFinal(&ctx,out,&outl);//完成编码,输出最后的数据。
    	fwrite(out,1,outl,outfp);
    	printf("%s",out);
    	fclose(infp);
    	fclose(outfp);	
    	printf("对文件"Test.dat" Base64编码完成,保存到"test.txt"文件.
    
    
    ");
    }
    
    //Base64解码
    void tEVP_Decode()
    {
    	EVP_ENCODE_CTX *ctx;				//EVP编码结构体
    	char in[1024];					//输入数据缓冲区
    	int inl;						//输入数据长度
    	unsigned char out[1024];		//输出数据缓冲区
    	int outl;						//输出数据长度
    	FILE *infp;						//输入文件句柄
    	FILE *outfp;					//输出文件句柄
    	
    	infp = fopen("test.txt","r");//打开待解码的文件
    	if(infp == NULL)
    	{
    		printf("Open File "Test.txt"  for Read Err.
    ");
    		return;
    	}
    	outfp = fopen("test-1.dat","wb");//打开解码后保存的文件
    	if(outfp == NULL)
    	{
    		printf("Open File "test-1.txt" For Write Err.
    ");
    		return;
    	}
    	EVP_DecodeInit(&ctx);//Base64解码初始化
    	printf("开始对文件"Test.txt" Base64解码...
    
    ");
    	//循环读取原文,并调用EVP_DecodeUpdate进行Base64解码
    	while(1)
    	{
    		inl = fread(in,1,1024,infp);
    		if(inl <= 0)
    			break;
    		EVP_DecodeUpdate(&ctx,out,&outl,in,inl);//Base64解码
    		fwrite(out,1,outl,outfp);//输出到文件
    	} 
    	EVP_DecodeFinal(&ctx,out,&outl);//完成解码,输出最后的数据。
    	fwrite(out,1,outl,outfp);
    	fclose(infp);
    	fclose(outfp);	
    	printf("对文件"Test.txt" Base64解码完成,保存为"test-1.dat"
    
    
    ");
    	
    }
     
    int main()
    {
     
    	tEVP_Encode();
    	tEVP_Decode();
    	
    	return 0;
    }
    

    编译

    gcc -o testbase64 main.c -I /root/yutianopenssl/include -L /root/yutianopenssl/lib -lcrypto -lpthread -finput-charset=GBK -fexec-charset=UTF-8
    

    报错了,我后悔选择安装了中文,这报错信息根本百度不到,英文的话大概是fatal error一类的吧

    image-20210506001901302

    重新编译

    gcc -o testbase64 main.c -I /root/yutianopenssl/include -L /root/yutianopenssl/lib -lcrypto -lpthread
    

    image-20210506002608741

    这里需要用到一个二进制文件test.dat

    我在windows中用010editor打开书提供的这个文件

    然后File→Export Hex导出16进制文本

    image-20210506003646713

    在openEuler中用vim新建文件test.dat

    切换为16进制

    :%!xxd
    

    粘贴之前导出的16进制文本

    34 12 01 00 D8 91 B9 87 20 3E DF 43 BE 98 5C 97
    EC CE D2 62 E9 F0 33 AE BB CC 00 00 00 00 00 00
    CA CD 00 00 28 92 3F DD FE DD 33 A7 01 00 00 00
    CB CD 00 00 C5 57 AE 64 15 5D A9 C8 01 00 00 00
    CC CD 00 00 0D 5E 77 70 F8 DD 9B 58 01 00 00 00
    CD CD 00 00 7B 31 6C 6E 5B 6C 1E DE 01 00 00 00
    CE CD 00 00 73 7E 7C 05 F8 2B F0 15 01 00 00 00
    

    然后变回去,保存退出

    :%!xxd -r
    :wq
    

    image-20210506005530086

    执行编译生成的testbase64

    image-20210506005948801

    怎么又报错了啊我傻了

    重新改一下main.c

    #include <stdio.h>
    #include <string.h>
    #include <openssl/evp.h>
    #include <openssl/x509.h>
    
    //Base64编码
    void tEVP_Encode()
    {
    	EVP_ENCODE_CTX *ctx;
            ctx = EVP_ENCODE_CTX_new();	//EVP编码结构体
    	unsigned char in[1024];			//输入数据缓冲区
    	int inl;						//输入数据长度
    	char out[2048]={0};				//输出数据缓冲区
    	int outl;						//输出数据长度
    	FILE *infp;						//输入文件句柄
    	FILE *outfp;					//输出文件句柄
    
    	infp = fopen("test.dat","rb");//打开待编码的文件
    	if(infp == NULL)
    	{
    		printf("Open File "Test.dat"  for Read Err.
    ");
    		return;
    	}
    	
    	outfp = fopen("test.txt","w");//打开编码后保存的文件
    	if(outfp == NULL)
    	{
    		printf("Open File "test.txt" For Write Err.
    ");
    		return;
    	}
    	EVP_EncodeInit(ctx);//Base64编码初始化
    	printf("文件"Test.dat" Base64编码后为:
    ");
    	//循环读取原文,并调用EVP_EncodeUpdate计算Base64编码
    	while(1)
    	{
    		inl = fread(in,1,1024,infp);
    		if(inl <= 0)
    			break;
    		EVP_EncodeUpdate(ctx,out,&outl,in,inl);//编码
    		fwrite(out,1,outl,outfp);//输出编码结果到文件
    		printf("%s",out);
    	} 
    	EVP_EncodeFinal(ctx,out,&outl);//完成编码,输出最后的数据。
    	fwrite(out,1,outl,outfp);
    	printf("%s",out);
    	fclose(infp);
    	fclose(outfp);	
    	printf("对文件"Test.dat" Base64编码完成,保存到"test.txt"文件.
    
    
    ");
    }
    
    //Base64解码
    void tEVP_Decode()
    {
    	EVP_ENCODE_CTX *ctx;
            ctx = EVP_ENCODE_CTX_new();			//EVP编码结构体
    	char in[1024];					//输入数据缓冲区
    	int inl;						//输入数据长度
    	unsigned char out[1024];		//输出数据缓冲区
    	int outl;						//输出数据长度
    	FILE *infp;						//输入文件句柄
    	FILE *outfp;					//输出文件句柄
    	
    	infp = fopen("test.txt","r");//打开待解码的文件
    	if(infp == NULL)
    	{
    		printf("Open File "Test.txt"  for Read Err.
    ");
    		return;
    	}
    	outfp = fopen("test-1.dat","wb");//打开解码后保存的文件
    	if(outfp == NULL)
    	{
    		printf("Open File "test-1.txt" For Write Err.
    ");
    		return;
    	}
    	EVP_DecodeInit(ctx);//Base64解码初始化
    	printf("开始对文件"Test.txt" Base64解码...
    
    ");
    	//循环读取原文,并调用EVP_DecodeUpdate进行Base64解码
    	while(1)
    	{
    		inl = fread(in,1,1024,infp);
    		if(inl <= 0)
    			break;
    		EVP_DecodeUpdate(ctx,out,&outl,in,inl);//Base64解码
    		fwrite(out,1,outl,outfp);//输出到文件
    	} 
    	EVP_DecodeFinal(ctx,out,&outl);//完成解码,输出最后的数据。
    	fwrite(out,1,outl,outfp);
    	fclose(infp);
    	fclose(outfp);	
    	printf("对文件"Test.txt" Base64解码完成,保存为"test-1.dat"
    
    
    ");
    	
    }
     
    int main()
    {
     
    	tEVP_Encode();
    	tEVP_Decode();
    	
    	return 0;
    }
    

    编译

    gcc -o testbase64 main.c -I /root/yutianopenssl/include -L /root/yutianopenssl/lib -lcrypto -lpthread
    

    运行

    ./testbase64
    

    image-20210506010312966emmmmm好像我生成test.dat的方法还是不对不过这次代码好歹能运行了

    第一次的代码是我根据书改的,第二次是老师的博客里提供的,我重新写一个文件main2.c存第一次的代码,用diff比较一下文件差异

    diff main.c main2.c
    

    image-20210506010618385

    所以差异就是要把ctx之前的&给去掉

    七、安装图形化界面GNOME(失败)

    记得快照

    yum install gnome-shell gdm gnome-session gnome-terminal -y
    systemctl enable gdm.service                  //设置gdm自启
    systemctl set-default graphical.target        //修改启动级别为图形化
    
    wget https://zycxzx.obs.cn-east-3.myhuaweicloud.com/Xsession
    mv Xsession /etc/gdm/
    chmod -R 777 /etc/gdm/Xsession               //这个操作的原因是openEuler源里的gdm文件Xsession有问题,从网上下一个替换即可,否则图形化无法正常登录
    

    额,报错了

    image-20210506004256760

    重启一下试试,果然无法登录,输入密码后会跳回来(啊这

    image-20210506004502884

    恢复之前的快照

    八、安装图形化界面GNOME

    换源(第一条根据自己的系统修改,我是x86)

    wget -O /etc/yum.repos.d/openEuler_x86_64.repo https://repo.huaweicloud.com/repository/conf/openeuler_x86_64.repo
    
    yum clean all
    
    yum makecache
    

    image-20210506070550716

    yum install gnome-shell gdm gnome-session gnome-terminal -y
    systemctl enable gdm.service                  //设置gdm自启
    systemctl set-default graphical.target        //修改启动级别为图形化
    

    image-20210506070637002

    wget https://zycxzx.obs.cn-east-3.myhuaweicloud.com/Xsession
    mv Xsession /etc/gdm/
    chmod -R 777 /etc/gdm/Xsession               //这个操作的原因是openEuler源里的gdm文件Xsession有问题,从网上下一个替换即可,否则图形化无法正常登录
    

    image-20210506070743694

    重启一下

    image-20210506071002426

    NB

    终于可以开启我的桥接网卡了

    image-20210506071047809

    先快个照

    九、安装增强功能

    点击安装增强功能结果

    image-20210506071418810

    先关机

    image-20210506071608625

    迷惑行为,而且你再点一下关机的话它又会重置这60s

    结果倒计时结束了也关不掉,于是我强制退出

    尝试添加虚拟光驱

    image-20210506072439201

    image-20210506072451455

    启动虚拟机,安装增强功能

    image-20210506072651866

    先弹出

    image-20210506072824506

    再点一次安装增强功能

    cd /run/media/yutian1218/VBox_GAs_6.1.18/
    ./VBoxLinuxAdditions.run
    

    image-20210506073256330

    又失败了

    参考

    为 openEuler 安装 桌面环境图形化界面【ukui】_m0_51378263的博客-CSDN博客_openeuler安装图形界面

    UKUI for openEuler released!

    openEuler虚拟机配置yum源_想练武,就得下功夫-CSDN博客

    openEuler_UKUI_install_cn.md · openKylin/ukui-issues - Gitee.com

    openEuler_UKUI_offline_install_cn.md · openKylin/ukui-issues - Gitee.com

    [日常] 为OpenEuler安装图形界面_A land whole of flowers.-CSDN博客_openeuler安装图形界面

    openeuler 20.03 安装图形化界面_鲲鹏论坛_华为云论坛 (huaweicloud.com)

    STAY. you have NO WHERE TO GO. try to live it well. for you have only ONE life.
  • 相关阅读:
    libev & libevent简介
    MyEclipse10+Flash Builder4+BlazeDS+Tomcat7配置J2EE Web项目报错(一)
    增加表空间大小的四种方法
    JavaScript获取某年某月的最后一天
    Not in 改写左连接不需要关注连接列是否重复数据
    自连接
    左链接,右连接
    In,内链接和空值
    HighCharts基本折线图
    NetBeans运行项目报错
  • 原文地址:https://www.cnblogs.com/hardcoreYutian/p/14733685.html
Copyright © 2020-2023  润新知