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

news2024/11/28 14:44:31

目录

一、概要

二、介绍

三、下载

四、安装

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.coloradmin.cn/o/1177008.html

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

相关文章

Python小试牛刀:GUI(图形界面)实现计算器UI界面(三)

上一篇:Python小试牛刀:GUI(图形界面)实现计算器UI界面(二)-CSDN博客 回顾前两篇文章,第一篇文章主要实现了计算器UI界面如何布局,以及简单概述Python常用的GUI库。第二篇文章主要实现了计算器UI界面按钮组…

shiro-cve2016-4437漏洞复现

一、漏洞特征 Apache Shiro是一款开源强大且易用的Java安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 因为在反序列化时,不会对其进行过滤,所以如果传入恶意代码将会造成安全问题 在 1.2.4 版本前, 加…

Disk Drill v5.3.1313(数据恢复备份)

Disk Drill是一款功能强大的数据恢复软件,它可以帮助用户恢复已删除、丢失、格式化或损坏的文件,并支持多种存储设备,包括计算机硬盘驱动器、外部硬盘、USB闪存驱动器、内存卡和其他存储介质。它和很多的文件系统都兼容,比如&…

如何快速搭建本地书库结合内网穿透实现公网随时远程访问

Kindle中国电子书店停运不要慌,十分钟搭建自己的在线书库随时随地看小说! 文章目录 Kindle中国电子书店停运不要慌,十分钟搭建自己的在线书库随时随地看小说!1.网络书库软件下载安装2.网络书库服务器设置3.内网穿透工具设置4.公网…

高压放大器在微机电工程中有哪些应用

高压放大器在微机电工程中有许多重要的应用。微机电工程是一种利用微电子加工技术制造微米级或纳米级机械结构并与电子元件集成的领域。高压放大器在MEMS领域发挥着关键的作用,下面将介绍几个高压放大器在MEMS工程中的应用。 MEMS驱动器:MEMS驱动器常用于…

CLIP Surgery论文阅读

CLIP Surgery for Better Explainability with Enhancement in Open-Vocabulary Tasks(CVPR2023) M norm ⁡ ( resize ⁡ ( reshape ⁡ ( F i ˉ ∥ F i ‾ ∥ 2 ⋅ ( F t ∥ F t ‾ ∥ 2 ) ⊤ ) ) ) M\operatorname{norm}\left(\operatorname{resize}\…

Linux认识协议

目录 TCP协议通信流程TCP三次握手数据传输过程四次挥手过程TCP 和 UDP 对比 认识协议协议的概念结构化数据的传输序列化和反序列化 网络版计算器服务端代码面向字节流 协议定制客户端代码编写代码测试守护进程守护进程创建 关于协议制定中使用现成方法实现 TCP协议通信流程 下…

华为H12-831题库

单选)当IS-IS网络中有多条冗余链路时,可能会出现多条等价路由。关于IS-IS网络内的等价路由,以下哪个描述是错误的? A、当组网中存在的等价路由数量大于通过命令配置的数量,且这些路由优先级相同时,优选下一跳设备Sys…

三、机器学习基础知识:Python常用机器学习库(SKlearn)

文章目录 1、Scikit learn简介2、主要步骤3、数据预处理4、模型选择与算法评价 1、Scikit learn简介 Scikit learn 的简称是 SKlearn,专门提供了 Python 中实现机器学习的模块。Sklearn 是一个简单高效的数据分析算法工具,建立在 NumPy、SciPy和 Matplo…

深入研究Android内存

深入研究Android内存 Android应用程序开发时,我们始终意识到自己是Android硬件和操作系统的一部分。 从硬件角度来看,我们可以将Android手机分为不同级别。基本上,我们可以将它们分类为适用于低端硬件或API的入门级、中级和高级硬件-API手机…

Python+Selenium WebUI自动化框架 -- 基础操作封装

前言: 封装Selenium基本操作,让所有页面操作一键调用,让UI自动化框架脱离高成本、低效率时代,将用例的重用性贯彻到极致,让烦人的PO模型变得无所谓,让一个测试小白都能编写并实现自动化。 知识储备前提&a…

WordPress自适应图片主题源码CX-UDY主题模板 带会员积分下载系统

说明:该主题只适用于WordPress 4.8及以下版本,高版本暂不支持,介意的请勿下! 下载地址 qnziyw点cn/cmsmb/wordpress/8084点html

Flutter:安装依赖报错doesn‘t support null safety

项目中需要引用http依赖,在pubspec.yaml文件中添加如下信息: 当同步时,报错信息如下: [myflutter] flutter pub upgrade Resolving dependencies... The current Dart SDK version is 3.1.3. Because myflutter depends on http &…

超简单的Mac双开微信,升级后失败重复操作仍然有效

首先找到安装的微信 应用程序 -> 微信 右键 -> 复制 复制出来效果如下: 在复制出来的微信应用右键-> 点击显示包内容 但是每次打开微信都特别麻烦,这里选择脚本右键制作替身,最后多出来的替身图标,拖拽到桌面就可以了…

6.数据类型与运算符

目录 mysql数据类型 整型数据类型 浮点数类型和定点数类型 1、日期时间类型 1、YEAR 2、TIME 3、DATE类型 4、DATETIME 5、TIMESTAMP 2、字符串类型 1、CHAR 和 VARCHAR类型: 2、TEXT类型 3、ENUM类型 4、SET类型 二进制字符串类型 1、BIT类型 2、…

Java学习 7.Java-方法的使用

一、为什么要使用方法 在编程中,某段功能的代码可能频繁使用,如果在某个位置重新实现一遍,会: 1.使程序变得繁琐 2.开发效率底下,做了大量重复性工作 3.不利于维护,需要改动时,所有用到该段…

Flink SQL DataGen Connector 示例

Flink SQL DataGen Connector 示例 1、概述 使用 Flink SQL DataGen Connector,可以快速地生成符合规则的测试数据,可以在不依赖真实数据的情况下进行开发和测试。 2、使用示例 创建一个名为 “users” 的表,包含 6 个字段:id…

智能井盖生产商家,万宾科技井盖传感器产品详情

市政府管理水平决定城市人民幸福程度,所以在智慧城市推进过程中,市政府也在加快城市信息基础设施建设,希望提高公共服务水平,以此来满足城市居民的需求,进一步推进城市信息化智能化发展。作为城市生命线的一个组成部分…

Docker学习——④

文章目录 1、Docker Image(镜像)2、镜像命令详解2.1 docker rmi2.2 docker save2.3 docker load2.4 docker image inspect2.5 docker history2.6 docker image prune 3、镜像综合实战3.1 离线镜像迁移3.2 镜像存储的压缩与共享 1、Docker Image&#xff…