VMware安装CentOS最小化开发环境导引

目录

一、概要

二、介绍

三、下载

四、安装

4.1 创建虚拟机

4.2 安装CentOS

五、配置网卡

六、配置本地安装源

七、安装软件

7.1 gcc/g++

7.2 C++的atomic库

7.3 java

7.4 Cmake

7.5 MariaDB客户端(兼容mysql)

八、用户配置文件.bash_profile

九、命令速查


一、概要

        本文指引你用虚拟机建立本地开发的最小环境。好程序员和普通程序员的一个很大的区别就是好程序员会建立自己的开发环境,而不是指望别人提供开发环境,更不会坦然和别人共享开发环境。

       共享开发环境的理由很多,比如涉及到很多组件、涉及到第三方系统等等,甚至仅仅因为是小型机。没必要一一破解,因为懒人借口多

       为什么要用最小化开发环境呢?有几个理由:

  1. 本地虚拟机越小运行越顺畅,占用磁盘空间也更少
  2. 重新安装是减少本地磁盘占用的最佳方法,最小化系统安装最快
  3. 大部分情况下目标系统没有图形界面,虚拟机上装图形界面完全是浪费,不装图形界面可以保持操作方式一致
  4. 便于发现依赖项,减少部署时遇到突发状况

二、介绍

        CentOS是较常用的Linux发行版,由于被红帽(我们以前称之为“红帽子”,后来他们自己给自己起名叫“红帽”,不好听)公司收购,已经失去了前景,但是由于既往用户群太大,一时半会也替换不了。

        以前CentOS是作为红帽企业版的下游,在红帽企业版正式版上搞动作,现在CentOS则作为红帽企业版的上游,给红帽企业版做试用测试。

        现在CentOS分为正规发布版和Stream版,前者是我们以前用的,稳定可靠,后者是红帽企业版的测试版,充满了最新特性。

        红帽公司有多损呢?把CentOS7作为长期支持版,支持到2024,CentOS8则更早结束支持,现在已经不提供下载了(我保存有2105版)。很快就只能使用Stream版了。

        不过话说回来,白嫖这种事,咱们也没法理直气壮是不?

三、下载

        CentOS官方站点是www.centos.org,以https访问:

        点击“Download”进入下载页面:

        然后选择CPU架构,大部分用的都是x86-64,点击后进入镜像网站列表:

        随便选一个,比如清华大学的镜像网站:

        

        这么多文件,其实就是对应两个版本:2009和2207-2,每种又分为标准版、完整版和精简版,torrent是BT种子文件,iso是光盘镜像文件。

       不同镜像网站内容都一样,网速不一样,找个速度快的下就可以了。

       建议都下过来保存着,谁也不知道哪天就不给下了。而且很多时候只能用旧版,所以旧版也别删了。

四、安装

        以下用CentOS-7-x86_64-Everything-2207-02.iso来演示安装过程,不同版本安装界面或有不同但原理差不多。

        虚拟机使用的是VMware Workstation 17 Pro。虚拟机用什么没关系,能跑起来就行了。VirtualBox和windows自带的Hyper-v也行,不过实际体验确实VMWare最好。

4.1 创建虚拟机

        从VMware的菜单或主页开始,创建新的虚拟机:

        默认就是“典型”,一般没什么必要自定义:

        通过“浏览”选择iso,看一下能不能自动识别:

        上图表示正确识别了iso文件里的系统,不过我们并不使用默认安装,因为默认安装装的东西可能太多了,所以我们选择“稍后安装操作系统”: 

        在下面选择正确的操作系统:

        输入虚拟机名字和目录,默认位置是在用户的文档目录里,一般我们不这么做,我们会自己管理存放虚拟机的目录,注意这个目录是直接存放虚拟机文件的,所以要一个虚拟机一个目录:

        磁盘容量根据需要,如果没有很多数据的话,20G足够了,最好将虚拟磁盘存储为单个文件,性能高一些,至于提示的“轻松移动”是个什么意思?指的是用4G容量的U盘分多次拷贝吧?干程序的,谁没有几个大号移动硬盘啊,所以这不是个事。

       把磁盘改为单个文件:

        基本配置就差不多了,可以在下面的界面上点“自定义硬件”修改硬件配置:

        内存、处理器一般都要修改,改成满意的值,网络适配器也可以修改,不过本次先用默认的NAT。CD/DVD可以现在挂载,也可以等下再处理。这个界面就是虚拟机配置的一部分,随时可以从菜单或虚拟机页面打开。

        关闭自定义硬件,完成虚拟机设置,然后得到下面的界面:

        点击上面界面的CD/DVD,打开光驱设置:

        选中“启动时连接”,使用ISO文件,浏览选中iso文件,点确定关闭,然后“开启此虚拟机”,第一次开启可能得到如下提示:

        这是因为我的电脑上开启了Hyper-V的原因。点工具栏按钮关闭虚拟机,然后再点“编辑虚拟机设置”,选择“选项”-“高级”-“为启用了Hyper-V的主机禁用测通道缓解”:

        确定后再运行虚拟机就不会有这个提示了。

4.2 安装CentOS

        运行虚拟机,鼠标点进去,用方向键选择第一项“Install CentOS7”,想在虚拟机里面操作,可能需要先用鼠标点一下,想出来,则可能需要按下左边的ctrl+alt:

        选中第一项按下回车:

        敲一下回车,似乎不敲也能自动往下走,直到:

        找到自己想在安装过程中使用的语言,可以用鼠标滚动,注意如果改变了选项这个界面会立即变成那种语言:

        点击“继续”:

        

        稍等片刻安装源和软件选择的感叹号会消失,用鼠标往下滚动可以看到只有安装位置还有感叹号,点击进去,其实也不需要修改什么,直接点击“完成”接受自动分区即可。

       安装位置设置(什么都不用改):

        点击“完成”后返回,然后可以看到“开始安装”按钮可用了:

        然后可以点击“开始安装”,安装过程中可以设置root密码和创建用户:

        密码不够强会要求按两次“完成”:

        配置完用户等待安装完成:

        配置是自动的,很快完成,到这一步就彻底完成了:

        重启后看到登录界面时基本安装就算大功告成:

        不过这个系统只能在控制台登录,因为网卡还没有配置,无法使用telnet/SSH和FTP。

五、配置网卡

        登录root用户。

        查看IP地址:ip addr:

       由于默认网卡是未启动的,所以只能看到每个网卡,记住网卡名字后面用。

       输入cd /etc/sysconfig/network-scripts/

       查看目录下的文件,找到ifcfg-XX,后缀就是网卡名字:

        用vi编辑(命令为“vi 文件名” ),修改ONBOOT为yes:

       保存,重启系统

       Vi操作:按i进入编辑模式,按esc退出编辑模式,输入:wq回车保存并退出

       然后输入命令shutdown -r now,意思是立即重启:

        重启后再次登录查看IP:

        箭头所指处就是IP了,用PuTTY或者别的SSH工具登录:

       再试试WinSCP或者别的FTP工具,登录成功。

       这就算大功告成了,剩下的就是安装自己需要的个别软件和开发使用了。

       动态IP一般不变,如果变了就再查看一下就可以了。

       其实打开网卡这一步在安装时就可以选择了,或者直接选择特定虚拟网卡,预先配置静态IP地址。但是万一操作失误或者出了别的问题,还是要知道如何手动解决的。

六、配置本地安装源

        首先要在虚拟机设置里连接光盘。虽然我们设置了“启动时连接”,但是似乎安装好以后就给推出了,所以可以关掉虚拟机再重新打开,或者在菜单“虚拟机”-“设置”的CD/DVD勾选“已连接”:

        然后挂载光驱,输入命令mount /dev/cdrom /mnt(因为我们已经用客户端连接上,所以后续都用客户端来操作):

       然后就可以访问“/mnt”下的文件了。

       用FTP工具编辑文件/etc/yum.repos.d/CentOS-Media.repo:

        要修改的就是baseurl,选中的部分替换成“mnt”就可以了:

       保存以后就可以用了,仅使用本地安装源用这个命令格式:

yum --disablerepo=\*  --enablerepo=c7-media ……

七、安装软件

       安装好基本系统就可以上传代码进行开发了,然后当然会遇到各种命令不存在、头文件找不到、库文件找不到,这就说明我们缺东西,需要安装和配置。有些人可能觉得完全安装多省力啊,不就是多一点磁盘空间嘛——这种人我们不要理。

7.1 gcc/g++

       默认安装连gcc都没有,用如下命令列出相关软件包:

yum --disablerepo=\*  --enablerepo=c7-media list gcc*

       无脑装可以用这个命令:

yum --disablerepo=\*  --enablerepo=c7-media install gcc*

       会多装很多,也可以精确地一个一个安装。

       Yum会检查依赖关系,最后提示确认安装:

        输入y继续安装:

        又问,继续y,然后就开始安装了,可能需要一些时间,耐心等到最后:

        验证一下:

7.2 C++的atomic库

       列出可安装的清单:

yum --disablerepo=\*  --enablerepo=c7-media list *atomic*

       安装libatomic开头的全部:

yum --disablerepo=\*  --enablerepo=c7-media install libatomic*

7.3 java

       列出可用安装包:

yum --disablerepo=\*  --enablerepo=c7-media list java*

       选一个合适的版本,比如1.8:

yum --disablerepo=\*  --enablerepo=c7-media install java-1.8*

       依赖项非常多,时间会稍微久一点,不过安装源在本地,不用担心:

       注意你的程序可能依赖环境变量JAVA_HOME需要自己去设置具体位置可以搜索相关头文件,如果安装了多个版本,要仔细区分不同的安装。

7.4 Cmake

       列出安装包:

yum --disablerepo=\*  --enablerepo=c7-media list *cmake*

        安装:

yum --disablerepo=\*  --enablerepo=c7-media install cmake.x86_64

7.5 MariaDB客户端(兼容mysql)

       列出软件包:

yum --disablerepo=\*  --enablerepo=c7-media list *maria*

       安装mariadb-devel.x86_64:

yum --disablerepo=\*  --enablerepo=c7-media install  mariadb-devel.x86_64

    安装完就有mysql.h了。但是并不支持MariaDB Connector/C 3.0新增的函数mariadb_get_infov

        所以为了支持这个要去官网下载,用https访问mariadb.com/downloads/connectors/,可以看出来,CentOS只提供CentOS7(x86_64)版本的下载,不提供CentOS8的下载:

       点击下载会进入注册页面,不过不用担心,不是强迫注册,文件已经在下载中,下载到的文件叫做mariadb-connector-c-3.3.7-centos74-amd64.tar.gz。

       上传之后解压缩(tar -zxvf 文件名),得到一个目录。进入目录后手动复制文件:

cp -r include/* /usr/local/include/

cp -r lib/* /usr/local/lib/

       这两个应该就够了,还有man目录不知道放哪里去,也没用过。

       注意头文件和库文件分别在系统目录的子目录mariadb下,引用头文件和链接库文件都要增加配置(共三处,.bash_profile的LD_LIBRARY_PATH,makefile的-I和-L)。

八、用户配置文件.bash_profile

       默认情况下执行命令不会从当前目录搜索,所以要设置一下,在配置文件里增加:

export PATH=.:$PATH

        默认也没有开启coredump文件在配置文件里增加

ulimit -c unlimited顺便说一下CentOS8.2的coredump输出文件不在当前目录下需要额外设置

        除此而外一般还要设置动态库目录:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64/:/usr/local/lib/(这是程序执行时寻找动态链接库的位置,具体位置要看实际情况,编译程序则要在编译配置里面设置,可以和这个配置不同)

        这三句是这个样子的:

     有些写法是先写PATA=…,然后再写export PATH,分成两行,其实没必要,直接“export PATH=…”就可以了。

       修改完.bash_profile需要退出重新登录,或者用“.”命令立即执行:

. ~/.bash_profile

       其中“~”在shell里代表用户的主目录。

九、命令速查

挂载光驱:mount /dev/cdrom /mnt

切换到root:su

从root退回:exit

查找文件:find / -name 文件名(可带*号)

重新执行用户配置文件:. ~/.bash_profile

列出安装包:yum --disablerepo=\*  --enablerepo=c7-media list 包名(可带*号)

安装软件包:yum --disablerepo=\*  --enablerepo=c7-media install 包名(可带*号)

卸载软件包:yum erase 软件包

解压缩:tar -zxvf 文件名.tar.gz(输出到当前目录)

(这里是结束)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion 的提示词使用技巧

推荐Stable Diffusion自动纹理工具: DreamTexture.js自动纹理化开发包 什么是提示语? 提示语是人工智能中的一个重要组成部分,尤其是自然语言处理 (NLP)。在AI自人工智能中,想要获得好的效果,简…

Linux中for循环

for do done 复习知识点:cut命令,id命令,finger命令,for循环 程序如上,-d 接分隔符,-f后的数字表示分隔后的列 从结果可以看出,系统上没有finger这个命令,后面会学到yum安装命令&a…

Leetcode Daily Challenge 1845. Seat Reservation Manager

1845. Seat Reservation Manager 题目要求:初始化一个SeatManager类包括默认构造函数和类函数,所有的seat初始化为true。reverse函数返回最小的true,然后把这个编号的椅子赋值为false。unreverse(seatNumber)函数把编号为seatNumber的椅子恢…

二十、泛型(2)

本章概要 泛型接口泛型方法 变长参数和泛型方法一个泛型的 Supplier简化元组的使用一个 Set 工具 泛型接口 泛型也可以应用于接口。例如 生成器,这是一种专门负责创建对象的类。实际上,这是 工厂方法 设计模式的一种应用。不过,当使用生成…

计算机毕设 基于大数据的社交平台数据爬虫舆情分析可视化系统

文章目录 0 前言1 课题背景2 实现效果**实现功能****可视化统计****web模块界面展示**3 LDA模型 4 情感分析方法**预处理**特征提取特征选择分类器选择实验 5 部分核心代码6 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕…

Springboot自动配置那些事

Spring Boot中默认会扫描的启动类对应的子包下面的类,但是项目引入的其他包下面的类要加入到IOC中必须要有所说明,以下说到的自动配置就是干这个活的,springboot就会把配置中的类加载到ioc容器中。 (1)自动配置注册文…

链表(1)

目录 单链表 主函数test.c test1 test2 test3 test4 头文件&函数声明SList.h 函数实现SList.c 打印SLPrint 创建节点CreateNode 尾插SLPushBack 头插SLPushFront 头删SLPopBck 尾删SLPopFront 易错点 本篇开始链表学习。今天主要是单链表&OJ题目。 单链…

Gitlab服务器配置LDAP指导

ssh登录gitlab服务器:192.168.1.203修改配置文件 sudo su vim /etc/gitlab/gitlab.rb找到ldap_enabled和ldap_servers关键字并修改参数 保存配置文件并重新载入配置 gitlab-ctl reconfigure检查ldap相关配置是否成功(列出前100个用户,若没…

Redis 的几种集群对比

文章目录 一、对比分析二、优缺点对比三、总结 如果您对Redis的了解不够深入请关注本栏目,本栏目包括Redis安装,Redis配置文件说明,Redis命令和数据类型说明,Redis持久化配置,Redis主从复制和哨兵机制,Redi…

[动态规划] (三) LeetCode 746. 使用最小花费爬楼梯

[动态规划] (三)LeetCode 746. 使用最小花费爬楼梯(两种解法) 文章目录 [动态规划] (三)LeetCode 746. 使用最小花费爬楼梯(两种解法)题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值状态表示状态转移方程初始化和填表顺序返回值 代码实现总结 746. 使用最小花费爬…

RK3568平台 内存的基本概念

一.Linux的Page Cache page cache,又称pcache,其中文名称为页高速缓冲存储器,简称页高缓。page cache的大小为一页,通常为4K。在linux读写文件时,它用于缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访…

致:CSGO游戏搬砖人的一封信

最近大家还在坚持操作CSGO游戏搬砖项目不? 这个项目虽是稳赚项目,但也有行情好和行情不好的时候,平台的大中小各种活动的举办,都会对我们的项目造成一定影响。行情的上下波动势必然会影响卡价的波动,影响选品的快慢&a…

树专题 —— 二叉搜索树和中序遍历

大家好,我是 方圆。我准备把树写成一个专题,包括二叉搜索树、前序、中序、后序遍历以及红黑树,我也想试试能不能将红黑树写好。 本篇是关于二叉搜索树,也是所有后续学习的基础,其中会涉及前序、中序、后序遍历&#x…

自动驾驶学习笔记(六)——Apollo安装

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《2023星火培训【感知专项营】》免费课程—>传送门 文章目录 前言 Apollo安装 硬件配置 安装Ubuntu…

代码随想录第四十四天 | 动态规划 完全背包:纯完全背包理论基础(卡码网第52题);应用(注意遍历顺序):组合(518),排列(377)

1、动态规划:完全背包理论基础 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大…

Mysql数据库 9.SQL语言 查询语句 连接查询、子查询

连接查询 通过查询多张表,用连接查询进行多表联合查询 关键字:inner join 内连接 left join 左连接 right join 右连接 数据准备 创建新的数据库:create database 数据库名; create database db_test2; 使用数据库:use 数据…

Day1 ARM基础

【ARM课程认知】 1.ARM课程的作用 承上启下 基础授课阶段:c语言、数据结构、linux嵌入式应用层课程:IO、进程线程、网络编程嵌入式底层课程:ARM体系结构、系统移植、linux设备驱动c/QT 2.ARM课程需要掌握的内容 自己能够实现简单的汇编编…

AI 绘画 | Stable Diffusion 图生图

图生图简介 Stable Diffusion 不仅可以文生图,还可以图生图。文生图就是完全用提示词文本去生成我们想要图片,但是很多时候会有词不达意的感觉。就像我们房子装修一样,我们只是通过文字描述很难表达出准确的想要的装修效果,如果能…

AD9371 官方例程裸机SW 和 HDL配置概述(二)

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…

stm32f103+HC-SR04+ssd1306实现超声波测距

🙌秋名山码民的主页 😂oi退役选手,Java、大数据、单片机、IoT均有所涉猎,热爱技术,技术无罪 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 获取源码,添加WX 目录 前言HC…