镜像下载、域名解析、时间同步请点击阿里云开源镜像站
前情提要: 该方法只适用于Windows10以上版本,Ubuntu直接可在微软商店安装
在这个网页docs.microsoft.com/zh-cn/windo... 可以设置完成前5部,然后根据下面具体操作。
ps:1.在连接中我们要打开powershell,一定要以管理员方式运行
2. 在第4部,有安装wsl2的链接
3. 在第5部,将wsl2设为默认版本
在wsl虚拟机安装ubuntu
1.在控制面板中进行如下操作,打开Windows系统提供的WSL服务。
- 打开控制面板,查看方式为类别;
- 点开程序,点击启动或关闭windows功能;
- 将虚拟机平台和适用于Linux的windows子系统勾选,进行重启
-
后面我们进去下列网址,根据操作,在powershell里一定以管理员是身份打开,下面我就不操作了,里面很详细。(我们看到下载wsl2后下载,安装后进行下列操作)
-
从开始菜单中,找到微软商店:
- 从微软应用商店中,选择Ubuntu20.04版本下载安装:
- 随后会出现Ubuntu系统安装界面:
等待几分钟后,设置用户名username和密码password
最终界面上出现 $ 提示符,说明已经安装好,可以使用了:
修改为阿里镜像源
修改软件镜像源为阿里云镜像源。通常从软件镜像源下载需要在Ubuntu操作系统上安装的软件。将软件镜像源切换为阿里云镜像源,是因为访问国内的镜像源下载软件更快更流畅。
修改软件镜像源为阿里云镜像源参考如下文章:DeepOps的ubuntu小笔记-ubuntu20.04lts更换阿里云的源 – Deep小站 by DOps (mimiq.com.cn)
注:(此步需要使用vi编辑器相关操作,建议先熟悉vi编辑器相关操作)
下列是具体步骤:
1. sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2. sudo vi cp /etc/apt/sources.list
按a 然后下面变insert模式(开发者模式)
3.把下列网址全部复制到vi编译器里
ps:当时vi编译器界面应为没有任何内容(如果有,按d键删除,然后在进行下列操作)
deb mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
然后esc
然后输入:wq
回车,就会回到Ubuntu操作界面
Ps: 如果想检查网址是否都录入在vi编译器里输入:cat /etc/apt/sources.list
4.更新源
sudo apt update
sudo apt-get upgrade
5.安装编译器
软件镜像源修改完成后,就可以在Ubuntu上安装gcc和g++编译器,以及gdb调试器。
在命令行执行如下命令: sudo apt install gcc g++ gdb
安装完成后,可以使用gcc -v命令查询gcc编译器的版本号,如果可以查询出来,说明安装成功。(如下图)
本文转自:https://juejin.cn/post/7096326403485859848#heading-6
Original: https://www.cnblogs.com/helong-123/p/16261352.html
Author: 萌褚
Title: 超详细:如何在windous系统下使用wsl虚拟机安装Ubuntu
相关阅读1
Title: 解决Ubuntu报错 E: Unable to locate package yum
镜像下载、域名解析、时间同步请点击阿里云开源镜像站
开门见山,Ubuntu的包管理工具是apt-get,所以不必再安装yum。如果要安装其他包需要使用apt-get命令。
# 这里以locate命令为例
sudo apt-get install mlocate
下文就是问题解决的全过程了。
1. 报错 E: Unable to locate package yum
我在学习 Linux 命令的时候需要使用 locate 命令,但是 Ubuntu 的系统里没有安装 locate 命令。根据弹幕的指示我使用了如下命令。
# yum安装locate
sudo yum install mlocate
sudo updatedb
locate -h
然后就会一直出现报错信息yum不存在,我寻思这破服务器咋要啥啥没有,现在看看,确实有点憨。那既然没有yum,就安装呗。于是就出现了题中的问题,属实是骚操作。
图1. yum 安装 locate 失败
图2. 用 apt-get 安装 yum 的骚操作
2. 修改sources.list
秉承着求知的心态我查找了相关的报错信息,得到做多的答案就是 update ,各种 update upgrade。
# 包括但不限于以下update方法
sudo apt-get update
sudo apt-get upgrade
sudo apt update
最有用的方法竟然没用了,确实让我很苦恼啊。到底是哪方面出了问题呢?在我掠过无数篇相同的文章之后,找到了解决办法。
# 修改 apt-get 源的配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份
sudo vim /etc/apt/sources.list #修改
sudo apt-get update #更新列表
这里给出部分可用的镜像
阿里云源
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
这里提供vim的一些操作帮助
Shift + I 编辑文档
Esc 退出编辑
:q! 关闭文档
:wq! 保存文档并关闭
图3. 修改之后的 sources.list
修改完毕,再次执行 apt-get install yum,再次报错缺少依赖的库。这个问题好办多了,直接安装。
图4. 安装最后的问题-缺少依赖库
# 依赖库的安装
sudo apt-get install python-sqlitecachec
sudo apt-get install python-urlgrabber
sudo apt-get install python-libxml2
sudo apt-get install python-rpm
sudo apt-get install python-sqlite
sudo apt-get install python-urlgrabber
应该只有这么多需要的,再有其他的再安装。
图5. 这是最后 yum 安装成功的显示
终于安装好了yum,验证一下是否可用。
yum
图6. yum可用
3. 意识到问题没那么复杂
终于搞定了yum,心想这下可以消停了吧。
图7. repos相关的报错,解决应该很麻烦
又出错了,没使用过yum不是很理解,但应该是个很麻烦的问题,又得兜一圈。后来发现了一点Linux的常识。
linux系统基本上分两大类:
1 RedHat系列:Redhat、Centos、Fedora等
2 Debian系列:Debian、Ubuntu等
RedHat 系列:
1 常见的安装包格式 rpm 包,安装rpm包的命令是 "rpm -参数"
2 包管理工具 yum
3 支持tar包
Debian系列:
1 常见的安装包格式 deb 包,安装deb包的命令是 "dpkg -参数"
2 包管理工具 apt-get
3 支持tar包
所以问题最终的解法就是用apt-get 安装mlocate。
# apt-get 安装 mlocate
sudo apt-get install mlocate
图8. 最终的成功
到这里就结束了?
# 卸载yum
sudo apt-get remove yum
图9. 残忍抛弃
总结:Ubuntu使用apt-get就够用了。如果安装需要yum,这里没有解决repos的报错。以后的错误,以后再解决。
本文转自:https://blog.csdn.net/SH_ke/article/details/118496704
Original: https://www.cnblogs.com/helong-123/p/16279776.html
Author: 萌褚
Title: 解决Ubuntu报错 E: Unable to locate package yum
相关阅读2
Title: 白话linux操作系统原理
虽然计算机相关专业,操作系统和计算机组成原理是必修课。但是大学时和真正从事相关专业工作之后,对于知识的认知自然会发生变化。还很有可能,一辈子呆在学校的老师们只是照本宣科,自己的理解也不深。所以今天我站在真正排查解决问题时的需要层面,用白话说一说linux操作系统的那些知识。
本文整体采用的是类似递归调用的递进式结构。
linux内核的本质
简单来说如上图所示,咱们平时的应用程序或者linux命令要和操作系统打交道,都要经过一个叫做linux内核的软件。所有的硬件操作都需要通过他。就像古代女子出嫁,都要有媒人。
本文不是为封装制度正名。想表达的是:媒人最初是一种保护机制。而linux之父林纳斯最初设计linux内核也是设计成一种保护机制。
为什么说linux内核是一种保护机制呢,这要从冯·诺依曼体系结构说起。
冯·诺依曼体系结构
冯·诺依曼体系结构的要点是:
计算机的数制采用二进制。计算机应该按照程序顺序执行。它采用存储程序方式,指令和数据不加区别,混合存储在同一个存储器中。数据和程序在内存中是没有区别的,它们都是内存中的数据。当EIP指针指向哪,CPU就加载哪段内存中的数据。如果是不正确的指令格式,CPU就会发生错误中断。
这里提到计算机是在顺序的执行指令,但是咱们明明可以一边听歌一边敲代码。这个除了在目前多CPU架构下可以实现,之前单CPU下也可以实现。因为有时钟分片。如果没有插入优先级高的任务,cpu会在均匀的执行多项任务分片。因为CPU执行速度快,人可能完全感觉不到实际上是断续执行的。
不过我记得上大学的时候,03年我买了一台笔记本用来打魔兽。当时可是用的市面上的顶配呢。有时候还是会一卡一卡的。可以切身感受到时钟分片。
如果出现错误,可以通过中断来处理。中断也需要等待时钟分片。好在linux内核的分片十分合理,让中断可以及时响应。
在现代CPU的保护模式中,每个内存段都有其描述符。这个描述符记录着这个内存段的访问权限。在《接下来一段时间会对大家进行网络通信的魔鬼训练-理解socket》里我就提到过文件描述符。这里稍详细的解释下。
文件描述符
linux系统中,一切皆文件。文件描述符是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。
文件描述符、文件、进程间的关系
1.描述:
- 每个文件描述符会与一个打开的文件相对应
- 不同的文件描述符也可能指向同一个文件
- 相同的文件可以被不同的进程打开,也可以在同一个进程被多次打开
2.系统为维护文件描述符,建立了三个表
- 进程级的文件描述符表
- 系统级的文件描述符表
- 文件系统的i-node表
3.通过这三个表,认识文件描述符
- 在进程A中,文件描述符1和30都指向了同一个打开的文件句柄(#23),这可能是该进程多次对执行打开操作
- 进程A中的文件描述符2和进程B的文件描述符2都指向了同一个打开的文件句柄(#73),这种情况有几种可能,1.进程A和进程B可能是父子进程关系;2.进程A和进程B打开了同一个文件,且文件描述符相同(低概率事件=_=);3.A、B中某个进程通过UNIX域套接字将一个打开的文件描述符传递给另一个进程。
- 进程A的描述符0和进程B的描述符3分别指向不同的打开文件句柄,但这些句柄均指向i-node表的相同条目(#1936),换言之,指向同一个文件。发生这种情况是因为每个进程各自对同一个文件发起了打开请求。同一个进程两次打开同一个文件,也会发生类似情况。
文件描述符限制
有资源的地方就有战争,文件描述符也是一种资源,系统中的每个进程都需要有文件描述符才能进行改变世界的宏图霸业。世界需要秩序,于是就有了"文件描述符限制"的规定。
如下表:
查看文件描述符限制也可以使用linux命令。
- 找到需要检查的进程id
- 查看该进程的资源,比如fd 是描述符,limits是限制。
- 查看该进程的限制,如图,在 Max open files 那一行,可以看到当前设置中soft最大文件描述符的数量为1024。
在《提供一个排查性能问题的思路》里,我就提到过解决过too many open files问题。咱们今天来实际理解一下。执行下面命令:
这就是一个进程实际占用的文件描述符和文件描述符数。超过系统设定值就会发生too many open files异常。这里大家应该可以切实理解一个文件描述符就是一个文件,文件描述符占用超限就是too many open files啦。
特殊的文件描述符
有三个特殊的文件描述符,分别是0、1、2,对应每个进程的标准输入、标准输出和错误输出。每个进程启动时,操作系统就会给它分配这三个标准的文件描述符。咱们平时用的console控制台就是通过读写这三个文件来实现滴。
linux基础里有介绍怎么重定向,下面一条命令可以将标准输出1和错误输出2重定向到一个文件:
总结
linux的内存分段、中断机制和文件描述符限制都是内核的保护机制。当然这并不全面,还有其他机制。
本篇内容和《网络通信之Session的历史血脉》、《深入理解MQ生产端的底层通信过程-理解channel》、《接下来一段时间会对大家进行网络通信的魔鬼训练-理解socket》、《网络字节序列-大端序和小端序》、《https引起的跨域问题-COE&casestudy》、《懂得三境界-使用dubbo时请求超过问题》、《一个http请求进来都经过了什么(2021版)》是一个系列。等全部串联起来,之前很多让人望而却步的生产问题,会有了大致的排查方向吧~
Original: https://www.cnblogs.com/xiexj/p/15825930.html
Author: 编程一生
Title: 白话linux操作系统原理
相关阅读3
Title: linux配置yum源的三种方法
镜像下载、域名解析、时间同步请点击阿里云开源镜像站
linux配置yum源的三种方法:
1.配置网络yum源
2.通过上传镜像文件配置本地yum源
3.通过连接存储或本地镜像文件配置本地yum源(虚拟机)
配置各种yum源的时候,需要提前知道自己的linux系统是什么版本的,以方便后面的配置
// ##查看系统版本
[root@test ~]#cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.4 (Santiago)
[root@test ~]#
1.配置网络yum源
首先进入到/etc/yum.repos.d/,将此目录下的内容全部挪到一个其他的目录里,这里我将他们挪到新建的/etc/yum.repos.d/old下
// ##获得网络yum的包
curl -o /etc/yum.repos.d/Rhel-Base.repo http://file.kangle.odata.cc/repo/Centos-6.repo
编辑repo文件
将repo文件里的$releasever替换成6(如果操作系统版本是7就替换成7)
用此命令即可替换:
// ##获得网络yum的包
%s/$releasever/6/g
保存退出后
运行yum clean all和yum makecache命令
2.通过上传镜像文件配置本地yum源
首先将自己搞到的镜像文件上传到自己的机器上,我这里上传到了/tmp目录下。
!!!上传的镜像文件要和操作系统的版本一样
创建挂载目录,并将此镜像挂载到目录下
进入到挂载目录下,确认挂载成功
进入到 /etc/yum.repos.d/ 目录下把以前自带的repo文件移走,自己新建一个repo文件,这里我新建的 local-rehl.repo,编辑此文件
填入以下内容:
/mnt/cdrom 为自己刚刚建的挂载目录
yum clean all
yum makecache
这种挂载只是一次性的,重启机器后将会丢失,如果想要开机自动挂载则需要修改 /etc/fstab 文件,添加自己的挂载信息
vi /etc/fstab
3.通过连接存储或本地镜像文件配置本地yum源(虚拟机)
首先将本地或者存储上的镜像文件连接到自己虚拟机
连接完之后,再去虚拟机命令行查看磁盘挂载情况,可以看出已经显示磁盘介质了
将 /dev/sr0 挂载到自己新建的挂载目录 /dev/cdrom 上
检查挂载情况并新建和编写repo文件
// repo文件内容
[RHEL6u3]
name=RHEL 6.4
gpgcheck=0
enabled=1
baseurl=file:///mnt/cdrom
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
保存退出后 yum clean all 和 yum makecache
如果需要一直用的话,可以参照第二种方法里的开启开机自动挂载。
本文转自:https://blog.csdn.net/weixin_44418421/article/details/121765120
Original: https://www.cnblogs.com/helong-123/p/16054732.html
Author: 萌褚
Title: linux配置yum源的三种方法