Linux入门-9 软件管理基础(CentOS)
0. 源代码形式
- 绝大多数开源软件都是直接以源代码形式发布
- 源代码一般会被打包成
tar.gz
的归档压缩文件 - 程序源代码需要编译成为二进制形式之后才能够运行使用
- 源代码级别编译流程:
./configure
检查编译环境、相关库文件以及配置参数并生成makefilemake
对源代码进行编译,生成可执行文件make install
将生成的可执行文件安装到计算机中
- 源代码形式的软件使用起来较为麻烦,但是兼容性及可控制性较好
- 开源软件一般都会大量使用其他开源软件的功能,所以开源软件会有大量的依赖关系
1. RPM软件包管理
- 源代码形式的缺点:操作复杂、编译时间较长、极容易出现错误
- 源代码形式的优点:适用所有系统、可定制
- 为了方便使用,Erik Troan和Marc Ewing开发了RPM(Readhat Package Manager)
- RPM通过将源代码基于特定平台系统编译为可执行文件,并保存依赖关系,从而简化开源软件的安装管理
- RPM设计目标如下:
- 使用简单
- 使用单一软件包格式文件发布(.rpm)
- 可升级
- 追踪软件依赖关系
- 基本信息查询
- 软件验证功能
- 支持多平台
RPM
- 命名规范:
name-version.os.platform.rpm
- RPM基本命令:
- 安装:
rpm -i package.rpm
- 卸载:
rpm -e package
- 升级:
rpm -U package.rpm
- 在线安装:
rpm -ivh http://www.xxx.com/package.rpm
-v
显示详细信息-h
显示进度条
- 安装:
RPM查询
rpm -qa
列出所有安装的rpm软件rpm -qf filename
查询目标文件属于哪个rpm包rpm -qi packagename
查询指定已安装rpm软件信息rpm -ql packagename
查询指定已安装rpm软件包含的文件rpm -qip package.rpm
查询rpm文件的信息rpm -qlp package.rpm
查询rpm文件包含的文件
RPM验证
- 出于安全考虑
- 一般使用非对称加密算法,所以需要一个密钥
- 导入密钥:
rpm --import RPM-GPG-KEY-CentOS-6
- 验证rpm文件:
rpm -K package.rpm
- 验证已安装软件:
rpm -V software
2. YUM软件管理
YUM(Yellowdog Updater, Modified)是一个RPM的前端程序,而RPM是一种软件封装形式,它主要用来自动解决RPM的依赖关系问题。其他特点如下:
- 自动解决依赖关系
- 可以对RPM进行分组,并基于组进行安装操作
- 引入仓库概念,支持多个仓库
- 配置简单
YUM的仓库(repo)用来存放所有现有的rpm软件包,当使用yum安装一个rpm软件的时候,如果存在依赖关系,会自动在仓库中查找依赖软件并安装。
仓库可以是本地的,也可以通过HTTP, FTP或NFS形式使用集中的、统一的网络仓库。
- YUM使用仓库保存管理rpm包,仓库的配置文件保存在
/etc/yum.repos.d/
目录中,格式如下:
[LinuxCast]
name = This is LinuxCast.net rpm soft repo
baseurl = http://www.linuxcast.net/yum/centos/6/i386/rpms/
enabled = 1
gpgcheck = 1
- 仓库可以使用
file, http, ftp, nfs
方式 - yum配置文件必须以
.repo
结尾 - 一个配置文件内可以保存多个仓库的配置信息
/etc/yum.repos.d/
目录下可以存在多个配置文件
YUM基本命令
yum install
yum remove
yum update
YUM查询
yum search keyword
yum list (all|installed|recent|updates)
yum info packagename
yum whatprovides filename
查询文件包含在哪个软件包中
创建YUM仓库
......