玛卡巴卡的卡巴卡玛 发表于 2025-1-26 05:40:04

开辟环境搭建-1:配置 WSL (类 centos 的 oracle linux 官方镜像)

一些 Linux 根本概念

个人理解,并且为了便于理解,大概会存在一些问题,如果有根本上的错误希望各人及时指出 发行版

WSL 的系统是基于特定发行版的特定版本的 Linux
发行版 = 有固定组织维护的、开箱就能用的 Linux


[*]发行版由固定的团队、社区进行维护,出了问题有一定的支持
[*]发行版的内容 = Linux内核 + 指定的一些实用软件组合(如软件包管理软件、可视化界面等)
[*]差异发行版的授权协议有所差异,有的商用也是免费的,有的商用要付费
类比:比如差异厂商的音乐播放器,比如 QQ 音乐、网易云音乐、酷狗音乐等。本质都是音乐文件播放器,但在底子功能上定制了界面、曲库等功能
常见的软件发行版


[*]fedora系:fedora、centos、RHEL、open SUSE、oracle linux …
[*]debian系:debian、ubuntu
以上两大派系的常见差异
参考链接:https://fedoraproject.org/wiki/Comparison_to_other_distributions


[*]系统指令:通用(都是基于 Linux 内核的),比如:cp、mv、rm、sudo、wget等。
[*]一些与【实用软件组合】相关的指令,因为选用的软件差异,则支持的相关指令就不太相同,比如:
fadora 系debian 系安装包格式rpmdeb软件管理在线安装:yum、dnf
本地管理:rpm在线安装:apt-get
本地管理:dpkg 选择建议:建议以实际项目利用的发型版本,确定本身需要的版本,最好是利用相同发行商的。例如:


[*]后端、运维:公司利用 cenots --> 本身利用 fedora 系的发行版,最好也用 centos
[*]学术、机器学习:项目在 ubuntu 上摆设 --> 利用 debian 系的发行版,最好也用 ubuntu
版本

发行版本

就是 LInux 发行版的版本,比如 Ubuntu 22.04、CentOS 7.9 等 差异版本,系统内核版本、附带的软件版本大概差异
类比:比如 Windows 的差异版本,如 Winsdows XP、Windows 7、Windows 10,整体界面、操纵、对软件的兼容性都有差异


[*]差异系统内核版本,运行步伐的效率大概有差异,也大概会有软件在差异内核上运行出问题的环境
[*]附带软件差异,一样平常来说新版软件会修复 bug,并提供新的功能
对于 Linux 【发行版】来说,有大版本和小版本,以下以 CentOS 举例


[*]大版本 = 版本数字整数部门,比如 centos 7.6 中的 6
[*]小版本 = 版本数字小数部门,比如 Ubuntu 22.04 中的 04
[*]这其中有一些版本,作为长期支持版本(进行先容时会有 LTS 相关文字),官方会提供长期的支持
选择原则:建议大版本不变,小版本选最新的 LTS 版本。例如:


[*]项目上说用的是 centos7(大概 centos 7.6),则本身可以用 centos 7.9
[*]项目上说用的时 Ubuntu 24,那本身可以装 ubuntu 24.04 LTS
安装包版本

利用 WSL 进行安装不需要选这个版本 参考资料:https://blog.csdn.net/ZZQHELLO2018/article/details/104027963
以 CentOS 为例:
CentOS尺度安装盘,一样平常下载这个就可以了
里面包罗大量的常用软件,大部门环境下安装时无需再在线下载Minimal精简版本,只包罗焦点组件,体积才仅为几百 MB
如果想要安装其他软件,则这个版本中不包罗,需要联网才能安装Everything顾名思义,包罗了全部软件组件,当然体积也是最大的。
对完备版安装盘的软件进行补充,集成全部软件NetInstall网络安装镜像LiveGNOMEGNOME桌面版LiveKDEKDE桌面版LiveCD光盘上运行的系统,类拟于 WINPE 安装 WSL

以下利用官方的指令进行安装 留意:WSL 官方的安装方式要求能访问 github,最好是找个梯子,否则接下来的安装步骤非常难受

[*] 打开 powershell (管理员)
在 windows 图标右键,点击【终端(管理员)】
https://i-blog.csdnimg.cn/img_convert/c4a8e6c9261318fad5da3b4306fbb6f1.png
之后的命令都在打开的命令行中输入
[*] (非必须)查看指令资助
wsl --help
https://i-blog.csdnimg.cn/img_convert/4827638508f0061e49c7d4b88d9be9cb.png
[*] 查看支持的【发行版】
wsl --list --online
https://i-blog.csdnimg.cn/img_convert/cf5332bc7090e9dc70bf3955c42dbb2d.png
[*] 选择相关版本进行安装
我项目利用的是 centos,应该选择 fedora 系的系统,这里选择 oracle linux
项目上利用的版本是 centos 8,4,这里选择相同大版本的 oracle linux 8.7
wsl --install OracleLinux_8_7
https://i-blog.csdnimg.cn/img_convert/7d92db3452109bdf50271c9f41f74abb.png
输入logout即可退出 WSL,返回 Windows 命令行
https://i-blog.csdnimg.cn/img_convert/b121024436343199235be893345d6044.png

[*]安装时会提示设置用户名、密码,之后登录 WSL 时,默认都会利用这个用户
[*]实行指令的过程中,如果提示“无法剖析服务器名称或地址”,那就说明无法用官方指令进行安装,需要梯子
相关问题参考:https://zhuanlan.zhihu.com/p/568008269

配置 WSL

将 WSL 移动到其他盘

这里将刚才安装的 WSL(名称为`OracleLinux_8_7`)移动到 D 盘下的 WSL_DIR 文件夹中    wsl --manage OracleLinux_8_7 --move D:/WSL_DIR/
https://i-blog.csdnimg.cn/img_convert/2abdc644d96e4453554b27a8914bf051.png
打开对应文件夹,发现 WSL 的磁盘文件(.hdx 文件)已经在对应文件夹中了
https://i-blog.csdnimg.cn/img_convert/4924d22f76c2dacba8895ebef0b7b7c4.png
mobXterm 配置远程连接到 WSL

MobaXterm 默认支持 WSL。在新增连接时,分类选择【WSL】即可 https://i-blog.csdnimg.cn/img_convert/411a9e97de6005c18549f36b38a91cb2.png


[*]如果下拉框没有对应选项,可以直接输入 WSL 的名称
https://i-blog.csdnimg.cn/img_convert/81fc2347a3bdf3f37a1dbd298a7fa38b.png
[*]汉化版 MobaXterm 在这里下载(github,需要梯子):https://github.com/RipplePiam/MobaXterm-Chinese-Simplified
Linux 系统配置

进入 / 退出 Linux 系统

在 Windows 命令行中,输入`wsl`进入默认 WSL 系统中 https://i-blog.csdnimg.cn/img_convert/9131e64d2f01262af0e05d485eba661c.png
在 Linux 命令行中,输入logout退出 Linux 系统,返回 WSL 系统
https://i-blog.csdnimg.cn/img_convert/e736f5065f153e444f8e41925b5643e2.png
设置 root 账户

WSL 默认没有 root 密码,需要进行设置 参考:https://blog.csdn.net/weixin_44953227/article/details/109466253
输入sudo passwd root
,进入设置,要输入两次密码
https://i-blog.csdnimg.cn/img_convert/e375abc2268e9283ae3603b268f8ad65.png
设置当前用户具有 root 权限

oracle linux 已经自动设置了当前用户具有 root 权限(已经加入 wheel 组),但每次操纵还需要密码 下面的流程能实现免密实行代码

[*] 将当前用户加入 wheel 用户组(实际上 oracle linux 已经默认做了)
可以看到,此时 sudo 指令还需要输入当前用户的密码
sudo usermod -aG wheel $USER

[*] 修改wheel用户权限,可以免密运行指令

[*] 打开权限管理配置文件
这里打开文件利用的是vim软件,软件的详细利用方法请自行搜索,这里不再先容
sudo vim /etc/sudoers

[*] 修改以下内容,并强制保存退出
https://i-blog.csdnimg.cn/img_convert/5c52e232efacae965b699c4d265500ba.png

[*] 重新实行步伐,发现已经不需要输入密码了(只需要在指令前加sudo就行)
https://i-blog.csdnimg.cn/img_convert/e4819ce4f651f0dcdc6c0756e09ace7e.png
设置 Linux 软件源(repos)

默认的 WSL 系统软件源从官网获取,需要梯子,国内访问速度很慢
这里利用开源的项目:https://linuxmirrors.cn/
根据官网指南,先切换到 root 用户,然后运行脚本
sudo passwd root
切换到 root 用户,要输入 root 用户密码,若之前没设置过则先按照上一步设置 root 密码
https://i-blog.csdnimg.cn/img_convert/80e027f15f95e027e78a11bfc7c49340.png
根据 linuxmirrors-官网 给的教程,实行命令
https://i-blog.csdnimg.cn/img_convert/2078c9ca59a07d0846891e679d8dd184.png
然后实行脚本即可,这个脚本非常人性化,都是中文,不需要教程了
放点实行截图
https://i-blog.csdnimg.cn/img_convert/28d4a9ce15993e7503f723e9ef3450c3.png
实行结束,测试一下,安装个fastfetch软件(此软件可查看系统概况,软件官网(需要梯子))
https://i-blog.csdnimg.cn/img_convert/e40f5d791f99b9544cab67a244460767.png
发现报错PGP key not found
https://i-blog.csdnimg.cn/img_convert/6018f51f9b10f9de58e0a54153d455bf.png
解决方法,下载 centos、EPEL 官方对应的 PGP 秘钥文件到对应路径,查看解决方法(原贴在 github 需要梯子)
Linux 系统优化

在 WSL 系统中进行配置,这里是在 Oracle Linux 8.7 中进行配置
关闭 SELinux

WSL 的 Oracle Linux 8.7 已经默认关闭,这里跳过
相关文档:https://help.aliyun.com/zh/ecs/use-cases/enable-or-disable-selinux
优化内核参数

按需配置,有相关报错再来配,没问题就不管
参考文章:https://developer.aliyun.com/article/700149
设置登录时显示系统概况


[*]安装fastfetch软件
[*]配置系统登录时显示的内容登录
参考文章:https://cloud.tencent.com/developer/article/1869215
[*] 打开配置文件(要利用 root 权限)
sudo vim /etc/profile

[*] 在末了添加以下内容,保存退出文件
# hello screen
sudo fastfetch
https://i-blog.csdnimg.cn/img_convert/d82289788e502f0e01fbd9d1f2b702c3.png3. 实际效果(每次登录都有以下内容显示) https://i-blog.csdnimg.cn/img_convert/bbc1acc2aa23aeee0247f084b337aa00.png

[*]如果出现显示问题,请查抄 MobaXterm 的连接参数
把这里的连接参数裁成【原生连接器】,然后关闭窗口,重新打开
https://i-blog.csdnimg.cn/img_convert/a85320e8d22e1be8fb65d64da2881b88.png
启用 systemd 支持(支持 systemctl 指令)

默认 WSL 利用 sysV 而不是 systemd 作为进程管理工具 ,默认环境下 systemctl 指令不可用。如下图 https://i-blog.csdnimg.cn/img_convert/52d9aa3a53fbf157f1ba587d369f4b49.png
这对于很多运维人员来说很不方便,也大概导致一些依赖相关指令的脚本或步伐运行失败
微软提供了相关文档:https://learn.microsoft.com/zh-cn/windows/wsl/systemd#how-to-enable-systemd
https://i-blog.csdnimg.cn/img_convert/5eb10f722a3b44da2408a732982034c2.png

[*] 查抄版本(在 windows 命令行中实行命令)
wsl --version
可看到当前 wsl 版本满足要求
https://i-blog.csdnimg.cn/img_convert/b5f58f8c9b22ce7d37dcd2e8c20b81ee.png
[*] 修改配置文件(在 WSL 命令行中实行,这里利用vim作为文本编辑器,留意要 root 权限)
sudo vim /etc/wsl.conf
按照官方教程修改文件,并保存退出(如果没有对应的文件,就大胆的新建一个)
https://i-blog.csdnimg.cn/img_convert/003cccfd29e1d3edd564063ea2128ea6.png
[*] 重启 WSL(先关闭再启动)

[*]关闭:在 windows 命令行中输入wsl --shutdown
[*]启动(WSL 有活动,就会自动启动,这里直接远程连接,就能激活 WSL)

[*] 重启之后,重新输入相关指令,正常运行
https://i-blog.csdnimg.cn/img_convert/bad06beffef24e827bf9b4c27aed51e3.png
修改时间和时区

前提:首先设置启用 systemd,详细看上面的步骤
WSL 中的时间、时区会自动和主机 Windows 上的配置进行同步,无需设置
但如果想配置差异时区、手动设置时间,则可参考以下配置
参考文档:https://blog.csdn.net/wdk996/article/details/135940814

[*] 查看当前时间相关配置:timedatectl指令
https://i-blog.csdnimg.cn/img_convert/30841927ca250378aa7bcb2288384dff.png
[*] 设置时区:这里设为中国时区(Asia/Shanghai)
timedatectl set-timezone "Asia/Shanghai"

[*] 设置时间:利用date -s 时间字符串实现
https://i-blog.csdnimg.cn/direct/f0f830ad1caf473387bf92263fcf000c.png
此时系统级的服务(比如 dnf/yum 等)就能访问外网了,但是 git 还需要额外配置
其他特殊的WSL配置

修改 WSL 的文件位置

WSL 默认将文件放在 C 盘,可利用此指令移动 WSL 到新的磁盘,减少C盘占用 wsl --manage WSL名称 --move 新路径
以下将OracleLinux_8_7这个WSL的系统文件移动到D:/WSL_DIR/路径下(D盘下的WSL_DIR文件夹下)
https://i-blog.csdnimg.cn/img_convert/2abdc644d96e4453554b27a8914bf051.png
挂载 windows 的文件夹到 WSL 中

相当于在 WSL 和 windows 中创建一个共享文件夹,便于共享数据 卸载某一版本的 WSL

留意:卸载对应 WSL 版本之前,需要先制止 WSL
[*] 查询当前已经安装的 WSL
wsl --list -v
https://i-blog.csdnimg.cn/img_convert/c6decc5e768e57446de29aac02b5e93b.png
[*] 制止对应的 WSL
wsl --shutdown WSL名称
https://i-blog.csdnimg.cn/img_convert/3f18027ff280607a0482bb5886fc123a.png
[*] 排除挂载的磁盘
不解挂直接删除也行,WIndows 系统会自动排除挂载的
wsl --umount 磁盘盘符

[*] 卸载对应的 WSL
wsl --unregister WSL名称
https://i-blog.csdnimg.cn/img_convert/cff5bdb3f244b25cda2b5bfb702b54c5.png
开辟运行环境配置

git 安装及代理加速

git 软件设置代理(全局设置)
git config --global http.proxy $http_proxy
git config --global https.proxy $https_proxy
如果要禁用代理
先临时禁用系统代理
unset $http_proxy
unset $https_proxy
永久禁用

[*]进入上面的环境文件~/.bashrc,删除(或注释掉)上面添加的三行,保存退出
[*]利用source ~/.bashrc应用配置文件
[*]利用上面的unset指令删除当前残留的环境变量
再禁用 git 代理
git config --global --unset http.proxy
git config --global --unset https.proxy
留意:上面的操纵需要先禁用 git 代理,再禁用系统代理
配置 Python 开辟环境(uv)

利用uv进行 python 版本、项目、依赖包、假造环境管理
详见文章:配置 python 运行环境(利用 uv 管理 python 项目)
配置 node 前端开辟环境(nvm+node+pnpm)

详见文章:配置 nodejs 开辟环境 (nvm + pnpm)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 开辟环境搭建-1:配置 WSL (类 centos 的 oracle linux 官方镜像)