win11的WSL安装以及linux各种环境配置

2 篇文章 0 订阅
1 篇文章 0 订阅

前言

由于前两天我电脑重装了,所以编程环境需要重新配置。
正好,趁此机会,重新梳理下wsl的安装,以及Linux下各种中间件的安装与配置。

准备工作

首先,先确认自己主板是否开启了虚拟化,在任务管理器中,是否能看到虚拟化已启用。不然先去bios里开启虚拟化
在这里插入图片描述

安装wsl

wsl --install -d Ubuntu-20.04

执行安装后,设置账号名和密码,进入下一步。

windows访问wsl和wsl访问windows

在windows中想访问wsl中部署的服务,那十分简单,直接用localhost访问即可
如果想在wsl中访问windows中的服务,则不能使用localhost
我们可以在/etc/resolv.conf文件中,查看windows对应的ip

vim /etc/resolv.conf

在这里插入图片描述

安装JDK,python,gcc,git等基础编程环境

更新apt-get

sudo apt-get update

创建默认目录

刚安装的Ubuntu,用户目录下文件夹是空的,我通常习惯这样建目录,方便文件管理

cd ~ #进入用户目录
pwd	#查看所处位置
ls #查看当前目录
mkdir DOWNLOAD #下载文件夹
mkdir DOCUMENTS #代码、文档等内容
mkdir SDK #一些编程库
mkdir SOFTWARE #第三方软件安装位置

安装JDK

打开windows资源管理器,进入如下界面
在这里插入图片描述
去JDK官网下载JDK
我这里用的JDK11,可以下载这个Linux x64 Compressed Archive
而后,把刚才下载的压缩包拖进图中的目录
为JDK 创建文件夹

cd SDK
mkdir jdk
cd jdk
cd ~/DOWNLOAD/
tar -zxvf jdk-11.0.16.1_linux-x64_bin.tar.gz -C ~/SDK/jdk
cd ~/SDK/jdk
mv jdk-11.0.16.1 11
cd 11/bin
./java --version

能看到如下提示,说明第一步成功

java 11.0.16.1 2022-08-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.16.1+1-LTS-1)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.16.1+1-LTS-1, mixed mode)

而后,开始配置环境变量

cd /etc/profile.d
sudo vim java.sh

而后在java.sh中编辑如下内容

version=11
export JAVA_HOME=/home/hataksumo/SDK/jdk/$version
export PATH=$JAVA_HOME/bin:$PATH

让该shell生效

sudo chmod +x java.sh
source /etc/profile
cd ~
java --version

下面,我们写一个简单的helloworld,尝试下好不好用
一定记住,Java文件要在Linux里创建,编辑可以在windows下做。

mkdir ~/DOCUMENTS/test/java/
cd ~/DOCUMENTS/test/java/
vim HelloWorld.java
public class HelloWorld {
    public static void main(String args[]){
        System.out.println("hello");
    }
}
javac HelloWorld.java
java HelloWorld

安装cpp环境

和之前一样,先创建文件夹,然后编写个测试的hello_world

mkdir ~/DOCUMENTS/test/cpp/
cd ~/DOCUMENTS/test/cpp/
vim HelloWorld.cpp
#include<cstdio>

int main()
{
	printf("hello world\n");
	return 0;
}
sudo apt install g++
g++ HelloWorld.cpp -o HelloWorld
./HelloWorld

安装python环境

首先去官网下载python
然后把下载的文件托到~/DOWNLOAD
安装python编译所需要的库

sudo apt-get install -y build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
sudo apt-get dist-upgrade
sudo apt-get install -y build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev wget
sudo apt install make
cd ~/DOWNLOAD
mkdir ~/SOFTWARE/python
tar -zxvf Python-3.11.0.tgz -C ~/SOFTWARE/python
cd ~/SOFTWARE/python
mv Python-3.11.0 3.11.0
cd 3.11.0
mkdir ~/SDK/python/3.11
./configure --prefix=/home/hataksumo/SDK/python/3.11 --enable-optimizations
sudo make
sudo make install

创建软连接

sudo rm -rf /usr/bin/python3 /usr/bin/python
sudo ln -s /home/hataksumo/SDK/python/3.11/bin/python3 /usr/bin/python3
sudo ln -s /home/hataksumo/SDK/python/3.11/bin/python3 /usr/bin/python
sudo rm -rf /usr/bin/pip3 /usr/bin/pip
sudo ln -s /home/hataksumo/SDK/python/3.11/bin/pip3 /usr/bin/pip3
sudo ln -s /home/hataksumo/SDK/python/3.11/bin/pip3 /usr/bin/pip
python --version
pip --version

创建一个简单hello world看看是否好用

cd ~
mkdir DOCUMENTS/test/python
cd DOCUMENTS/test/python
vim hello_world.py
print("hello world")
python hello_world.py

安装完python后,apt-get可能会出现异常

File "/usr/lib/cnf-update-db", line 8, in <module>

进入user/bin,使用ls python*,查看系统用的python版本,我这里是3.8
修改一下/usr/lib/cnf-update-db文件,把#!/usr/bin/python3改为#!/usr/bin/python3.8
再次运行sudo apt-get update就可以发现没问题了

另一种方法

apt download python3-minimal
sudo apt install --reinstall ./python3-minimal_*.deb
sudo apt install -f

安装mysql

sudo apt install mysql-server
sudo service mysql stop
sudo usermod -d /var/lib/mysql/ mysql
sudo service mysql start

而后,设置mysql的账户。通常,我习惯设置一个root用户用于mysql的管理,设置一个dbMgr用于远程数据库管理,设置一个app账户,用于外部程序的连接。

设置root账户

sudo mysql
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'setRoot@1314';
mysql> flush privileges;
mysql> exit;
sudo mysql_secure_installation

如果设置root密码时,出现ERROR 1396。那有可能当前的root用户不是的host不是%,那就按如下操作

mysql> show databases;
mysql> use mysql;
mysql> update user set host = "%" where user = "root";
mysql> flush privileges;

之后就可以更改了

在mysql安全选择中,可以设置你自己的root密码,密码强度我一般选择为1,删除测试用户,删除test数据库,允许远程访问root
而后,修改mysql配置,让远程可以访问

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address 和 mysqlx-bind-address 全改成 0.0.0.0

sudo service mysql restart

设置dbMgr和app

mysql> create role role_dbMgr;
mysql> create role role_app;
mysql> GRANT ALL ON *.* to role_dbMgr;
mysql> GRANT SELECT,UPDATE,INSERT,DELETE ON *.* to role_app;
mysql> select user,authentication_string,plugin,host from user;
mysql> CREATE USER 'dbMgr'@'%' IDENTIFIED WITH caching_sha2_password by 'qqhilvMgAl@7' DEFAULT ROLE role_dbMgr COMMENT 'database manager';
mysql> CREATE USER 'app'@'%' IDENTIFIED WITH caching_sha2_password by 'ILv0404@1314' DEFAULT ROLE role_app COMMENT 'app user';
mysql> flush privileges;

安装redis

官网下载redis
和之前一样,把下载好的压缩包放到DOWNLOAD目录下

cd ~/DOWNLOAD
mkdir ~/SOFTWARE/redis
tar -zxvf redis-stable.tar.gz -C ~/SOFTWARE/redis
cd ~/SOFTWARE/redis
mv redis-stable current
cd current
sudo make
sudo make install
vim redis.conf

修改以下配置
requirepass ilv0404@1314 #连接密码
daemonize yes #用守护进程启动
logfile /home/hataksumo/SDK/redis/current/log #log文件存放位置
dir /home/hataksumo/SDK/redis/current #指定dump.rdb路径
dbfilename dump.rdb
查找字段时,可以/XXXX,按回车,n向后查找

sudo mkdir /etc/redis
sudo cp redis.conf /etc/redis/6379.conf
sudo cp utils/redis_init_script /etc/init.d/redisd
sudo service redisd start
sudo service redisd stop
sudo service redisd start
redis-cli
auth ilv0404@1314
keys *

由于设置了了redis的密码,故需要魔改/etc/init.d/redisd,不然使用service redisd stop时会报错

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
PASSWD="ilv0404@1314"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -a $PASSWD -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

安装nacos

先去官网下载一下nacos的包
同样的,把该包托到DOWNLOAD目录下

cd ~/DOWNLOAD
mkdir ~/SOFTWARE/nacos
tar -zxvf nacos-server-2.1.2.tar.gz -C ~/SOFTWARE/nacos
cd ~/SOFTWARE/nacos

把nacos的数据库结构导入现有数据库

mysql -u dbMgr -p
mysql> create database nacos;
mysql> use nacos;
mysql> source ~/SOFTWARE/nacos/2.1.2/conf/mysql-schema.sql;
mysql> exit;
mysql -u root -p
mysql> create role role_nacos;
mysql> GRANT ALL ON nacos.* to role_nacos;
mysql> CREATE USER 'nacos'@'%' IDENTIFIED WITH caching_sha2_password by 'nacos@MgAl@7' DEFAULT ROLE role_nacos COMMENT 'nacos manager';

修改nacos的配置application.properties
把数据库相关的配置打开
如果用的mysql8.0,记得把usessh给删掉,因为我们就是要用这个。还有,连接时间改长些,以免出现问题

### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
 db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos@MgAl@7

修改nacos/bin 中的startup.sh

export MODE="standalone"	#改成单体模式,我们开发不需要做集群

查看能否启动成功
在windows下访问localhost:8848/nacos
如果进入登陆界面,账号密码都输出为nacos,即可进入nacos的管理界面,点击登录见到如下界面则宣告完成。

安装docker

docker安装可以先上官网
我用的Ubuntu,我这里只谈Ubuntu的。

查看以下自己Ubuntu的版本:

lsb_release -a

卸载老版本

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

安装

#Set up the repository

#Update the apt package index and install packages to allow apt to use a repository over HTTPS:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

#Add Docker’s official GPG key:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

#Use the following command to set up the repository:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#Install Docker Engine
#Update the apt package index:
sudo apt-get update
#To install the latest version, run:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

纠错

如果出现这种错误:

newaliases: fatal: bad string length 0 < 1: mydomain =
dpkg: error processing package postfix (--configure):
 installed postfix package post-installation script subprocess returned error exit status 75
Errors were encountered while processing:
 postfix

可以用以下方法粗暴解决

sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
sudo mkdir /var/lib/dpkg/info/
sudo apt-get update

建一个开机启动脚本

由于机制原因,wsl开机自启动很麻烦,我也懒得倒腾了,干脆写个init的脚本放用户目录下,每次开机手动调用算了

cd ~
vim init_start.sh

脚本内容

sudo service mysql restart
sudo service redisd restart
#启动nacos
cd ~/SOFTWARE/nacos/2.1.2/bin
./startup.sh

让文件变得可执行

chmod +x init_start.sh

备份wsl

准备工作已经做好,那我们就把wsl的镜像备份以下,以免以后把Ubuntu玩坏了

wsl --export Ubuntu  D:\WSL1\ubuntu-2023-06-10.tar

如果以后玩坏了,就是用这个命令导入

wsl --unregister Ubuntu
wsl --import Ubuntu  D:\WSL1\ubuntu-2023-06-10.tar

好的,这次就先写到这里了。
以后需要安装其他中间件,在其他的帖子里写了

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要进入WSL中的Linux,你可以按照以下步骤进行操作。首先,确保你已经安装WSL并选择了适合你的Linux发行版,比如Ubuntu。接下来,你可以按照以下方法进入Linux: 1. 打开开始菜单,找到你安装Linux发行版,比如Ubuntu。 2. 点击打开Linux发行版的应用程序,这将启动WSL并进入Linux环境。 3. 如果你没有在安装过程中创建过用户名和密码,第一次进入时,系统会要求你设置一个新的用户名和密码。 4. 输入你的用户名和密码,然后按照系统的提示进行操作。 5. 一旦你成功登录,你就可以在Linux环境中使用命令行终端(如ctl)来执行各种操作了。 请注意,进入WSL中的Linux后,你将可以使用Linux的命令和工具,享受到Linux操作系统的便利性和强大功能。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [win10开启wsl系统,在windows上使用Linux](https://blog.csdn.net/fuhanghang/article/details/129304295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Windows下配置wsl使用linux系统(ubuntu版)](https://blog.csdn.net/weixin_49674560/article/details/120683377)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值