1、RHCE4系统管理第一部分:RPM包安装及管理RPM:红帽子包管理器(RedHat Package Manager)今天我们主要就学习这种包管理方式安装与卸除常用参数:-i,-u,-F,-erpm -i:在该rpm包与该包的旧版本未被安装过的情况下,安装该rpm包。rpm -U:无论系统是否有安装过某rpm包或其旧版本,安装或更新指定的rpm包。rpm -F:仅在系统已安装某rpm包的旧版本rpm包时,更新rpm包。否则不安装。卸除:rpm e 包名(注:去掉.rpm或I386.rmp结尾)在安装的时候要显示进度,就需要加vh参数所以一般安装包就是这样:rpm -ivh 包名字大家先把光盘放入
2、虚拟机的光驱.然后我们到/misc/cd目录: cd /misc/cd5.4版本进入Server目录 RHEL6.0版本进Packages目录大家把vsftpd安装了吧,记住用TAB补全这里提示我的机器这个包已经安装了。然后大家在选个其他包安装下试试哈由于rpm安装依耐关系太郁闷,所以我们要学习yum安装.RPM常用的命令可能会用到的补充参数输出用:-v,-h预设条件:-nodeps,-force重定位:-root参数,允许将一个RPM包安装到mount在当前系统上的另一个Linux系统,或者另一个特定的目录上。当升级内核的时候用这个命令:rpm -Uvh -force 内核文件包还有就是 删
3、除已经安装的包:rpm -e 包名,注意,包名不能写全,去掉后面的.rpm记住删除和查看都用包名字,不需要版本号详细选项:-h (or -hash) 安装时输出hash记号 (#)-test 只对安装进行测试,并不实际安装。-percent 以百分比的形式输出安装的进度。-excludedocs 不安装软件包中的文档文件-includedocs 安装文档-replacepkgs 强制重新安装已经安装的软件包-replacefiles 替换属于其它软件包的文件-force 忽略软件包及文件的冲突-noscripts 不运行预安装和后安装脚本-prefix 将软件包安装到由 指定的路径下-igno
4、rearch 不校验软件包的结构-ignoreos 不检查软件包运行的操作系统-nodeps 不检查依赖性关系-ftpproxy 用 作为 FTP代理-ftpport 指定FTP的端口号为 -oldpackage给已经安装了最高版本的RPM降级大家看看这些参数,有点印象就好了,要用的时候在查RPM包的查询:rpm -q:查询某一个RPM包是否已安装 rpm -qa|grep -i 包名 -建议用这条去查询rpm -qi:查询某一个RPM包的详细信息rpm -ql:列出某RPM包中所包含的文件rpm -qf:查询某文件属于哪一个RPM包rpm -qa:列出当前系统所有已安装的包大家先用rpm -
5、qa查询所有然后找个包,用rpm -ql查看里面的文件然后用rpm -qf查看其中一个文件,得到这个文件是哪个包的/var/log/rpmpkgs相当于rpm -qa输出的结果对一个将要安装的RPM包,我们通常可以用rpm -qpi或rpm -qpl来查询该包的相关信息与内含文件RPM包的校验rpm -V:校验某个RPM包rpm -Va:校验所有已安装的RPM包RPM包的检查rpm -K:检查RPM包的GPG签名rpm -V可以让用户很方便地检查,与安装的时候相比,某RPM包中的文件是否发生了什么变化。在使用rpm -V时,出错提示符号分别表示某部分未通过校验S文件大小M文件权限与类型5MD5
6、求和D设备文件的主、从号码L符号连接文件找不到连接对象U文件的所属用户G文件的所属组T更改时间在使用rpm -K前,需要先从光盘中导入gpg keyrpm -importRPM-GPG-KEY-redhat-release(当将光盘放入光驱中,然后mount到/mnt/cdrom后)YUM客户端及服务器的配置yum,是Yellow dog Updater Modified的简称,起初是由yellow dog这一发行版的开发者Terra Soft研发,那时还叫做yup(yellow dog updater),后经杜克大学的LinuxDuke开发团队进行改进,遂有此名。yum的关键之处是要有可靠的
7、repository,顾名思义,这是软件的仓库,它可以是http或ftp站点,也可以是本地软件池,但必须包含rpm的header,header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务yum有以下特点:可以同时配置多个资源库(Repository)简洁的配置文件(/etc/yum.conf)自动解决增加或删除rpm包时遇到的依赖性问题使用方便保持与RPM数据库的一致性RHEL6.0版本的yum仓库的配置。首先看单机版的配置,也就是说只有一台服务器,我们快速配置yum 5.4版本的单机版客户端也是这样配置1、
8、挂载光驱。 Mount /dev/cdrom /mnt 意思是将光盘挂载到/mnt目录上。2. rootxian2 # cat /etc/yum.repos.d/server.repo 注意必须以rpm结尾 base 仓库的名称name=base 描述名称baseurl=file:/mnt/Server 本地的路径enabled=1 是否开启仓库,1为开启,0为关闭。gpgcheck=1 是否gpg签名检查,1为检查,0为不检查gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 如果上面gpg签名为不检查,那么这里就省略,如果是检查,
9、需要配置。网络配置。首先安装ftp服务1、rootxian2 Packages# rpm -ivh vsftpd-2.2.2-6.el6.i686.rpm Preparing. # 100% 1:vsftpd # 100%2、挂载光驱。 Mount /dev/cdrom /mnt 意思是将光盘挂载到/mnt目录上。3、将/mnt 目录下所有的文件cp到/var/ftp/pub/rhel6/ 目录里面 cp -r /mnt/* /var/ftp/pub/rhel6 注意,需要提前创建rhel6目录。4、启动ftp服务 /etc/init.d/vsftpd start 5、关闭防火墙,/etc/i
10、nit.d/iptables stop 等以后我们学习过防火墙之后,我们就可以配置下防火墙,不用直接关闭了。6、然后客户端需要修改下配置rootxian2 # cat /etc/yum.repos.d/server.repo 注意必须以rpm结尾 base 仓库的名称name=base 描述名称baseurl=ftp:/IP/pub/rhel6/Server 网络路径enabled=1 是否开启仓库,1为开启,0为关闭。gpgcheck=1 是否gpg签名检查,1为检查,0为不检查gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 如
11、果上面gpg签名为不检查,那么这里就省略,如果是检查,需要配置。2、下面我们开始配置RHEL5.4版本的服务器。(1)挂载CD-ROM并安装VSFTPD。(前提是讲RHEL的带RPM包的安装盘放进虚拟CD-ROM)(2)安装成功以后,把光盘里Server目录拷贝到 /var/ftp/pub 目录里将RPM-GPG-KEY-redhat-release 文件拷贝到/var/ftp/pub/Server目录完成之后,(3)安装createrepo工具,然后用这个工具生成YUM通用数据库,记住使用TAB补全路径和命令。然后生成yum数据库 createrepo /var/ftp/pub/Server
12、(4)完成之后,重新启动ftp服务 service vsftpd restart 或者/etc/init.d/vsftpd restart客户端还是跟rhel6.0版本一样,只是替换了baseurl后面的本地路径成网络路径。到此基本大功告成,下面我们进行测试:安装yum install package 安装指定的安装包package1更新和升级yum update 更新所有程序包yum update package 更新指定程序包packageyum check-update 检查可更新的程序包查找和显示yum info 显示安装包信息yum list 显示所有已经安装和可以安装的程序包yum
13、 list 显示指定程序包安装情况yum search 查找软件包 删除程序yum remove | erase package1 删除程序包yum clean headers 清除headeryum clean packages 清除下载的rpm包yum clean all 清除header与rpm包YUM故障排除:1、检查网卡是否启动,检查是否有IP地址,PING自己的IP是否可以接通,是否可以PING通YUM服务器2、检查客户端配置文件是否正确3、检查VSFTPD服务是否开启Linux系统启动流程以及修复系统下面的内容是相当重要的。只要你看懂了系统的启动流程,排错就基本没有多大问题了。计
14、算机启动,上电自检检查BIOS就不说了,所有系统都那样。下面就是LINUX的启动流程:、硬件读取引导扇区、加载LILO或者Grub(一般我们使用的是GRUB,这个是重点)、加载内核(以只读方式挂载)、挂载根文件系统、启动init,一切进程的“父亲”、读取/etc/inittab文件 主要是定义启动的级别,3是字符界面,5是图形化界面。、读取rc.sysinit文件 -系统定义的一些服务。、运行rcX.d下的文件(文件都是init.d下的符号链接)其中有一个xinetd的超级进程,调用/etc/xinetd.conf配置文件,从配置文件中知道读/etc/xinetd.d文件,结束后调用Migge
15、tty、读取/etc/rc.d/rc.local 文件具体步骤在启动的时候大家都能看见BIOS初始化检查外围设备检查启动设备读区MBR启动引导工具引导并运行核心,分为两个独立的阶段:第一阶段:存放在启动扇区第二阶段;/boot目录下的文件第一阶段即BIOS从启动扇区中读入IPL(初始化程序引导工具)这一过程。因为MBR的空间太小,所以启动引导工具往往还需要从其他地方进一步读入数据,即所谓第二阶段。这通常是一个可以做选择的交互界面。在Linux中常用的启动引导工具:grub和lilo在某些时候,WINDOWS支持多系统就需要安装GRUB哈GRUB:Grand Unified Bootloader
16、被广泛地用于替代lilo支持在启动时使用命令行模式支持md5加密保护可以从ext2/ext3、ReiseFS、JFS、FAT、minix及FFS文件系统上启动其配置文件为/boot/grub/grub.conf,更改grub.conf即可立时生效如果硬盘上的MBR被更动过,可以用/sbin/grub-install /dev/hda来重安装grub现在我们打开/boot/grub/grub.conf查看一下哈:vim /boot/grub/grub.conf我们分析一下这个文件哈:# grub.conf generated by anaconda# Note that you do not h
17、ave to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/sda2# initrd /initrd-version.img#boot=/dev/sdadefault=0#default=0表示默认启动第一个系统,如果系统有两个系统
18、是用什么做为分隔符的呢?title就是系统的分隔符,第一个title后面就是第一个系统,用0表示。timeout=5#timout=5,就是默认在启动选择界面停留的时间,单位是秒。等待5秒自动进入默认操作系统splashimage=(hd0,0)/grub/splash.xpm.gz#splashimage是grub启动背景画面,如果是自己写grub.conf文件,这个可以不用写。hiddenmenutitle Red Hat Enterprise Linux Server (2.6.18-53.el5)#title后面就是系统在启动时候显示的名字 root (hd0,0)#root 启动文件
19、所在位置 kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet#kernel 内核所在位置和名字 initrd /initrd-2.6.18-53.el5.img#initrd内核镜象的名字大家记一下自己的系统哈,下面我们做个实验,特别是系统版本不一样的更要记住。把后面三行删掉后保存退出。保存退出,然后重启机器我们重启后系统停在这里了出现刚才的图是正常的,因为我们修改了grub.conf 文件,GRUB找不到启动文件了,所以我们就要手动敲进去第一步:运行root (hd0,0)(这是/boot所在的分区)第二步:执行kernel /b
20、oot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet (用来指定linux内核)第三步:执行initrd /boot/initrd-2.6.18-164.el5.img(用来指定initrd文件)第四步:执行boot看见红色的red hat,就证明你的内核加载成功了好了,启动正常。下面我们来点狠的,这次我们就要把grub.conf删除掉。然后我们重新启动我们的系统好了,和刚才一样的,小问题,大家自己动手,主要想强迫你们记忆下grub.conf的内容注意:运行root或者find /vmlinuz-2.6.18-53el5(可以使用TAB补全
21、),可以搜索vmlinuz所在分区,也就是/boot所在分区第一步:运行root (hd0,0)(这是/boot所在的分区,其中括号内的信息,就是上面命令的回显.)第二步:执行kernel /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet (用来指定linux内核)第三步:执行initrd /boot/initrd-2.6.18-164.el5.img(用来指定initrd文件)第四步:执行boot看到红色的red hat证明我们成功了。OK,启动正常。通过刚才2次小试牛刀,这次我们来点更狠的,我们对自己狠点。来狠滴,我们把/boo
22、t分区里的文件全部删除了掉哦,一个也不剩(不删boot分区,只删除里面文件)rm -rf /boot/*又跑这来了好吧,现在我们把RHEL5的ISO镜像放进去,然后设置从光驱启动,我们要进救援模式了。第一步:将RHEL5安装放入光驱并设置从光驱启动系统第二步:输入linux rescue第三步:这里选择语言哈这里选择美式键盘这里我们不启用网络接口第四步:这步注意,要让系统帮你自动挂载以前的系统,也就是硬盘里的系统好了,现在就正式进入救援模式了。下面我们使用#chroot切换到硬盘的系统具体命令# chroot /mnt/sysimage/然后我们去boot查看缺少了什么文件哈:#cd /boo
23、t & ls查看故障原因,我们发现/boot目录下一个文件也没有了由于boot下面主要是内核和GRUB,所以我们安装这两个东西安装就要先挂载cd ,mount 就是挂载,这个以后会讲mkdir /mnt/cd然后就是安装kernel,在安装内核时会自动生成initrdcd /mnt/cd/Server/rpm -Uvh -force kernel-2.6.18-164.el5.i686.rpm安装好内核后,我们去/boot目录看看内核和initrd已经有了,然后我们需要安装GRUB然而刚安装的GRUB是没有配置文件的,我们可以自己写一个哈,如果你boot分区的grub目录里的grub.conf
24、配置文件丢失或者错误,回出现什么情况呢?系统启动会进入GRUB模式。但是这个不严重,我们只需要给系统提供系统启动的参数就能正常进入系统。我们去看看是不是没有这个文件。那我们就自己写一个哈cd /boot/grub/touch grub.confvim grub.conf启动后就进入这个界面了,这就是因为没有我们刚才说的那个环境图片那个文件的原因。注意哈:kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quietrhgb:表示redhat graphics boot,就是会看到图片来代替启动过程中显示的文本信息,这些信息在启动后用dmesg
25、也可以看到quiet:表示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示OK了,我们去看看grub.conf的配置文件是不是刚才我写的是这样的吧内核模型单片型内核单片型内核将各种硬件支持、网络协议与文件系统管理都编译入一个单一的文件中。模块型内核:模块型内核则允许计算机在使用到某一项功能的时候自动加载,防止了核心臃肿,是大部分情况下的标准构建。默认核心存放路径:/boot核心版本命名规则:主版本号、次版本号、补丁级数 Red Hat附加参数:发布号显示当前系统的内核信息#uname r核心RPM包kernel-.rpm预编译核心及模块kernel-source-.rpm核心源代码,需
26、要人工编译出核心并安装kernel-.src.rpmurlwww.kernel.org/url上发布的原始核心源代码包,需要build出arch包再使用vmlinuz是可引导的、压缩的内核。“vm”代表 “Virtual Memory“, Linux支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。vmlinuz的建立有两种方式:(1) 编译内核时通过“make zImage”创建,zImage适用于小内核的情况,它的存在是为了向
27、后的兼容性。(2) 内核编译时通过命令make bzImage创建 (单独编译内核映像,不编译驱动模块,生成内核映像bzImage)Initrdinitrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题。initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够
28、创建initrd映象文件。这个命令是RedHat专有的。其它Linux发行版或许有相应的命令。这是个很方便的实用程序。#mkinitrd initrd-版本号.img 版本号核心启动流程:检测硬件设备设备驱动初始化将根分区以只读方式挂载载入初始进程(一般是init)init从/etc/inittab中读取数据并初始化init运行级别:系统启动脚本执行运行级别对应目录下的脚本设置热键定义UPS设备脚本在虚拟控制台上循环开启getty进程定义runlevel 5时的X显示管理器init定义了06这7个运行级别,运行级别可以被指定于:系统启动时作为核心加载参数被指定未被指定的情况下,系统启动时从/e
29、tc/inittab中读取在系统运行中,root用户键入init 0-6来指定。用户可以用/sbin/runlevel来查看当前的运行级别系统的运行级别默认情况下为:0:关机1/S/emergency:单用户模式,通常用于维护系统2:多用户模式但无网络3:多用户模式(字符界面)4:用户定义,未定义情况下与3相同5:X11(包括网络)6:系统重启/etc/rc.d/rc.sysinit是系统启动用的脚本,从/etc/sysctl.conf中读取核心参数:设置系统时钟载入keymap激活swap分区设置主机名检查根文件系统并挂载加载Raid设备激活磁盘限额检查并挂载其他文件系统清除失效锁及PID文
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1