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(输出到当前目录)

(这里是结束)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python学习10

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

MySQL进阶之性能优化与调优技巧

数据库开发-MySQL 1. 多表查询1.1 概述1.1.2 介绍1.1.3 分类 1.2 内连接1.3 外连接1.4 子查询1.4.1 介绍1.4.2 标量子查询1.4.3 列子查询1.4.4 行子查询1.4.5 表子查询 2. 事务2.1 介绍2.2 操作2.3 四大特性 3. 索引3.1 介绍3.2 结构3.3 语法 1. 多表查询 1.1 概述 1.1.2 介绍…

红黑树——原理刨析

众所周知,红黑树是从AVLTree树中衍变而来的,所以在学红黑树之前还是要好好的理解一下AVLTree树的原理,为理解红黑树减轻理解负担,好了进入正题。 红黑树原理: 由名可知,红黑树——肯定是与颜色有关的一个树…

gcc -static 在centos stream8 和centos stream9中运行报错的解决办法

gcc -static 在centos stream8 和centos stream9中运行报错的解决办法: 报/usr/bin/ld: cannot find -lc 我们下载glibc-static: 选择x86_64的。 还有一个是libxcrypt-static,依旧在这个网站里搜。 rpm -ivh glibc-static-2.28-239.el8.x…

CCF-CSP真题《202309-2 坐标变换(其二)》思路+python,c++满分题解

想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全 试题编号:202309-2试题名称:坐标变换(其二)时间限制:2.0s内存限制:512.0MB问题描述: 问题描述 对于平面直角坐标…

【CIO人物展】国家能源集团信息技术主管王爱军:中国企业数智化转型升级的内在驱动力...

王爱军 本文由国家能源集团信息技术主管王爱军投递并参与《2023中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业—锐捷网络 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着全球信息化和网络化的进程日益加速,数字化转型已经成为当下各大企业追求的核心…

Scala语言用Selenium库写一个爬虫模版

首先,我将使用Scala编写一个使用Selenium库下载yuanfudao内容的下载器程序。 然后我们需要在项目的build.sbt文件中添加selenium的依赖项。以下是添加Selenium依赖项的代码: libraryDependencies "org.openqa.selenium" % "selenium-ja…

✔ ★【备战实习(面经+项目+算法)】 11.5学习

✔ ★【备战实习(面经项目算法)】 坚持完成每天必做如何找到好工作1. 科学的学习方法(专注!效率!记忆!心流!)2. 每天认真完成必做项,踏实学习技术 认真完成每天必做&…

Linux学习笔记之三(vim编辑器)

目录 1、vim的四种工作模式2、正常模式下的操作指令2.1、进入编辑模式2.2、进入命令行模式2.3、进入视觉模式2.4、光标跳转2.5、复制、粘贴、删除2.6、重复、撤回操作 3、命令行模式下的操作指令 1、vim的四种工作模式 vim的四种工作模式分别是编辑模式(insert mode)、命令行模…

【MongoDB】索引 - 数组字段的多键索引

数组字段创建索引时,MongoDB会为数组中的每个元素创建索引键(多键索引),多键索引支持数组字段的高效查询。 一、准备工作 这里准备一些数据 db.shop.insertMany([{_id: 1, name: "水果店1", fruits: ["apple&qu…

[PyTorch][chapter 61][强化学习-免模型学习1]

前言: 在现实的学习任务中,环境 其中的转移概率P,奖赏函数R 是未知的,或者状态X也是未知的 称为免模型学习(model-free learning) 目录: 1: 蒙特卡洛强化学习 2:同策略-蒙特卡洛强化学习 3&am…

数据分享|查询\下载“省市县乡村“五级矢量数据网

查询和下载"省市县乡村"五级行政区划 背景信息 在更新完CTAmap1.12版本之后,我想继续完善这个系列的数据,把时间范围往前更新是基础,但如何展现多年的数据是个值得解决的问题。 如何展现多个年份的行政区划?我的思考是…