开发攻城狮必备的Linux虚拟机搭建指南|原创

news2024/12/23 12:36:17

hi,我是阿笠!

这篇文章主要面对的是不常搭建Linux操作系统环境的开发同学,文中介绍了基本操作步骤并且提供了相关云盘资源,都是为了节约时间!

因为从我自身来讲,作为一名后端开发,经常需要练习一些实操技术,比如Redis集群、LVS、Zookeeper等集群环境的搭建,虽然搭建过许多次的环境,但是相隔一段时间还是会忘记一些操作细节,从头开始踩坑或者寻找相关资源非常浪费时间。

(所有文中相关以及常用软件云盘资源已附在文末)

运维大佬求轻喷,如有不准确的地方欢迎指出👏。

内容摘要

  • CentOS和虚拟机安装

  • VirtualBox网络类型介绍

  • CentOS网络配置

  • 基础工具安装

  • yum命令源报错问题

  • JDK8安装

CentOS安装

这里我使用的是Oracle公司的虚拟机VirtualBox,优点是完全免费,缺点不详,这里不做过多介绍。

官网下载链接:https://www.virtualbox.org/wiki/Downloads

软件安装步骤不做介绍,直接默认选项即可。

1、创建虚拟机

1.首先,点击“新建”,新建虚拟机。然后显示如下界面。

78b7d3703fb9987466cb00b48e7fd5a6.png

2.输入名称“CentOS”,点击下一步。

3.选择内存大小,比如可以设为512M,点击“下一步”。

4.选择硬盘大小,默认为8G,点击“创建”。

5.在创建磁盘界面选择“动态分配”。

2、安装linux系统

我们使用的系统版本是 CentOS 6.5。

启动刚创建的虚拟机,加载CentOS镜像。

a37ea5a81f71a50f98ac1ab08922b5a4.png 2d23c041b6cbc081d03a15f495b0b0fd.png

顺利进入Linux安装界面,根据提示安装配置即可。

f4ad08c0729850107270e7077e792a37.png

后续操作皆有中文提示,笔者认为这里没有必要进行详细介绍。

VirtualBox网络介绍

首先介绍一下VirtualBox提供的几种网络接入方式:NAT网络、桥接网络、内部网络、仅主机(Host-Only)网络

NAT网络

NAT:Network Address Translation,网络地址转换

Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Guest的存在。

13b0409da642f22d5e037102a076ef95.png

桥接网络

我们可以理解为通过主机网卡,架设了一条桥,直接连入网络中了。因此,虚拟机就能被分配到一个网络中的独立IP,所有的网络功能完全和在网络中的真实机器一样。

内部网络

虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。虚拟机与主机的关系:不能相互访问,彼此不属于同一个网络,无法相互访问。虚拟机与网络中其他主机的关系:不能相互访问,理由同上。虚拟机与虚拟机的关系:可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。

仅主机(Host-Only)网络

Guest在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。

6cd2d911877ab7f74d7e3b9da755a87b.png

CentOS网络配置

我使用的是配置双网卡的方式,网卡一使用NAT网络、网卡二使用Host-Only模式。因为NAT模式的虚拟机之间可以相互访问,也可以访问外网,但主机却无法访问虚拟机IP,而Host-Only模式则可以访问虚拟机IP,并且这样的好处是NAT模式组建的网路可以模拟出一个只能各个虚拟机内部相互访问的内网环境。

也许你会感觉很奇怪,如果有更好的建议请留言告诉我。

配置网卡

# 编辑网卡1
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 编辑网卡2
vi /etc/sysconfig/network-scripts/ifcfg-eth1

网卡1和2内容如下

# 网卡1
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=10.0.2.101 # 内网ip
NETMASK=255.255.255.0
GATEWAY=10.0.2.1
DNS1=223.5.5.5
DNS2=114.114.114.114

# 网卡2
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.56.101 # 主机可以访问的ip
NETMASK=255.255.255.0
BROADCAST=192.168.56.255

配置好之后重启网络,使配置生效。

# 重启网络
service network restart
# 查看配置的网络信息
ifconfig
# 测试网络是否通畅
# 虚拟机
ping www.baidu.com
#主机
ping 192.168.56.101

其他网络配置

1.设置主机名:

vi /etc/sysconfig/network
以下为配置内容:
NETWORKING=yes
HOSTNAME=node01

2.配置hosts:

设置本机的ip到主机名的映射关系

vi /etc/hosts
10.0.2.101 node01
10.0.2.102 node02

3.关闭防火墙:

service iptables stop
chkconfig iptables off

4.关闭 selinux:

vi /etc/selinux/config
SELINUX=disabled

基本工具安装

1.安装rz、sz工具(上传下载文件需要)

yum -y install lrzsz

2.安装时间同步工具

yum install ntp  -y
vi /etc/ntp.conf
    server ntp1.aliyun.com
service ntpd start
chkconfig ntpd on

yum命令报错解决

近期在使用CentOS6.5版本使用yum命令安装时,会报错找不到yum源,但是在使用CentOS7版本却正常。经过查询,了解到是自2020年11月30日开始,各大开源yum镜像站已经停止维护。

报错内容如下:

YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base

解决办法:

1.寻找可用的centos6的yum源。

2.可以下载一个本地源。

为了方便,这里采用第一种方式。阿里云有centos-vault仓库,该仓库用于存放之前版本centos的包。

操作步骤如下:

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
touch CentOS-Base.repo
vi CentOS-Base.repo

report文件内容如下:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
  
[base]
name=CentOS-6.10 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
  
#released updates
[updates]
name=CentOS-6.10 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
  
#additional packages that may be useful
[extras]
name=CentOS-6.10 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
  
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6.10 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
  
#contrib - packages by Centos Users
[contrib]
name=CentOS-6.10 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6

保存文件,重新输入yum命令,源使用正常。

安装JDK8

安装JDK时我推荐使用RPM包的方式,而不是使用压缩包,这样会省去很多配置上的麻烦,比如会自动生成default路径映射。

输入命令安装

rpm -i jdk-8u281-linux-x64.rpm

安装成功后输入 java -version 检查是否成功。

1f82e4a0a0500e3e823e7796629b74d6.png

因为有些软件会使用到上图所示的 default 路径,而其最终指向的其实还是 /usr/java/jdk1.8 这个路径,为了兼容这种情况,需要配置环境变量。

vi /etc/profile
export  JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin

保存修改,使配置生效

source /etc/profile

资源汇总

最后,汇总一下Linux环境配置所可能用到的云盘资源,(如果资源失效可以后台回复对应关键词)

1.virtualBox

Mac版本云盘链接:https://pan.baidu.com/s/1S47E4Wl7ZqtyF7YzQec5qg  密码: tdq7

2.CentOS 6.5

云盘链接:https://pan.baidu.com/s/1c5uD-Vbb-n6anjhD2a2ugg  密码: bo69

3.CentOS 7

链接: https://pan.baidu.com/s/1SGDs-l_2hwh49w-JexVXeQ  密码: mvpp

4.JDK 8

RPM包云盘链接: https://pan.baidu.com/s/10mCYF2nDFhQ4RAZtD6ILxg 密码: gtri

tar包云盘链接: https://pan.baidu.com/s/1nqR8fhJ4UYkMPDSkjTgFUg  密码: omdc

5.XShell windows版本

链接: https://pan.baidu.com/s/1ae9NzX5ZXeCdrYf2ivVkIQ  密码: 2fuo

6.XFtp windows版

链接: https://pan.baidu.com/s/1FFaIXbAT2SSSOWIvvupylg  密码: ev8q

加入讨论群是升职加薪第一步!

回复:加群

96b5df81e49dbb13e183955afe5219ab.jpeg

点赞是一种美德,如对您有帮助,欢迎评论和分享,感谢阅读!

程序员,停止焦虑吧!|原创

2023-04-24

571511d1d0674c530555225363287176.jpeg

2023年,逆势拿到大厂Offer,我怎么做?|原创

2023-04-22

7870aabb55fd261ea84d5ff58b2fcfdf.jpeg

一文读懂MySQL的BinLog写入机制|原创

2023-04-04

9b763f3bcd81eff46ec99e39053a173b.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/482022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c#笔记-内置类型

内置类型 内置类型是一些有关键字表示的类型。关键字具有非常高的优先级,可以让你在没有别的配置的情况下, 只要用的是c#就可以使用。这也意味着这些类型是非常重要,或是基本的东西。 整数:byte, sbyte, short, ushort, int, ui…

【Python入门】搭建开发环境-安装Pycharm开发工具

前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于Python零基础入门系列,本专栏主要内容为Python基础语法、判断、循环语句、函…

【数据结构】线性表之单链表(讲解实现——带动图理解)

文章目录 单链表单链表主体结构单链表操作函数介绍单链表操作函数实现单链表的初始化:打印函数单链表插入函数:头插尾插指定结点后插入和查找函数单链表结点之前插入数据 单链表删除函数头删尾删指定结点后删除指定结点删除 销毁单链表 文件分类test.cLi…

【STM32】基础知识 第十课 CubeMx

【STM32】基础知识 第十课 CubeMx STM32 CubeMX 简介安装 JAVACubeMX 安装新建 STM32 CubeMX 工程步骤新建工程时钟模块配置GPIO 配置生成源码 main.c STM32 CubeMX 简介 CubeMX (全称 STM32CubeMX) 是 ST 公司推出的一款用于 STM32 微控制器配置的图形化工具. 它能帮助开发者…

「Bug」解决办法:Could not switchto this profil,无法使用节点的解决方法,彻底解决

♥️作者:白日参商 🤵‍♂️个人主页:白日参商主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!! 🎈🎈加油! 加油&#xff01…

二十五、OSPF高级技术——开销值、虚链路、邻居建立、LSA、静默接口

文章目录 调试指令(三张表)1、邻居表:dis ospf peer brief2、拓扑表(链路状态数据库):dis ospf lsdb3、路由表:dis ip routing-table 一、OSPF 开销值/度量值(cost)1、co…

Python基础合集 练习15(内置函数 匿名函数)

匿名函数 以lambda开头表示这是匿名函数,之后的x,y是函数参数 def sub(a,b): return a-b print(sub(10,3)) print(lambda x,y:x-y) sublambda x,y:x-y print(sub(8,4)) def game(math,chinese,english): “”" 功能:计算三科的成绩 math&#xf…

谈谈多线程的上线文切换

大家好,我是易安! 我们知道,在并发程序中,并不是启动更多的线程就能让程序最大限度地并发执行。线程数量设置太小,会导致程序不能充分地利用系统资源;线程数量设置太大,又可能带来资源的过度竞争…

【C++】隐式转换与explicit关键字、运算符及其重载、this关键字

C隐式转换与explicit关键字 隐式构造函数 隐含的意思是不会明确告诉你要做什么 隐式转换 C允许编译器对代码执行一次隐式转换&#xff0c;而不需要使用casr强制转换 例1 #include <iostream> #include <string>class Entity { private:std::string m_Name;in…

13 SQL——数值函数

1 ceil() 数值向上取整&#xff08;前提是小数位不是0&#xff09; select ceil(1.2);2 floor() 数值向下取整&#xff08;前提是小数位不是0&#xff09;select floor(1.8);3 mod() 取&#xff08;x%y&#xff09;的模运算&#xff08;求余数运算&#xff09; select …

10. hr 综合面试题汇总

10. hr 综合面试题汇总 C++软件与嵌入式软件面经解析大全(蒋豆芽的秋招打怪之旅) 本章讲解知识点 1.1 HR心理复盘1.2 HR常问问题——学校的表现怎么样啊?1.3 HR常问问题——了解我们公司吗?1.4 HR常问问题——个人情况1.5 HR常问问题——业余生活1.6 HR常问问题——薪资待…

【源码角度】为什么AQS这样设计

AQS&#xff08;AbstractQueuedSynchronizer&#xff0c;抽象同步队列器&#xff09;是 一个基于 FIFO的双端队列。它分为独占模式和共享模式&#xff0c;本文主要围绕独占模式进行讲解&#xff0c;共享模式的原理和独占模式相似&#xff0c;最后会提一嘴。 场景代入 其实AQS模…

云计算基础(持续更新)

文章目录 云计算云计算的定义第1关&#xff1a;云计算定义第2关&#xff1a;云计算的基本原理 云计算出现的背景第1关&#xff1a;云计算出现的背景第2关&#xff1a;云计算的特征第3关&#xff1a;云计算的优势与劣势 虚拟化的类型第1关&#xff1a;虚拟化的定义第2关&#xf…

第六章结构型模式—代理模式

文章目录 代理模式解决的问题概念结构 静态代理动态代理织入的概念JDK 动态代理JDK 动态代理分析 CGLIB 动态代理 三种代理的对比JDK 和 CGLIB 的区别动态代理和静态代理的对比代理模式的优缺点使用场景 结构型模式描述如何将类或对象按某种布局组成更大的结构&#xff0c;有以…

浅谈springboot启动过程

1. 知识回顾 为了后文方便&#xff0c;我们先来回顾一下spring的一些核心概念。 spring最核心的功能无非是ioc容器&#xff0c;这个容器里管理着各种bean。ioc容器反映在java类上就是spring的核心类ApplicationContext。ApplicationContext有众多的子接口和子类&#xff0c;不…

SAP重复制造入门到放弃系列之基本配置

目录 前言 主要配置清单&#xff1a; REM参数文件&#xff1a; 计划订单计划参数文件 维护输入项参数 维护行选择 确认和物流信息系统全局设置 定义确认处理 操作方法表 其他 前言 重复制造中的配置步骤包括创建重复制造配置文件、为运行计划数量&#xff08;计划订单&a…

Excel技能之打印,19+技巧超省纸

颜色太多&#xff0c;重新打印。 没有边框&#xff0c;重新打印。 少了几列&#xff0c;重新打印。 整个工作表打印出来&#xff0c;拿剪刀把自己需要的数据剪下来&#xff0c;用胶水贴到另一张新的A4纸。 你上班打印资料&#xff0c;浪费了多少纸&#xff0c;认真算一下&…

PyCharm with Remote Interpreters

文章目录 一: 利用 Docker 镜像搭建1.编写 Dockerfile2.构建并配置 Remote Interpreters3.结论0.FAQ 二: 利用 SSH Docker 镜像搭建1.编写 Dockerfile2.构建并运行3.构建镜像4.运行容器5.验证并配置0.FAQ 起因是需要在 M2 芯片的 Mac 上调试基于 Python3.6.1 构建的程序. 而 M…

每天一道算法练习题--Day18 第一章 --算法专题 --- ----------前缀树

前缀树 字典树也叫前缀树、Trie。它本身就是一个树型结构&#xff0c;也就是一颗多叉树&#xff0c;学过树的朋友应该非常容易理解&#xff0c;它的核心操作是插入&#xff0c;查找。删除很少使用&#xff0c;因此这个讲义不包含删除操作。 截止目前&#xff08;2020-02-04&a…

bootloader编写——MCU固件升级系列2(STM32)

本系列将从升级流程、boot代码编写、APP代码编写以及固件打包来介绍&#xff0c;硬件选用STM32F407ZGT6&#xff08;手里只有&#xff09;&#xff0c;来完成这系列教程。 前言 开发STM32固件升级并编写Bootloader时&#xff0c;需要注意以下几个关键点&#xff1a; 熟悉硬件和…