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:能自动解决依赖关系(管理rpmrpm的升级)

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.el6gcc-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禁止开机启动

客户端验证成功!!!