Linux软件管理
2012-02-22 17:22
176 查看
Linux 软件管理
在linux下说道软件管理,大家自然会想到RPM(RedHat Package Management)和DPKG(Debian Linux),在这里我们只介绍RedHat Linux环境下的RPM;由于RPM软件包管理自身存在软件包依赖关系的缺陷,于是我们便想到YUM这款软件管理工具,YUM能很好的解决RPM包之间的依赖关系,下面我们先谈谈RPM:包括RPM包的安装、查询、更新、卸载、RPM的验证与数字证书以及RPM数据库的重建;然后了解如何利用YUM来进行软件包的安装、查询、升级与删除;最后详细介绍如何构建YUM服
务。
RPM:
安装,说到安装,我们来了解下Linux环境软件安装的方法:
1.手动编译安装源代码
2.使用专门的软件包管理工具:
rmp软件包制作复杂,解压直接使用,但是硬件平台必须一致(i386,x86_64,power)
rpm包的格式:
createrepo-0.4.11-3.el5.noarch.rpm(以此rpm软件包微粒介绍RPM)
name-version-release.arch.rpm
Name:软件包的名称
Version:
major 主版本号
minor 此版本号
modify 修改时间
Release:发行号
Arch: 硬件平台
.rpm 后缀名
RPM 命令格式:
# rpm [options] PACKAGENAME
安装:
# rpm -i(--install) PACKAGENAME
-i install
--nodeps 忽略依赖关系
--force 不兼容是强行安装
PS:在安装rpm包的时候-i选项常与-v和-h选项配合使用;-v显示安装信息,-h以#显示安装进度,每个#表示2%的进度;PACKAGENAME必须是该软件包的绝对路径。
example:# rpm -ivh /media/cdrom/Server/createrepo-0.4.11-3.el5.noarch.rpm
卸载:
# rpm -e(--erase) Absolutely_Path/PACKAGENAME
PS:卸载的时候只需指出rpm软件包的包名,不必给出其绝对路径
升级:
# rpm -Fvh Absolutely_Path/PACKAGENAME
# rpm -Uvh Absolutely_Path/PACKAGENAME
PS:-v和-h选项同安装相同;-U与-F的区别:使用-F选项时,老版本的软件包必须存在,-U选项则是软件包不存在就直接安装
查询:
# rpm -q PACKAGENAME 查看软件包是否安装
# rpm -qa 查看当前系统安装的rpm包
# rpm -qi PACKAGENAME 显示软件包的相关信息
# rpm -ql PACKAGENAME 显示软件包安装之后生成的文件列表
# rpm -qd PACKAGENAME 显示软件包安装后生成的目录
# rpm -qc PACKAGENAME 查看软件包安装后生成的配置文件
# rpm -q --script sPACKAGENAME显示软件包安装过程中执行的脚本
# rpm -qf NAME 查询某个文件有哪个软件包安装生成
# rpm -q --changelog PACKAGENAME 查看软件包的修正信息
# rpm -qp{i|c|d|f|l|} Absolutely_Path/PACKAGENAME 查看软件包没安装之前的相关信息
校验:
# rpm -V
S 文件大小改变
M 权限和文件类型改变
5 MD5校验值发生改变
D 设备文件的主设备此设备号发生改变
L readlink发生改变
U 属主发生改变
G 属组发生改变
T 最近修改时间发生改变
数据重建:
在安装、卸载、更新等操作过程中可能导致/var/lib/rpm数据库文件损坏,这会导致不能进行查询、校验等操作,这时我们必须重建rpm数据库
# rpm --initdb 数据库初始化,若数据库存在不会覆盖原数据库
# rpm --rebuilddb 数据库重建
数字签名:
签名:验证某物是否合法,必须用公钥验证
用私钥加密数据的MD5叫做签名;私钥一般不加密数据,通常用来加密数据对应的MD5值
在安装软件包之前我们必须验证软件包的是否合法
# rpm -K 来验证软件包的合法性
验证软件包的合法性的步骤:
1.导入公钥
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
2.验证
# rpm -K /media/cdrom/Server/createrepo-0.4.11-3.el5.noarch.rpm
# rpm -K --digest /media/cdrom/Server/createrepo-0.4.11-3.el5.noarch.rpm 不对数据完整性进行验证
# rpm -K --signature /media/cdrom/Server/createrepo-0.4.11-.el5.noarch.rpm 不对签名进行验证
YUM:(Yellow dog Update Modified)
是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
Yum Repository:可以由以下三种途径提供yum服务:
1.ftp://
2.http://
3.file:///
Yum客户端配置文件的两个组成部分:
1./etc/yum.conf
2./etc/yum.repos.d/*.repo
/etc/yum.conf
# vim /etc/yum.conf
[main] 主配置段,定义全局属性
cachedir=/var/cache/yum 缓存目录
keepcache=0 安装软件之后是否继续保留
debuglevel=2 调试级别
logfile=/var/log/yum.log yum安装日志的保存目录
tolerant=1 是否容许出错
exactarch=1 精确匹配硬件平台
obsoletes=1 是否启用检查废弃包的文件
gpgcheck=1 安装软件包前是否检查其签名
plugin=1 是否启用插件功能
metadata_expire=1h 元数据过期时间
/etc/yum.repos.d/
# vim /etc/yum.repos.d/my.repo
[base] yum源的识别符号,除了[main]之外可以随意指定
name= 指定yum源的完整名称
baseurl= 指定yum源的位置
gpgcheck= 是否检查签名
enabled= 是否启用(默认启用)
yum本地命令:
# yum list{all | installed | available | updates}
all 所有的软件包
installed 已经安装的软件包
available 可用的软件包
updates 可更新的软件包
# yum check-update 检查可升级的软件包
# yum info package_name ... 查看软件包的信息
# yum provides /etc/profile 查询文件是由哪个软件包安装生成的
# yum downgrade package_name ... 降级软件包
# yum reinstall package_name ... 重装软件包
# yum repolist {all | enabled | disabled}
# yum repolist 显示yum源
# yum repolist all 显示所有的yum源
# yum clean all 清除缓存
# yum grouplist 显示包组信息
# yum groupinstall "Development Tools" 中间有空格必须加引号
# yum groupremove ""
# yum groupinfo "" 查看包组信息
# yum --nogpgcheck localinstall /Absolutely_Path/PACKAGENAME(本安装会自动检查包的签名和完整性) 自动到yum库下载依赖的rpm包
创建Yum源:(ftp, http:以后补充) file
创建本地yum服务,并把yum repository指向光盘
# vim /etc/yum.repos.d/local.repo
[base]
name=Server
baseurl=file:///media/cdrom/Server
gpgcheck=0
[VT]
name=VT
baseurl=file:///media/cdrom/VT
gpgcheck=0
[Cluster]
name=Cluster
baseurl=file:///media/cdrom/Cluster
gpgcheck=0
[CS]
name=ClusterStorage
baseurl=file:///media/cdrom/ClusterStorage
gpgcheck=0
yum如何解决rpm包之间的依赖关系
yum通过读取yum源对应repodata目录下文件来解决rpm包之间的依赖关系
Yum源的元数据文件repodata目录
primary.xml.gz 包含所有rpm文件及其彼此间的依赖关系,还包含每一个rpm包中的文件名
filelists.xml.gz yum源中每一个rpm包中文件的相关信息
other.xml.gz 额外信息,比如changelog等
repomd.xml 定义primary,filelists,other文件的校验码和时间戳,验证本地缓存文件与yum服务器是否一致
comps-rhe15-server-core.html 软件包的分组信息
如何把本地的rpm包目录设置为yum源:
1.用createrepo 生成yum源的repodata元数据文件
# createrepo /Absolutely_Path/DERECTORY
2.配置/etc/yum.repos.d/local.repo
[target]
name=my yum
baseurl=file:/yum/myyum/
gpgcheck=0
本文出自 “Obscur” 博客,请务必保留此出处http://urchin.blog.51cto.com/4356076/786927
在linux下说道软件管理,大家自然会想到RPM(RedHat Package Management)和DPKG(Debian Linux),在这里我们只介绍RedHat Linux环境下的RPM;由于RPM软件包管理自身存在软件包依赖关系的缺陷,于是我们便想到YUM这款软件管理工具,YUM能很好的解决RPM包之间的依赖关系,下面我们先谈谈RPM:包括RPM包的安装、查询、更新、卸载、RPM的验证与数字证书以及RPM数据库的重建;然后了解如何利用YUM来进行软件包的安装、查询、升级与删除;最后详细介绍如何构建YUM服
务。
RPM:
安装,说到安装,我们来了解下Linux环境软件安装的方法:
1.手动编译安装源代码
2.使用专门的软件包管理工具:
rmp软件包制作复杂,解压直接使用,但是硬件平台必须一致(i386,x86_64,power)
rpm包的格式:
createrepo-0.4.11-3.el5.noarch.rpm(以此rpm软件包微粒介绍RPM)
name-version-release.arch.rpm
Name:软件包的名称
Version:
major 主版本号
minor 此版本号
modify 修改时间
Release:发行号
Arch: 硬件平台
.rpm 后缀名
RPM 命令格式:
# rpm [options] PACKAGENAME
安装:
# rpm -i(--install) PACKAGENAME
-i install
--nodeps 忽略依赖关系
--force 不兼容是强行安装
PS:在安装rpm包的时候-i选项常与-v和-h选项配合使用;-v显示安装信息,-h以#显示安装进度,每个#表示2%的进度;PACKAGENAME必须是该软件包的绝对路径。
example:# rpm -ivh /media/cdrom/Server/createrepo-0.4.11-3.el5.noarch.rpm
卸载:
# rpm -e(--erase) Absolutely_Path/PACKAGENAME
PS:卸载的时候只需指出rpm软件包的包名,不必给出其绝对路径
升级:
# rpm -Fvh Absolutely_Path/PACKAGENAME
# rpm -Uvh Absolutely_Path/PACKAGENAME
PS:-v和-h选项同安装相同;-U与-F的区别:使用-F选项时,老版本的软件包必须存在,-U选项则是软件包不存在就直接安装
查询:
# rpm -q PACKAGENAME 查看软件包是否安装
# rpm -qa 查看当前系统安装的rpm包
# rpm -qi PACKAGENAME 显示软件包的相关信息
# rpm -ql PACKAGENAME 显示软件包安装之后生成的文件列表
# rpm -qd PACKAGENAME 显示软件包安装后生成的目录
# rpm -qc PACKAGENAME 查看软件包安装后生成的配置文件
# rpm -q --script sPACKAGENAME显示软件包安装过程中执行的脚本
# rpm -qf NAME 查询某个文件有哪个软件包安装生成
# rpm -q --changelog PACKAGENAME 查看软件包的修正信息
# rpm -qp{i|c|d|f|l|} Absolutely_Path/PACKAGENAME 查看软件包没安装之前的相关信息
校验:
# rpm -V
S 文件大小改变
M 权限和文件类型改变
5 MD5校验值发生改变
D 设备文件的主设备此设备号发生改变
L readlink发生改变
U 属主发生改变
G 属组发生改变
T 最近修改时间发生改变
数据重建:
在安装、卸载、更新等操作过程中可能导致/var/lib/rpm数据库文件损坏,这会导致不能进行查询、校验等操作,这时我们必须重建rpm数据库
# rpm --initdb 数据库初始化,若数据库存在不会覆盖原数据库
# rpm --rebuilddb 数据库重建
数字签名:
签名:验证某物是否合法,必须用公钥验证
用私钥加密数据的MD5叫做签名;私钥一般不加密数据,通常用来加密数据对应的MD5值
在安装软件包之前我们必须验证软件包的是否合法
# rpm -K 来验证软件包的合法性
验证软件包的合法性的步骤:
1.导入公钥
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
2.验证
# rpm -K /media/cdrom/Server/createrepo-0.4.11-3.el5.noarch.rpm
# rpm -K --digest /media/cdrom/Server/createrepo-0.4.11-3.el5.noarch.rpm 不对数据完整性进行验证
# rpm -K --signature /media/cdrom/Server/createrepo-0.4.11-.el5.noarch.rpm 不对签名进行验证
YUM:(Yellow dog Update Modified)
是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
Yum Repository:可以由以下三种途径提供yum服务:
1.ftp://
2.http://
3.file:///
Yum客户端配置文件的两个组成部分:
1./etc/yum.conf
2./etc/yum.repos.d/*.repo
/etc/yum.conf
# vim /etc/yum.conf
[main] 主配置段,定义全局属性
cachedir=/var/cache/yum 缓存目录
keepcache=0 安装软件之后是否继续保留
debuglevel=2 调试级别
logfile=/var/log/yum.log yum安装日志的保存目录
tolerant=1 是否容许出错
exactarch=1 精确匹配硬件平台
obsoletes=1 是否启用检查废弃包的文件
gpgcheck=1 安装软件包前是否检查其签名
plugin=1 是否启用插件功能
metadata_expire=1h 元数据过期时间
/etc/yum.repos.d/
# vim /etc/yum.repos.d/my.repo
[base] yum源的识别符号,除了[main]之外可以随意指定
name= 指定yum源的完整名称
baseurl= 指定yum源的位置
gpgcheck= 是否检查签名
enabled= 是否启用(默认启用)
yum本地命令:
# yum list{all | installed | available | updates}
all 所有的软件包
installed 已经安装的软件包
available 可用的软件包
updates 可更新的软件包
# yum check-update 检查可升级的软件包
# yum info package_name ... 查看软件包的信息
# yum provides /etc/profile 查询文件是由哪个软件包安装生成的
# yum downgrade package_name ... 降级软件包
# yum reinstall package_name ... 重装软件包
# yum repolist {all | enabled | disabled}
# yum repolist 显示yum源
# yum repolist all 显示所有的yum源
# yum clean all 清除缓存
# yum grouplist 显示包组信息
# yum groupinstall "Development Tools" 中间有空格必须加引号
# yum groupremove ""
# yum groupinfo "" 查看包组信息
# yum --nogpgcheck localinstall /Absolutely_Path/PACKAGENAME(本安装会自动检查包的签名和完整性) 自动到yum库下载依赖的rpm包
创建Yum源:(ftp, http:以后补充) file
创建本地yum服务,并把yum repository指向光盘
# vim /etc/yum.repos.d/local.repo
[base]
name=Server
baseurl=file:///media/cdrom/Server
gpgcheck=0
[VT]
name=VT
baseurl=file:///media/cdrom/VT
gpgcheck=0
[Cluster]
name=Cluster
baseurl=file:///media/cdrom/Cluster
gpgcheck=0
[CS]
name=ClusterStorage
baseurl=file:///media/cdrom/ClusterStorage
gpgcheck=0
yum如何解决rpm包之间的依赖关系
yum通过读取yum源对应repodata目录下文件来解决rpm包之间的依赖关系
Yum源的元数据文件repodata目录
primary.xml.gz 包含所有rpm文件及其彼此间的依赖关系,还包含每一个rpm包中的文件名
filelists.xml.gz yum源中每一个rpm包中文件的相关信息
other.xml.gz 额外信息,比如changelog等
repomd.xml 定义primary,filelists,other文件的校验码和时间戳,验证本地缓存文件与yum服务器是否一致
comps-rhe15-server-core.html 软件包的分组信息
如何把本地的rpm包目录设置为yum源:
1.用createrepo 生成yum源的repodata元数据文件
# createrepo /Absolutely_Path/DERECTORY
2.配置/etc/yum.repos.d/local.repo
[target]
name=my yum
baseurl=file:/yum/myyum/
gpgcheck=0
本文出自 “Obscur” 博客,请务必保留此出处http://urchin.blog.51cto.com/4356076/786927
相关文章推荐
- linux系统管理命令-软件包管理
- Linux 之 软件管理 之 软件包
- Linux软件包管理基本操作入门
- 2017.11.15 linux软件安装管理(todo)
- Linux软件包管理之编译安装httpd
- linux常用命令3(进程管理和软件安装)
- Linux的软件安装管理 deb rpm yum atp-get
- Linux-软件包管理-rpm命令管理-安装-卸载
- linux软件安装管理与安装RPM时的挂载的概念
- Linux软件管理
- Linux 第13天: (08月23日) Linux软件包管理源码
- Linux下的Android电话管理软件——QtADB(安装启动方法)
- 27 个 Linux 下软件包管理工具 DNF 命令例子
- Python学习第六天----Linux内存管理、进程管理、RPM包安装管理及源码安装软件
- Linux常用命令(24)之RPM软件包管理
- Linux笔记22.软件管理
- Linux下软件包的安装与管理
- lampbro-linux 软件安装包的管理-yum在线管理
- Linux---软件安装管理
- Linux系列教程(十一)——Linux软件包管理之RPM命令