linux系统软件包管理系统rpm与yum应用

软件包的组成部分由:二进制程序、库、配置文件、帮助文件等组成,其存放的一般路径为:

二进制程序:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin

库:/lib,/usrlib,/lib64,/usr/lib64,/usr/local/lib,/usr/local/lib

配置文件:/etc

帮助文件:   man文件,info文件,README,INSTALL,Changelog

包管理器的基本功能

打包

安装

查询

卸载

校验

数据库管理

常用的包管理工具有

Debian版本: .deb,dpkg

RedHat版本: .rpm,rpm(RedHatPackage Manger)

rpm: RPM is Package Manger

rpm包的命名格式

源程序:name-VERSION-RELEASE.ARCH.rpm

VERSION:表示其版本,一般来说有三个版本号,依次为主版本号(major)、次版本号(minor)、修订号(RELEASE)

ARCH :使用的硬件架构,如:X86_{64|32}、i686、i386等

有时可以使用分包来限定其使用的功能如:

主包:bash-4.3.2-2.el6.x86_64.rpm

子包:bash-l1-4.3.2-2.el6.x86_64.rpm

bash-l2-4.3.2-2.el6.x86_64.rpm

以zlib-devel-1.2.3-29.el6.x86_64.rpm为例

zlib-devel:表示这个包是zlib的开发分包

1.2.3-29:该软件的版本:1为主版本号,2为次版本号,3-29为其修订版本号已修改了29次

el6: 表示其使用在6版本的系统上

x86_64: 表示其适用的硬件平台为:x86_64位的系统

注:硬件架构一致且版本相同的centos跟redhat包可以互用。

包与包之间存在依赖关系:X ——> Y——>Z

来源合法性验证

源程序:通过md5或sha1校验码验证

rpm包:发行商提供的合法性是可信的

验证包完整性:校验码

验证来源合法性:公钥

获取rpm包的途径

1、发行版提供的程序包;

2、Fedora-EPEL

3、项目的官方站点

4、搜索引擎

http://rpmfind.net

http://rpm.pbone.net

http://pkgs.org

rpm包管理与安装

格式:rpm -i ( or --install) options file1.rpm ... .rpm

常用参数

--test 只对安装进行测试,并不实际安装。

--nodeps 不检查依赖性关系

-v 显示附加信息
-vv 显示调试信息

-h:hash, 以#的个数显示安装进度,一个#表示2%的进度

--replacepkgs 重装程序包

实例:

[[email protected] Packages]# rpm -ivhzsh-4.3.11-4.el6.centos.x86_64.rpm
warning:zsh-4.3.11-4.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key IDc105b9de: NOKEY
Preparing...                ###########################################[100%]
  1:zsh                   ########################################### [100%]

卸载

rpm -e, --erase

rpm -e package_name

注:如果卸载被其他程序所依赖的包:

1、把依赖者一同卸载

2、忽略依赖关系  --nodeps

3、不再卸载

实例:

[[email protected] Packages]# rpm  -e zsh           以刚才安装的包为例
[[email protected] Packages]# rpm  -e zsh
error: package zsh is not installed

rpm包查询

rpm -q        查询所有已经安装的包:rpm-qa   (可用通配符)

查询包的描述信息:rpm -qi package_name

查询某单个包是否安装:rm -q package_name

查询包安装之后在当前系统生成文件列表:rpm -ql package_name

查询某文件是哪个包安装生成的:rpm -qf /path/to/somefile

查询包安装后生成的帮助文档:rpm -qd package_name

查询包安装之后生成的配置文件:rpm -qc package_name

查询包相关的脚本:rpm -q --scripts package_name

脚本有四类:

preinstall:安装前脚本

postinstall:安装后脚本

preuninstall:卸载前脚本

postuninstall:卸载后脚本

查询尚未安装的rpm包文件的相关信息

查询安装后会生成的文件列表:rpm -qpl /path/to/package_file

查询其简单描述信息:rpm -qpi /path/to/package_file

实例:

显示yum的软件包

[[email protected] Packages]# rpm -qa |grepyum
yum-plugin-fastestmirror-1.1.30-30.el6.noarch
PackageKit-yum-plugin-0.5.8-25.el6.x86_64
yum-metadata-parser-1.1.2-16.el6.x86_64
yum-plugin-security-1.1.30-30.el6.noarch
PackageKit-yum-0.5.8-25.el6.x86_64
yum-utils-1.1.30-30.el6.noarch
yum-3.2.29-69.el6.centos.noarch

查询/etc/passwd文件是由那个包生成的

[[email protected] Packages]# rpm -qf/etc/passwd
setup-2.8.14-20.el6_4.1.noarch

rpm包之升级

rpm-U:升级或安装

rpm-F:升级

rpm{-Uvh|-Fvh} /path/to/package_file

--nodeps:忽略依赖关系

--force:强行安装

注意:不要对内核执行升级操作, 多版本内核可并存,因此,建议执行安装操作。

rpm包校验

检查包安装后生成的文件是否被修改过

rpm-V package_name

实例:

测试软件包的完整性

[[email protected] Packages]# rpm -V zsh    首先使用 –V来检查该包完整性
[[email protected] Packages]# rpm -qc zsh   跟着使用-qc显示其生成的配置文档
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc
[[email protected] Packages]# vim /etc/zshrc    编辑/etc/zshrc文件
[[email protected] Packages]# rpm -V zsh            最后再使用-V,显示修改后其包完整性出错
S.5....T. c /etc/zshrc

对应上面显示的错误信息,可参考下面的说明

S file Size differs
M Mode differs (includes permissions andfile type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs

检验来源合法性和软件包完整性

包完整性:通过单向加密机制(md5|sha1)

来源合法性:通过公钥加密机制(RSA)

命令:gpg,pgp

导入制作者的公钥,Centos发行版的公钥在iso文件中

导入命令:rpm--import /path/to/gpg-key-file

检查: rpm -K /path/to/package_file

rpm --checksing /path/to/package_file

--nosignature:不检查来源合法性

--nodigest:不检查完整性

YUM:(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

 

配置yum仓库

yum的配置文件路径:/etc/yum.conf;/etc/yum.repo.d/*.repo

格式为:由两段组成。类似window的ini配置文件

[main]:主配置段

[repo]:仓库配置段

repo的配置说明

[repo_ID]     可随便设

name=          可随便设

baseurl=    仓库的访问路径:如果仓库在ftp服务器上的,其格式为: ftp://server/path/to/repo

如果仓库在http服务器上的,其格式为 :http://server/path/to/repo

如果仓库在nfs服务器上的,其格式为: nfs://servr/nfs_path

如果仓库在本地的,其格式为:file:///path/to/path

enabled={1|0}1,表示启用。0表示不启用

gpgcheck={1|0}1,验证gpg。0表示不验证

gpgkey=公钥地址(可以是本地,也可以是服务器端路径)

cost=定义此仓库开销,默认为1000

yum的一般命令

格式:yum [options][command] [package ...]

参数

--skip-broken 忽略依赖问题
--nogpgcheck 忽略GPG验证
check-update 检查可更新的包
clearn 清除全部缓存
repolist列出所有可用的yum repo
install   安装
remove    卸载
update    升级
list all|installed|availiable  查询所有|已安装|未安装的
provides /PATH/TO/SOMEFILE     查询指定文件由哪个包安装生成

reinstall           重新安装

downgrade     降级

grouplist         包组

实例:

设置yum仓库

[[email protected] Packages]# vim/etc/yum.repos.d/iso.repo
[[email protected] Packages]# yum repolist
[base]
name=base
baseurl=file:///mnt/iso
gpgcheck=0
 
 
[ali]
name=ali
baseurl=http://mirrors.aliyun.com/epel/6Server/x86_64/
enable=1
gpgcheck=0

检查yum仓库

[[email protected] Packages]# yum repolist
Loaded plugins: fastestmirror,refresh-packagekit, security
Loading mirror speeds from cached hostfile
repo id                               repo name                           status
ali                                   ali                                 11,765
base                                  base                                 6,575
repolist: 18,340

确认无误后,安装httpd

[[email protected] Packages]# yum installhttpd
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing : httpd-2.2.15-45.el6.centos.x86_64                            1/1
 Verifying  :httpd-2.2.15-45.el6.centos.x86_64                            1/1
Installed:
 httpd.x86_64 0:2.2.15-45.el6.centos                                          
Complete!

在7.1上安装dnf后使用dnf -repolist 出现以下错误,请老师指点一下问题在那

[[email protected] ~]# dnf repolist
Failed to open: /var/cache/dnf/x86_64/7/x86_64/7/epel/repodata/49c4e3bd54f19136521be9b254830c954369cc22ce1b661db502ebef13b0004c-updateinfo.xml.bz2.
[[email protected] ~]# dnf clean all 
Cleaning repos: epel ali base updates cdroom extras
Cleaning up Everything
[[email protected] ~]# dnf repolist all 
Extra Packages for Enterprise Linux 7 - x86_64  108 kB/s | 9.0 MB     01:25    
Failed to open: /var/cache/dnf/x86_64/7/x86_64/7/epel/repodata/178a5e979a68eaf5d9f15ae1d7d8cafc60b0a36a8eb2632336e227382ec3a98d-updateinfo.xml.bz2.
时间: 2024-10-06 00:23:14

linux系统软件包管理系统rpm与yum应用的相关文章

linux下系统软件包管理(rpm、yum、源码包安装)

1. rpm工具rpm全称为Redhat Package Manager,红帽软件包管理工具,设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的. rpm包名字构成由-和.分成了若干部分,如abrt-cli-2.0.8-15.el6.centos.i686.rpm,abrt-cli是包名,2.0.8-15是版本号,el6指的是redhat企业版6,centos指的是这是在centos上用的,i686指的是平台类型.有些rpm包并没有写具体的平台而是noarch,这代表这个

linux系统-软件包管理-Rpm安装补充管理

一 RPM软件包的安装管理 1 查询选项: (1) -a 查询已经安装的软件包 (2) -f 查询文件所属的软件包 (3) -i 显示软件包的信息 (4) -l 显示软件包的文件列表 (5) -d 显示被标记为文档的列表 (6) -c 显示被标记为配置文件的文件列表 二 RPM查询应用案列 1 查询文件所属的软件包:rpm - qf 2 查询软件包信息:           rpm -qi  rpm -qip 3 查询软件包的安装文件:rpm -qd 4 查询软件包的配置文件:rpm -qc 三

Linux系统软件包的管理   3月30日课程

Linux系统软件包的管理 一. rpm工具 rpm Redhat Package Manager, 设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的. rpm包名字构成由-和.分成了若干部分,如abrt-cli-2.0.8-15.el6.centos.i686.rpm, abrt-cli:是包名 2.0.8-15:是版本号 el6:指的是redhat企业版6 centos:指的是这是在centos上用的 i686:指的是平台类型 有些rpm包并没有写具体的平台而是no

VMware(一):Windows系统给虚拟机系统共享文件、虚拟机里Linux系统挂载共享文件镜像做yum源

一.Windows系统给虚拟机系统共享文件 目标: 环境:PC机为Windows系统,安装了虚拟机VMware12版本,在虚拟机里安装Linux系统Redhat7.2. 目的:实现Windows系统里面的文件可共享给虚拟机里面Linux操作系统的目标 方案: 1> 在Windows系统里面选择一个将要作为共享的磁盘位置 2> 在该磁盘里创建一个提供共享的文件目录 3> 设定该目录共享以及共享权限 4> 虚拟机里设定是共享目录总是可见 步骤: 一.物理机上面的共享操作的设置 1. 在

手把手教你构建自己的Linux系统 —— 软件包下载地址

wget -c http://ftp.gnu.org/gnu/binutils/binutils-2.7.tar.gz wget -c http://ftp.gnu.org/gnu/gcc/gcc-4.4.2/gcc-4.4.2.tar.bz2 wget -c https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.1.tar.bz2 wget -c http://ftp.gnu.org/gnu/glibc/glibc-2.11.tar

学习笔记之Linux程序包管理rpm、yum、编译

无论是Windows系统还是Linux系统,我们用户想要在操作系统上获得更多的乐趣还是更多的功能的话,就需要在一个干净的系统上安装各式各样的软件程序,Linux上的是ELF格式的,目前比较常见的程序包管理器如: Redhat软件包管理器---rpm Debian软件包管理器---dpkg 一.1.RPM 安装:rpm {-i|--install} [install-options] PACKAGE_FILE... -v: verbose,详细信息 -vv: 更详细的输出 -h: hashmark

五、软件包管理RPM与YUM

5.1.程序包管理器 程序包管理器的基本功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装.卸载.查询.升级和校验等管理操作:其文件组成一般可以分为两类: 1).程序的组成组成清单 (每个包独有):文件清单. 安装或卸载时运行的脚本2).数据库(公共):程序包名称及版本.依赖关系:功能说明:安装生成的各文件的文件路径及校验码信息:软件包的组成部分. 软件包安装后,一般分布到如下一些目录: RPM 全名是『RedHat Package Manager ,R

Linux程序包管理rpm与yum

Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个ls命令就是一个二进制程序. 库文件:程序的公用功能模块,比如A程序需要用一个打印机,B程序也需要一个打印机就可以公用这一个模块了.在window下库文件为.dll格式,linux下为/lib/*so格式的文件. 配置文件:通过设置配置文件来改变程序启动时的运行特征. 帮助手册:使用的帮助文档.  

Linux下载命令之rpm和yum比较

RPM和YUM比较 rpm 是linux的一种软件包名称,以.rmp结尾,安装的时候语法为:rpm -ivh,rpm包的安装有一个很大的缺点就是文件的关联性太大,有时候装一个软件要安装很多其他的软件包,很麻烦,所以为此RedHat小红帽开发了yum安装方法,他可以彻底解决这个关联性的问题,很方便,只要配置两个文件即可安装,安装方法是:yum -y install ,yum并不是一中包,而是安装包的软件(RPM只是单单下载安装本安装包,而YUM会把与该安装包相关相互依赖的其他包一起安装) RPM