第5章 linux下的应用程序管理
Linux应用程序基础
1.掌握Linux下的常见软件形式
2.rpm包的管理
3.掌握YUM的应用和管理
4.源码包的管理
应用程序与系统命令的关系
⚫ 文件位置
◆ 系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
◆ 应用程序:通常在/usr/bin和/usr/sbin目录中
⚫ 主要用途
◆ 系统命令:完成对系统的基本管理工作,例如IP配置工具
◆ 应用程序:完成相对独立的其他辅助任务,例如网页浏览器
⚫ 适用环境
◆ 系统命令:一般只在字符操作界面中运行
◆ 应用程序:根据实际需要,有些程序可在图形界面中运行
⚫ 运行格式
◆ 系统命令:一般包括命令字、命令选项和命令参数
◆ 应用程序:通常没有固定的执行格式
典型的应用程序的目录结构
软件包的封装类型
常见的软件包封装类型
拓展:Rpm.软件包 扩展名为:.rpm
RPM包管理机制
RPM Package Manager
⚫ 由Red Hat公司提出,被众多Linux发行版所采用
⚫ 建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系
RPM软件包
⚫ 软件素材参考:http://rpmfind.net
⚫ 一般命名格式:
拓展:
rpm能分析依赖关系,不能解决依赖关系
yum:能自动解决依赖关系(管理rpm是rpm的升级)
rpm软件是依赖与cpu结构的,常见的的格式有
Rpm软件包管理命令—rpm
主要功能:
⚫ 1. 查询RPM软件、包文件的相关信息
⚫ 2. 安装、卸载RPM软件包
查询已安装的RPM软件信息
⚫ 格式:rpm -q[子选项] [软件名]
⚫ 用法:结合不同的子选项 完成不同查询
◆ -qa:查看系统中已安装的所有RPM软件包列表
◆ -qi:查看指定软件的详细信息
◆ -ql:查询指定软件包所安装的目录、文件列表
◆ -qc:仅显示指定软件包安装的配置文件
◆ -qd:仅显示指定软件包安装的文档文件
查询文件/目录属于哪个RPM软件
⚫ 格式:rpm -qf 文件或目录名
查询rpm软件信息
例如:
1.查询所有软件包的安装 rpm -qa httpd
2.查询与某相关的可以进行筛选 rpm -qa | grep bash
3.rpm -q httpd(安装后查询)
4.rpm -qc httpd (查询安装的配置文件)
5.查询安装的文档 rpm -qd httpd
6.查询文件属于哪个文件或目录 rpm -qf
7.查询通过什么路径安装的软件包
查询未安装的RPM包文件
⚫ 格式:rpm -qp[子选项] RPM包文件
⚫ 用法:结合不同的子选项 完成不同查询
◆ -qpi:通过.rpm包文件查看该软件的详细信息
◆ -qpl:查看.rpm安装包内所包含的目录、文件列表
◆ -qpc:查看.rpm安装包内包含的配置文件列表
◆ -qpd:查看.rpm安装包内包含的文档文件列表
例如:
首先将eth的第一个和lynx第一个拷到home中
1.查软件包的相关信息
2.查软件包的目录列表
3.查询
4.查询
安装、升级、卸载RPM软件包
安装或升级RPM软件
⚫ 格式:rpm [选项] RPM包文件...
⚫ 用法:不同选项适用于不同情况
◆ -i:安装一个新的rpm软件包
◆ -h:以“#”号显示安装的进度
◆ -v:显示安装过程中的详细信息
卸载指定的RPM软件
⚫ 格式:rpm -e 软件名
辅助选项
⚫ --force:强制安装所指定的rpm软件包
⚫ --nodeps:安装、升级或卸载软件时,忽略依赖关系
例如:
rpm -ivh安装
rpm -e 软件名
1.首先:
查看是否有此安装包
2.安装软件包
3.卸载软件包
4.查看一下
维护rpm数据库
重建rpm数据库
[root@localhost ~]# rpm --rebuilddb
或 [root@localhost ~]# rpm --initdb
导入验证公钥
[root@localhost~]#rpm --import /media/cdrom/RPM-GPG-KEY-redhat-release
例子:导入数字签名
解决软件包依赖关系
安装有依赖关系的多个软件时
⚫ 被依赖的软件包需要先安装
⚫ 可同时指定多个 .rpm 包文件进行安装
卸载有依赖关系的多个软件时
⚫ 依赖其他程序的软件包需要先卸载
⚫ 可同时指定多个软件名进行卸载 忽略依赖关系
⚫ 结合“--nodeps”选项,但可能导致软件异常
例如:
首先将vim-common和vim-enhance拷贝到home下
1.查看是否安装 vim-commom
-enhanced
2.卸载-common
3.先卸载—enhanced
4.再卸载—common
5.安装(发现不可以安装)
6.按照依赖关系顺序安装
先安装
7.再安装
在图形界面中管理RPM包
图形界面中的“添加/删除软件”
⚫ 依赖于YUM(Yellow dog Updater,Modified)机制
⚫ 调用yum命令工具进行软件更新
使用“添加/删除软件”工具的条件
⚫ 能够访问互联网中的YUM源服务器
◆ 若使用默认源,需有合法的安装序列号和服务订阅号
⚫ 在局域网内构建本地的YUM源服务器
Yum管理rpm包
YUM
⚫ (Yellow dog Updater,Modified,修订版的黄狗升级器)
⚫ 是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
⚫ 能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所 有依赖的软件包,无须繁琐地一次次下载、安装。
Yum管理
Yum常用选项
⚫ 安装软件(以foo-x.x.x.rpm为例):yum install foo-x.x.x.rpm
⚫ 删除软件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm
⚫ 升级软件:yum upgrade foo或者yum update foo
⚫ 查询信息:yum info foo
⚫ 搜索软件(以包含foo字段为例):yum search foo
⚫ 显示软件包依赖关系:yum deplist foo
例子:
1.yum install -y foomatic(安装footmatic)
2.升级
3.查看信息
4.搜索软件
5.显示依赖关系
6.删除
拓展:
yum upgrade 升级命令会保留原来版本的文件(内核不会升级)
yum update升级会删除原来版本的文件(内核会升级)
Yum管理
更改国内的源
⚫ 阿里云的源
◆ http://mirrors.aliyun.com/repo/Centos-7.repo
⚫ 网易的源
◆ http://mirrors.163.com/.help/CentOS7-Base-163.repo
下载repo文件(例子)
[root@centos7~]#wget http://mirrors.aliyun.com/repo/Centos-7.repo
[root@centos7~]#wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
例如:
1.下载云端repo文件
进入阿里云
2.将新的阿里云文件拖入,将Base-脱出到oldrepo中
3.更新 缓存
4.检查可用的安装包
yum repolist enable
搭建本地的yum源服务器
1.备份默认的yum repo文件
[root@centos7 ~]# cd /etc/yum.repos.d/
[root@centos7 yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
[root@centos7 yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
2.自定义repo文件
[root@centos7 yum.repos.d]# vi CentOS7.repo
1 [localdvd] 2 name=local dvd yum
3 baseurl=file:///media/cdrom //注意将光盘镜像挂载到该目录
4 enable=1
5 gpgcheck=1
6 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
3.重新建立yum缓存
[root@centos7 yum.repos.d]# yum makecache clean
已加载插件:fastestmirror, langpacks
localdvd | 3.6 kB 00:00:00
(1/4): localdvd/group_gz | 155 kB 00:00:00
(2/4): localdvd/primary_db | 3.0 MB 00:00:00
(3/4): localdvd/filelists_db | 3.0 MB 00:00:00
(4/4): localdvd/other_db | 1.3 MB 00:00:00
Loading mirror speeds from cached hostfile
元数据缓存已建立
自己手动操作
步骤:
1.首先:
挂载镜像文件
mkdir / media/cdrom
mount /dev/sr0 /media/cdrom
vim /etc/fstab(永久封装挂载)
2.然后添加
dev/sr0 meida/ cdrom/ iso9660 defaults 0 0
3.之后:
cd /etc/repos.d/
Ls
Mv CentOS-Base.repo CentOS-Base.repo.bak
Vi Centos7. repo
1 [localdvd]
2 name=local dvd yum
3 baseurl=file:///media/cdrom //注意将光盘镜像挂载到该目录
4 enable=1
5 gpgcheck=1
6 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
4.然后
yum makecahe clean
yum rpolist all
成功!!
源码安装应用程序
源代码编译概述
使用源代码安装软件的优点
⚫ 获得最新的软件版本,及时修复bug
⚫ 根据用户需要,灵活定制软件功能
应用场合举例
⚫ 安装较新版本的应用程序时
◆ 自由软件的最新版本大都以源码的形式最先发布
⚫ 当前安装的程序无法满足需要时
◆ 编译安装可由用户自行修改、定制功能
⚫ 需要为应用程序添加新的功能时
◆ 用户可以重新配置、自由修改源代码,加入新的功能
源代码编译概述
Tarball 封包:
⚫ .tar.gz 和 .tar.bz2 格式居多
⚫ 软件素材参考:http://sourceforge.net
完整性校验
⚫ md5sum校验工具
⚫计算MD5校验和,并与官方提供的值相比较,判断是否一致
[root@localhost ~]# md5sum axel-1.0a.tar.gz 2d94c0b36b374834567f1fcec5f89119 axel-1.0a.tar.gz
(MD5校验和)
确认源代码编译环境
⚫ 需安装支持 C/C++程序语言的编译器,如:
◆ gcc-4.4.7-4.el6、gcc-c++-4.4.7-4.el6
◆ make-3.81-20.el6.……
[root@localhost html]# gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.-4)
Copyright (C) 2010 Free Software Foundation, Inc.
[root@localhost html]# make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This program built for x86_64-redhat-linux-gnu ……
源码编译安装的基本过程
解包 —— tar
⚫ 解包、释放出源代码文件
配置 —— ./configure
⚫ 针对当前系统、软件环境,配置好安装参数
编译 —— make
⚫ 将源代码文件变为二进制的可执行程序
安装 —— make install
⚫ 将编译好的程序文件复制到系统中 测试及应用、维护软件
编译安装基本过程
步骤1. 解包
⚫ 习惯上将软件包释放到 /usr/src/ 目录
⚫ 解包后的源代码文件位置:
◆ /usr/src/软件名-版本号/
[root@localhost ~]# tar zxf httpd-2.2.15.tar.gz -C /usr/src/(解压源代码包并且指定释放目录)
[root@localhost ~]# ls /usr/src/
Debug httpd-2.2.15 kernels
编译安装基本过程
步骤2. 配置
⚫ 使用源码目录中的 configure 脚本
⚫ 执行“./configure --help” 可以查看帮助
⚫ 典型的配置选项:
◆ --prefix=软件安装目录
[root@localhost ~]# cd /usr/src/httpd-2.2.15/ (切换到源码所在目录)
[root@localhost httpd-2.2.15]#./configure --prefix=/usr/local/apache
(若不指定任何配置选项,将采用默认值)
编译安装基本过程
步骤3. 编译
⚫ 执行 make 命令
步骤4. 安装
⚫执行 make install 命令
[root@localhost httpd-2.2.15]# make
[root@localhost httpd-2.2.15]# make install
编译安装基本过程
使用前
⚫ 修改配置文件
[root@localhost httpd-2.2.15]# vim /usr/local/apache/conf/httpd.conf
⚫ 启动Apache
[root@localhost httpd-2.2.15]# /usr/local/apache/bin/apachectl start
⚫ 运行 lynx 127.0.0.1查看本机Apache运行状态
例如:手动安装过程
首先拷贝源码包
进行查看
解压
比对校验
配置安装
进入压缩包执行
进行配置选项
继续加入配置选项(强制换行符\)支持动态模块
再加入配置选项(强制换行强制换行)
将源码包文件转换成二进制文件(执行前面执行后面,并且前面的成功之后执行后面)
验证
Echo “IT work >/usr/local/httpd/(创建html)
启动服务
客户端验证
1.主机关闭防火墙
..........disabled禁止开机启动
客户端验证成功!!!