安裝本地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.\n");
		return;
	}
	
	outfp = fopen("test.txt","w");//打開編碼后保存的文件
	if(outfp == NULL)
	{
		printf("Open File \"test.txt\" For Write Err.\n");
		return;
	}
	EVP_EncodeInit(&ctx);//Base64編碼初始化
	printf("文件\"Test.dat\" Base64編碼后為:\n");
	//循環讀取原文,並調用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\"文件.\n\n\n");
}

//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.\n");
		return;
	}
	outfp = fopen("test-1.dat","wb");//打開解碼后保存的文件
	if(outfp == NULL)
	{
		printf("Open File \"test-1.txt\" For Write Err.\n");
		return;
	}
	EVP_DecodeInit(&ctx);//Base64解碼初始化
	printf("開始對文件\"Test.txt\" Base64解碼...\n\n");
	//循環讀取原文,並調用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\"\n\n\n");
	
}
 
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.\n");
		return;
	}
	
	outfp = fopen("test.txt","w");//打開編碼后保存的文件
	if(outfp == NULL)
	{
		printf("Open File \"test.txt\" For Write Err.\n");
		return;
	}
	EVP_EncodeInit(ctx);//Base64編碼初始化
	printf("文件\"Test.dat\" Base64編碼后為:\n");
	//循環讀取原文,並調用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\"文件.\n\n\n");
}

//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.\n");
		return;
	}
	outfp = fopen("test-1.dat","wb");//打開解碼后保存的文件
	if(outfp == NULL)
	{
		printf("Open File \"test-1.txt\" For Write Err.\n");
		return;
	}
	EVP_DecodeInit(ctx);//Base64解碼初始化
	printf("開始對文件\"Test.txt\" Base64解碼...\n\n");
	//循環讀取原文,並調用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\"\n\n\n");
	
}
 
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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM