一 应用程序与系统命令的关系 1 文件位置 系统命令:一般在/bin和/sbin目录中,或为Shell内部指令 应用程序:通常在/usr/bin和/usr/sbin目录中 2 主要用途 系统命令:完成对系统的基本管理工作,例如IP配置工具 应用程序:完成相对独立的其他辅助任务,例如网页浏览 3 适用环境 系统命令:一般只在字符操作界面中运行 应用程序:根据实际需要,有些程序可在图形界面中运行 4 运行格式 系统命令:一般包括命令字、命令选项和命令参数 应用程序:通常没有固定的执行格式 二 典型应用程序的目录结构 文件类型 保存目录 普通执行程序文件 /usr/bin 服务器执行程序文件和管理程序文件 /usr/sbin 应用程序配置文件 /etc 日志文件 /var/log 应用程序文档文件 /usr/share/doc 应用程序手册页文件 /usr/share/man 三 常见的软件包封装类型 封装类型 说明 rpm软件包 扩展名为".rpm" deb软件包 扩展名为".deb" 源代码软件包 一般为".tar.gz"、".tar.bz2"等格式的压缩包 包含程序的原始代码 附带安装程序的软件包 在压缩包内提供install.sh、setup等安装程序 或以".bin"格式的单个执行文件提供 绿色免安装的软件包 在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用 四 rpm软件管理 由Red Hat公司提出,被众多Linux发行版所采用 建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系 1 一般命名格式: bash -3.1-16.1 .i386 .rpm 软件名-版本号-支持的CPU类型-扩展名 2 查询已安装的rpm软件信息 格式:rpm -q[子选项] [软件名] 用法:结合不同的子选项 完成不同查询 :rpm -qa //查看系统中已安装的所有rpm软件包列表 :rpm -qa dhcp //查看软件是否安装 :rpm -qi dhcp //查看指定软件的详细信息 :rpm -ql dhcp //查询指定软件包所安装的目录、文件列表 :rpm -qc dhcp //仅显示指定软件包安装的配置文件 :rpm -qd dhcp //仅显示指定软件包安装的文档文件 :rpm -qf file //查询文件或目录属于哪个rpm软件 3 查询未安装的RPM包文件 格式:rpm -qp[子选项] RPM包文件 用法:结合不同的子选项 完成不同查询 -qpi:通过.rpm包文件查看该软件的详细信息 -qpl:查看.rpm安装包内所包含的目录、文件列表 -qpc:查看.rpm安装包内包含的配置文件列表 -qpd:查看.rpm安装包内包含的文档文件列表 4 安装或升级RPM软件 格式:rpm [选项] RPM包文件... 用法:不同选项适用于不同情况 -i: 安装一个新的rpm软件包 rpm -ivh dhcp 安装DHCP服务 --force:强制安装所指定的rpm软件包 rpm -ivh dhcp --force --nodeps:安装、升级或卸载软件时,忽略依赖关系 -h:以"#"号显示安装的进度 -v:显示安装过程中的详细信息 -U: 升级某个rpm软件,若原本未装,则进行安装 -F: 更新某个rpm软件,若原本未装,则放弃安装 5 卸载指定的RPM软件 格式:rpm -e 软件名 6 重建RPM数据库(用户系统被破坏时重载rpm,以便正常使用) rpm --rebuilddb或 rpm --initdb 7 导入验证公钥 (用于校验rpm包是否被改过) rpm --import /media/cdrom/RPM-GPG-KEY-redhat-release 五 从源代码编译安装程序 1 源代码编译概述 使用源代码安装软件的优点 获得最新的软件版本,及时修复bug 根据用户需要,灵活定制软件功能 应用场合举例 安装较新版本的应用程序时 自由软件的最新版本大都以源码的形式最先发布 当前安装的程序无法满足需要时 编译安装可由用户自行修改、定制功能 需要为应用程序添加新的功能时 用户可以重新配置、自由修改源代码,加入新的功能 2 编译安装基本过程 1)解包并切换到解压目录 2)配置 使用源码目录中的 configure 脚本 执行"./configure --help " 可以查看帮助 典型的配置选项: --prefix= 软件安装目录 ./configure --prefix=/usr/local "其他模块 "编译 make 安装 make install 编译和安装也可以一起执行:make && make instaLl YUM仓库服务 一 YUM概述 ·YUM仓库介绍 YUM分为服务器端和客户端,借助于YUM软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,而无需管理员逐个、手工地去安装每一个rpm包,使管理员在维度护在量linux服务器时更加轻松自如 ·YUM原理 要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装文件的软件仓库,提供软件库的服务器也称为"源"服务器;软件仓库中需要提供仓库数据库(repodata),其中收集了目录下所有rpm包的头部信息header, header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务;在客户机中只要正确指定软件仓库的地址等信息,就可以通过对应的"源"服务器来安装或更新软件了 在RHEL6系统的安装光盘中,已针对软件目录Packages/建好了repodata数据,因此只要简单地将整个光盘中的内容或将光盘全部内容复制到硬盘通过HTTP或FTP进行发布,就可以作为软件仓库了 以下是rhel_6.0-i386-DVD的目录结构: HighAvailability 高可用相关软件包,自带repodata数据;如rhcs等相关套件 Server 常规软件包,自带repodata数据;如mysql,httpd,开发工具,系统管理工具等 LoadBalancer 负载均衡相关软件包,自带repodata数据;如lvs,pirihan ResilientStorage 数据包组相关信息,自带repodata数据; Packages 真正存放所有软件包的目录 images rhel安装进程所需要的引导和驱动镜像文件, isolinux 镜像文件引导时所需要的文件 二 使用Red Hat发布的RPM包部署YUM软件仓库 1软件仓库的提供方式 网络客户机使用 FTP服务:ftp://...... HTTP服务:http://...... 本地自己使用:本地目录:file:///....... 2 RPM软件包的来源 Red Hat发布的RPM包集合 第三方组织发布的RPM包集合 用户自定义的RPM包集合 ·准备安装源(服务器) RPM包来自RHEL 6.1 DVD光盘 通过FTP提供给客户机 1挂载系统光盘,安装vsftpd服务 开启服务并允许防火墙相应端口(允许21号端口且关联20号端口) 加载FTP模块 保存防火墙规则并重启防火墙 2复制系统光盘所有内容到FTP跟目录下(实验环境也可指直接挂载) ·配置软件仓库位置(客户机) 1服务器自己作为客户机使用YUM仓库的配置 在/etc/yum.repos.d目录下创建一个以.repo结尾的文件并配置系统镜像提供的四个仓库;配置完保存后即可使用yum来管理rpm软件 2其他客户机使用yum仓库服务器的配置 首先保证物理通信,然后确保仓库路径正确 三 用户自定义的RPM包集合部署YUM软件仓库 当需要使用非FHEL光盘中自带的其他软件包时,除了有安装包外,还需手动创建repodata数据文件;此文件中不包含数据包组信息(无法使用yum grouplist) ·配置YUM源(服务端) 1在FTP根目录下创建other目录,并将rpm软件包复制到此目录 2安装创建repodata数据文件的工具 3创建repodata数据文件 ·配置客户端 只需在原来的yum.repo文件中添加以下内容即可 四 Yum的使用 ·关于yum命令 由软件包yum-3.2.29-17.el6.noarch提供 用来访问YUM仓库,查询、下载及安装、卸载软件包 ·yum的配置文件 基本设置:/etc/yum.conf 仓库设置:/etc/yum.repos.d/*.repo 日志文件:/var/log/yum.log ·YUM缓存目录 存放下载的软件包、仓库信息等数据 位于/var/cache/yum/$basearch/$releasever [root@localhost ~]# yum clean all 清理缓存数据 ·Yum命令的使用 1查询软件包 yum list [软件名]... yum info [软件名]... yum search <关键词>... yum list、yum info,软件名可以省略,表示查询所有软件 2查询软件包组 yum grouplist [包组名]... yum groupinfo <包组名>... yum grouplist,包组名可以省略,表示列出所有软件包组 yum list available则表示只列出软件仓库中可用(尚未安装)的软件包 3安装软件 yum install [软件名] yum –y install [软件名] -y表示自动确认 yum groupinstall <包组名> 4升级软件 yum check-update 检查可更新的程序 yum list update表示列出可以升级版本的软件包 yum update 全部更新 yum update [软件名] yum groupupdate 5卸载软件 yum remove <软件名>... yum groupremove <包组名>... yum clean headers 清除header yum clean packages 清除下载的rpm包 yum clean all 清除header与rpm包