博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
部署虚拟环境安装Linux系统
阅读量:5110 次
发布时间:2019-06-13

本文共 10064 字,大约阅读时间需要 33 分钟。

 

目录                                                             

 准备工作

安装linux系统

重置root管理员密码

源代码编译

RPM

YUM软件仓库

配置本地YUM仓库

初始化及启动进程

参考资料

 

准备工作                                                           

  电脑:我的配置是24G内存+i7+512G SSD+1060显卡 (注意:内存一定要8G以上,SSD硬盘)

  CPU需要支持VT(Virtualization Technology,虚拟化技术):VT,指的是让单台计算机能够分割出多个独立资源区,并让每个资源区按照需要模拟出系统的一项技术,其本质就是通过中间层实现计算机资源的管理和再分配,让系统资源的利用率最大化。

  软件:VMware WorkStation Pro 12 (老刘推荐的,RHCE 7.0考试环境用的VM12)

  安装虚拟机:略,网上教程很多

  镜像或工具校验:保证软件包的安全与完整性 (linux的镜像可以去阿里云或网易去下载)

 

安装linux系统                                               

1.虚拟机设置

  新建虚拟机

                       步骤:创建新的虚拟机--新建虚拟机向导--稍后安装操作系统--操作系统“Linux”,版本为“Red Hat Enterprise Linux 7 64位—填写虚拟机名称和安装路径--“最大磁盘大小”设置为20.0GB(默认即可)

虚拟机设置

   步骤:虚拟机设置--硬件--内存(最低1G)--处理器(开启虚拟化功能,核心保持与物理机一致可以提高性能)--光驱(使用IOS镜像)--网络适配器(仅主机模式)--显示器(自动检测)

图2-1 处理器,光驱设置

图2-2 网卡,显示器设置

 

  桥接模式:相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网。

  NAT模式:让VM虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外网,在真机中NAT虚拟机网卡对应的物理网卡是VMnet8。

  仅主机模式:仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅主机模式模拟网卡对应的物理网卡是VMnet1。

  注意:把USB控制器、声卡、打印机设备等不需要的设备统统移除掉。移掉声卡后可以避免在输入错误后发出提示声音,确保自己在今后实验中思绪不被打扰。

 

2.安装linux系统

  进入安装界面,选择Install Red Hat Enterprise Linux 7.0选项来直接安装Linux系统。

   步骤:安装向导的初始化--选择系统的安装语言--安装系统界面--选择系统软件类型--配置网络和主机名--系统安装媒介的选择-- RHEL 7系统的安装界面--设置root管理员的密码--创建本地的普通用户--系统安装完成,重启—启用Kdump服务--系统的欢迎界面

图2-3 安装界面选择

图2-4 安装界面,选择系统软件

图2-5 网络,主机名,硬盘设置

图2-6 系统安装过程,root密码设置

图2-7 启用Kdump服务

图2-8  系统的欢迎界面

 

重置root管理员密码                                       

1.查看当前系统版本

  [root@redhat7 桌面]# cat /etc/redhat-release

  Red Hat Enterprise Linux Server release 7.0 (Maipo)

2.重置root管理员密码(redhat7.0)

  步骤:引导界面通过按键e进入内核编辑界面--在linux16这一行最后插入 rd.break (注意,rd.break前面要加个 \)--ctrl+x重启进入紧急救援模式--依次输入一下命令:

  mount -o remount,rw /sysroot

  chroot /sysroot

  passwd

  touch /.autorelabel

  exit

 reboot

 

图2-9  引导界面

 

图2-10 内核编辑界面

 

图2-11 紧急救援模式界面

图2-12 密码重置,旧密码已失效

 

3.重置root管理员密码(redhat6.4)

  重启系统,按E或ESC进入GRUB启动菜单

  按E进入编辑界面,修改启动参数

 

  编辑内核启动参数;可以在行尾添加single 或 1,表示进入单用户模式;按enter键确认后按b键进入boot模式

  修改系统密码;完成后输入重启命令

  重新登陆系统

 

 

 

 

源代码编译                                                   

  优点:获得最新的软件版本,及时修复bug;根据用户需要,灵活定制软件功能

  应用场合

   安装较新版本的应用程序时;自由软件的最新版本大都以源码的形式最先发布

   当前安装的程序无法满足需要时;编译安装可由用户自行修改、定制功能

   需要为应用程序添加新的功能时;用户可以重新配置、自由修改源代码,加入新的功能

 

1.编译安装源代码包

  完整性校验:md5sum校验工具;计算MD5校验和,并与官方提供的值相比较,判断是否一致;对于下载回来的软件包文件,如果MD5校验和与官方提供的不一致,则说明该软件包在网络传输过程中可能被非法改动过

  对于校验和不一致的软件包,应尽量不要使用,以免带来病毒、木马等不安全因素

 

2.编译安装的基本过程

  环境:需安装支持C/C++程序语言的编译器,如:gcc-4.4.7-4.el6、gcc-c++-4.4.7-4.el6 ;make-3.81-20.el6.……

  步骤1.解包:习惯上将软件包释放到/usr/src/ 目录;解包后的源代码文件位置: /usr/src/软件名-版本号/

  步骤2. 配置:使用源码目录中的configure 脚本;执行“./configure --help” 可以查看帮助;典型的配置选项: --prefix=软件安装目录在linux系统中通过源代码方式安装软件时,也可以将所有程序文件安装到同一个文件夹,如:(/configure—prefix=/usr/local/apache)中。

  步骤3. 编译:执行make 命令

  步骤4. 安装:执行make install 命令

 

图2-13 源代码安装步骤

  在linux中编译源代码需要使用gcc. Make编译环境;从源代码安装应用程序的基本过程包括解包. 配置. 编译. 安装这四个步骤

 

3.configure脚本的通用功能

  configure一般都会接受以下几个编译选项:

  --prefix=          :指定安装的路径

  --sysconfdir=      :指定配置文件目录

  --enable-feature   :启用某个特性

  --disable-fecture   :禁用特性

  --with-function    :启用某功能

  --without-function :禁用某功能

  不同的程序,其configure选项不尽相同,应使用"./configure --help"获取具体的信息。

 

4.源码编译安装须知

  4.1.上面的每一个步骤都不能出错,否则后一步都不能正常进行。

  4.2.上面的步骤每一步如果出现警告或错误,如果步骤未停止而是继续,则属于可忽略错误或警告,不影响安装。但是进行的步骤停止了出现警告或错误,则根据步骤考虑对策。可以使用“$?”命令查看上一个命令是否正确执行,如果是返回0则是正确,其他的则是错误。

  4.3.卸载时,只需删除安装目录即可。

因此,若要便于删除,最好将源码程序安装在/usr/local/对应的目录下。例如apache2安装在/usr/local/apache2下。

  4.4.通过源码编译的软件,需要做一些后续操作,虽非必须,但是都是个性化定制,方便以后的操作。个性化定制大致包括以下几项:

  4.4.1.将安装路径下的命令路径加入到环境变量。

   shell> echo "export PATH=/usr/local/apache/bin:$PATH" > /etc/profile.d/apache.sh

   shell> chmod +x /etc/profile.d/apache.sh

   shell> source /etc/profile.d/apache.sh

  4.4.2.按需求定制服务启动脚本,并考虑是否加入开机启动项。

  4.4.3.输出头文件和库文件。头文件库文件很多时候只是为其他程序提供的,所以可能不输出它们的路径也不会影响该程序的运行。

    # 输出头文件 shell> ln -s /usr/local/apache/include /usr/include/apache

   # 输出库文件

   shell> echo "/usr/local/apache/lib" >/etc/ld.so.conf.d/apache.conf

   shell> ldconfig

  4.4.4.导出man路径 shell> echo  "MANPATH /usr/local/apache/man" >> /etc/man.conf

 

RPM(红帽软件包管理器)                                     

  rpm=源代码+安装规则-->降低软件安装难度(通过将程序源代码与安装规则打包到一起,无需用户手动设置)

  命名格式:软件名-软件版本-发布次数.操作系统类型.硬件架构类型.rpm

 

图2-14 RPM命名格式

 

  1.查询 RPM 软件包信息

  1.1.查询已安装的rpm软件信息

   语法:rpm  -q[子选项]  [软件名]

   用法:结合不同的子选项完成不同查询

    -qa:查看系统中已安装的所有RPM软件包列表

    -qi:查看指定软件的详细信息(--info)

    -ql:查询指定软件包所安装的目录、文件列表(--list)

  1.2.查询文件或目录属于哪个RPM 软件

   语法:rpm  - qf文件或目录名

  1.3.查询未安装的RPM 包文件

   语法:rpm  - qp[子选项]  RPM包文件

  用法: -qpi:通过.rpm包文件查看该软件的详细信息

   -qpl:查看.rpm安装包内所包含的目录、文件列表

 注意:使用rpm命令只能查询通过 RPM方式安装的软件包信息用其他途径安装到系统中的软件包,rpm命令将无法获取相关信息

 

2. 安装、升级、卸载 RPM 软件包

  2.1.安装或升级RPM软件

   语法:rpm  [选项]  RPM包文件...

   用法:-i:安装一个新的rpm 软件包

    -U:升级某个rpm 软件,若原本未装,则进行安装

   -h:以“#”号显示安装的进度

   -v:显示安装过程中的详细信息

  2.2.卸载指定的RPM软件

    语法:rpm  -e  软件名

        --nodeps:删除软件包,即使有依赖关系的软件包任然安装在系统上

        --test:不执行任何动作,只打印输出

 

3. 维护RPM数据库

   linux中保留了当前安装软件的数据库,该数据库位于/var/lin/rpm/目录中。使用file /var/lib/rpm/*命令查看目录内容,可以看到都是二进制形式的散列数据库文件。

查看数字签名

 

4.解决软件包依赖关系

  安装有依赖关系的多个软件时:被依赖的软件包需要先安装;可同时指定多个.rpm 包文件进行安装

  卸载有依赖关系的多个软件时:依赖其他程序的软件包需要先卸载;可同时指定多个软件名进行卸载

  忽略依赖关系:结合“--nodeps”选项,但可能导致软件异常

 

扩展:RPM相关注意事项

  RPM软件包的先决条件可以运用命令行选项—requires和—provides直接查看

   安装vsftpd的先决条件: 命令rpm -q -requires vsftpd

   显示软件包显性提供内容:命令rpm -q -provides vsftpd

   显示vsftpd的安装脚本: 命令rpm -q --scripts vsftpd

   按时间顺序显示系统上安装的RPM包:命令rpm -qa –last

  解决RPM的些常见问题(访问数据库)

   Killall-9 rpm 命令杀死所有当前挂起的rpm进程

   将RPM数据库目录(/var/lib/rpm/)中所有以 _db. 开头的文件删除

注意:RPM安装方式在实际生产环境中并不常用(依赖关系太多,不如yum方便),一般常用的安装方式为源码,yum及脚本安装。

 

YUM软件仓库                                                 

   Yum(全称为 Yellow dog Updater, Modified)是Linux系统中的前端软件包管理器。基于包管理,能够从指定的服务器(YUM软件仓库)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

  简单来说就是:进一步降低软件的安装难度。(通过将大量的、常用的RPM软件包存放到一起,根据用户的需求而进行自动安装)

图2-15 Yum软件仓库技术拓扑

 

  yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

   语法: yum (选项) (参数)

   选项: -y:对所有的提问都回答“yes”;

              -c:指定配置文件;

              -q:安静模式;

   参数: install:                 安装rpm软件包;

              update:                更新rpm软件包;

             check-update:      检查是否有可用的更新rpm软件包;

             remove/erase:      删除指定的rpm软件包;

             list:                        显示软件包的信息;

            search:                  检查软件包的信息;

            info:                      显示指定的rpm软件包的描述信息和概要信息;

            clean:                   清理yum过期的缓存;

            resolvedep:        显示rpm软件包的依赖关系;

            localupdate:       显示本地rpm软件包进行更新;

            deplist:               显示rpm软件包的所有依赖关系。

 

实例,部分常用的命令包括:

  自动搜索最快镜像插件:yum install yum-fastestmirror

  安装yum图形窗口插件:yum install yumex

  查看可能批量安装的列表:yum grouplist

  yum groupinsall group1       #安装程序组group1

  yum check-update           #检查可更新的程序

  yum upgrade package1       #升级指定程序包package1

  yum groupinfo group1        #显示程序组group1信息

  yum search string            #根据关键字string查找安装包

 

配置本地YUM仓库(基于iOS镜像)                                          

 /etc/yum.conf是yum的默认文件,里面配置的也是全局默认项。

   [root@server2 ~]# cat /etc/yum.conf

   [main]

    cachedir=/var/cache/yum/$basearch/$releasever   <==缓存目录

     keepcache=0     <==是否保留缓存,设置为1时,安装包时所下载的包将不会被删除

     debuglevel=2               <==调试信息的级别

    logfile=/var/log/yum.log   <==日志文件位置

    exactarch=1                <==设置为1将只会安装和系统架构完全匹配的包

    obsoletes=1                <==是否允许更新旧的包

    gpgcheck=1                 <==是否要进行gpg check

    plugins=1                  <==是否允许使用yum插件

    installonly_limit=5

    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release  <==指定基准包,yum会根据这个包判断发行版本

 

1.软件仓库的提供方式 :FTP服务:ftp://...... ;HTTP服务:http://...... ;本地目录:file:///.......

2.RPM软件包的来源 :Red Hat发布的RPM包集合 ;第三方组织发布的RPM包集合 ;用户自定义的RPM包集合

3.构建RHEL 6软件仓库(本地源):RPM包来自RHEL 6 DVD光盘,通过FTP、HTTP

或本地目录提供给客户机

 3.1.创建文件夹/cdrom,将光盘文件复制到/cdrom

   [root@RedHat6 桌面]# mkdir /cdrom

   [root@RedHat6 桌面]# cp -rf /media/RHEL_6.4\ x86_64\ Disc\ 1/* /cdrom/   

 3.2.进入/etc/yum.reposd/目录删除原有文件

   [root@RedHat6 桌面]# cd /etc/yum.repos.d/     

   [root@RedHat6 yum.repos.d]# rm -rf *

 3.3.编辑配置文件local.reop

   [root@RedHat6 yum.repos.d]# cat local.repo

   [cdrom]                             <==仓库类别

   name=cdrom                   <==仓库名称(说明)

   baseurl=file:///cdrom        <==URL访问路径

   enabled=1                      <==启用此软件仓库

    gpgcheck=0                   <==验证软件包的签名(1是,0否)

 3.4.获取yum列表:验证yum配置是否成功

   [root@RedHat6 yum.repos.d]# yum clean all            <==清空缓存

   [root@RedHat6 yum.repos.d]# yum makecache            <==生成元数据缓存

   [root@RedHat6 yum.repos.d]# yum list                 <==查询软软件包列表

 

YUM缓存目录:存放下载的软件包、仓库信息等数据,位于/var/cache/yum/$basearch/$releasever

 

初始化及启动过程                                           

Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程。初始化进程作为Linux系统的第一个进程,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。

 

图2-13 linux6.0 初始化过程

1.详细步骤:( centos6)

  1.加载BIOS的硬件信息,获取第一个启动设备

  2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息

  3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

  4.核心执行init程序,并获取默认的运行信息

  5.init程序执行/etc/rc.d/rc.sysinit文件

  6.启动核心的外挂模块

  7.init执行运行的各个批处理文件(scripts)

  8.init执行/etc/rc.d/rc.local

  9.执行/bin/login程序,等待用户登录

  10.登录之后开始以Shell控制主机

 

2.CentOS7与6版本的不同之处:

  6 : grub0.9和upstart

  7 : grub2和systemd

 

3.详细步骤:( centos7)

  1.UEFi或BIOS初始化,运行POST开机自检

  2.选择启动设备

  3.引导装载程序:grub2

  4.加载装载程序的配置文件:/boot/grub2/grub.cfg

  5.加载initramfs驱动模块:/boot/initramfs-3.10.0-693.el7.x86_64.img

  6.加载内核:/boot/vmlinuz-3.10.0-693.el7.x86_64

  7.内核初始化:systemd

  8.执行initrd.target所有单元,包括挂载/etc/fstab

  9.从initramfs根文件系统切换到磁盘根目录

  10.systemd执行默认target配置,配置文件/etc/systemd/system/default.target

  11.systemd执行sysinit.target初始化系统及basic.target准备操作系统

  12.systemd启动multi-user.target下的本机与服务器服务

  13.systemd执行multi-user.target下的/etc/rc.d/rc.local

  14.Systemd执行multi-user.target下的getty.target及登录服务

  15.如果启动图形界面systemd执行graphical需要的服务

 

4. centOS 6 与 centOS 7的区别

 

System V init运行级别

systemd目标名称

作用

0

runlevel0.target, poweroff.target

关机

1

runlevel1.target, rescue.target

单用户模式

2

runlevel2.target, multi-user.target

等同于级别3

3

runlevel3.target, multi-user.target

多用户的文本界面

4

runlevel4.target, multi-user.target

等同于级别3

5

runlevel5.target, graphical.target

多用户的图形界面

6

runlevel6.target, reboot.target

重启

emergency

emergency.target

紧急Shell

表1-1 systemd与System V init的区别和作用

System V init命令(RHEL 6系统)

systemctl命令(RHEL 7系统)

作用

service foo start

systemctl start foo.service

启动服务

service  foo restart

systemctl restart foo.service

重启服务

service foo stop

systemctl stop foo.service

停止服务

service foo reload

systemctl reload foo.service

重新加载配置文件(不终止服务)

service foo status

systemctl status foo.service

查看服务状态

表1-2 systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令

System V init命令(RHEL 6系统)

systemctl命令(RHEL 7系统)

作用

chkconfig foo on

systemctl enable foo.service

开机自动启动

chkconfig foo off

systemctl disable foo.service

开机不自动启动

chkconfig foo

systemctl is-enabled foo.service

查看特定服务是否为开机自动启动

chkconfig --list

systemctl list-unit-files --type=service

查看各个级别下服务的启动与禁用情况

表1-3 systemctl设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令

 

5.centos7相比centos6做了哪些改进?

   5.1.systemd取代了init,成为系统的第一个进程,并且init是串行启动,而systemd是并行启动

   5.2.内核版本的升级,系统安全补丁得到增强。

   5.3.文件系统由ext4升级到xfs,XFS比EXT4更适合大文件处理,但消耗的CPU资源是EXT4的两倍

   5.4.防火墙firewalld代替了iptables

 

6. RHEL 7修改默认级别方法(老刘书上只有一条命令,不是很清楚)

6.1.打开inittab,发现熟悉的inittab中没有了修改默认运行级别,中间没有了熟悉的 id:5:initdefault

 

图2-14 inittabp默认配置

 

   6.2.RHEL7 使用systemd创建符号链接指向默认运行级别

    步骤:

      1.首先删除已经存在的符号链接  rm /etc/systemd/system/default.target

      2.默认级别转换为3(文本模式)  ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

         或者默认级别转换为5(图形模式) ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

      3.重启 reboot

图2-15 默认级别转换测试

 

这里晒下读书笔记

 

参考资料                                                                               

 

  刘瑞       Linux就该怎么学

   

 

  Linux公社

 

转载于:https://www.cnblogs.com/xq777/p/10588342.html

你可能感兴趣的文章
rsync
查看>>
java中的IO操作总结
查看>>
noip模拟赛 党
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Java反射机制及其Class类浅析
查看>>
Postman-----如何导入和导出
查看>>
JBOSS内存参数详解
查看>>
Centos7下关于系统用户密码规则-运维笔记
查看>>
nginx 杂记
查看>>
面试题17:合并两个排序的链表
查看>>
Jmeter HTTPS接口测试的证书导入
查看>>
Hibernate之Hibernate环境搭建
查看>>
php 计算概率,可以任意添加
查看>>
tms320dm6446内核启动分析 分类: DSP ...
查看>>
FZU 1856 The Troop (JAVA高精度)
查看>>
@Override annotation 出错
查看>>
在cnblog中使用syntax方法
查看>>
二分查找原理和实现
查看>>
SpringMVC responseBody注解分析
查看>>
Java基础---集合
查看>>