软件包的管理(rpm和yum)

软件包在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础;只有我们学会软件包的管理才能谈得上其它的应用;本文以目录式的文档格式,列出新手弟兄所面对的软件包的安装、更新、查询相对的文档,以及几个常用的软件包管理工具。

软件包管理:

一,RPM包管理;

二,yum包管理;

一,RPM包管理:

centos系统上RPM命令管理程序包:

安装,升级,卸载,查询,校验,数据库维护

RPM命令:rpm [OPTIONS] [PACKAGE_FILE]

安装:-i ,--install

升级:-U,--update, -F,--freshen

卸载: -e,--erase

查询: -q,--query

校验: -v,--verify

数据库维护:--builddb,--initdb

(1)安转:

rpm{-i | --install}[install-options] PACKAGE_FILE ...

GENERAL OPTIONS:

-v:  verbose,详细信息

-vv:更详细的输出

[install-options]

-h:hash marks输出进度条;每个#表示2%的进度;

--test:测试安转,检查并报告依赖关系及冲突消息等;

--nodeps:忽略依赖关系,不建议使用;

--replacepkgs:重新安装

--nosignature:不检查包签名信息,不检查来源合法性;

--nodigest:不检查包完整性信息;

--noscripts:

preinstall: 安转过程开始之前运行的脚本,%pre,--nopre

postinstall:安装过程完成之后运行脚本,%post,--nopost

preunintall:卸载过程真正开始执行之前运行的脚本,%preun,--nopreun

postuninstall:卸载过程完成之后运行的脚本,%postun,--nopostun

注意:rpm可以自带脚本;

(2)升级:

rpm {-U | --upgrade} [install-options] PACKAGE_FILE ....

rpm {-F | --freshen} [install-options] PACKAGE_FILE ....

-U:升级或安装;

-F:升级

rpm -Uvh PACKAGE_FILE ....

rpm -Fvh PACKAGE_FILE ....

--oldpackage:降级;

--force:强制升级;

注意:1,不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安转新版本内核;

2,如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew) 后保留;

(3)卸载:

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ..

--allmatches:卸载所有匹配指定名称的程序包的各版本;

--nodeps:忽略依赖关系

--test:测试卸载,dry run模式

(4)查询:

rpm {-q|--query} [select-options] [query-options]

[select-options]

PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;

-a, --all:查询所有已经安装过的包;

-f, --file FILE:查询所有指定的文件有那个程序包安装生成;

-p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;

--whatprovides CAPABILITY:查询指定的 CAPABILITY 由那个程序包提供;

--whatrequires CAPABILITY:查询指定的 CAPABILITY 由那个包依赖;

[query-options]

--changelog:查询rpm包的changelog;

-l, --list:程序安装生成的所有文件列表;

-i, --info:程序包相关的信息,版本号,大小,所属的包组,等;

-c, --configfiles:查询指定的程序包提供的配置文件;

-d, --docfiles:查询指定的程序包提供的文档;

--provides:列出指定的程序包提供的所有的CAPABILITY;

-R, --requires:查询指定的程序包的依赖关系;

--scripts:查看程序包自带的脚本片段;

用法:

-qi PACKAG, -qf FILE, -qc PACKAG, -ql PACKAG, -qd PACKAG,-qpl PACKAG_FILE

(5)校验:

rpm {-V|--verify} [select-options] [verify-options]

S file Size differs

M Mode differs (includes permissions and file 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

T mTime differs

P caPabilities differ

包来源合法性验证和完整性验证:

来源合法性验证:RSA

完整性验证:SHA256

获取并导入信任的包制作者的秘钥:

对于centos发行版来说:rpm --import / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

验证:

(1)安装此组织签名的程序时,会自动执行验证;

(2)手动验证:rpm -k PACKAGE_FILE (来源合法性和完整性)

(6)数据库重建:

rpm管理器数据库路径:/var/lib/rpm/

查询操作:通过此处的数据库进行;

获取帮助:

centos 6:man rpm

centos 7:man rpmdb

rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIREC‐TORY]

--initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作;

--rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;

二,yum包管理:

(1)yum 配置文件

1,yum 客户端配置文件:

/etc/yum.conf :为所有仓库提供公共配置

/etc/yum.repos.d/*.repo :为仓库的指向提供配置

仓库指向的定义:

[repositoryID](仓库ID)

name=Some name for this repository  (仓库名)

baseurl=url://path/to/repository/   (地址)

enabled={1|0}  (是否启用)

gpgcheck={1|0}  (是否检查)

gpgkey=URL

文件服务器(URL):

ftp://

http://

file:///

2,如何使用光盘当作本地yum 仓库:

挂载光盘至某目录,例如/media/cdrom

# mount /dev/cdrom /media/cdrom

创建配置文件,vim /etc/yum.repos.d/centos-local.repo

[CentOS7]

name=

baseurl=

gpgcheck=

enabled=

3,如何使用网络源做yum仓库:

创建配置文件,vim /etc/yum.repos.d/bash.repo

[CentOS7]

name=

baseurl=

gpgcheck=

enabled=

(2)yum的命令管理:

yum 的命令行选项:

-y:  自动回答为“yes”

-q :静默模式

--nogpgcheck :禁止进行gpg check

--disablerepo=repoidglob :临时禁用此处指定的repo

--enablerepo=repoidglob :临时启用此处指定的repo

--noplugins :禁用所有插件

显示仓库列表:

yum repolist [ all | enabled | disabled ]  [全部 | 启用 | 禁止]

显示程序包:

yum list

yum list [all ]

yum list [available | installed | updates]  [可用的 | 安装过的 | 升级的]

安装程序包:

yum install package1

yum reinstall package1  ( 重新安装)

升级程序包:

yum update package1

yum downgrade package1 ( 降级)

检查可用升级:

yum check-update

卸载程序包:

yum [remove | erase] package1   [卸载 | 抹除]

查看包的详细信息

yum info package

查看指定的特性( 可以是某文件) 是由哪个程序包所提供:

yum provides  feature1

清理本地缓存:

yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

[程序包 | 元数据 | 过期的缓存 | rpmdb | 插件 | 全部的]

构建缓存:

yum makecache

搜索:以指定的关键字搜索程序包名及summary(简要) 信息

yum search string1

查看yum 事务历史:

yum history

yum history list #     (可以显示某个处理过程)

yum history info #  (可以显示某个历史安装包的详细信息)

yum history redo #  (可以重新安装某个历史的所有安装包)

yum history undo #  (可以撤销某个历史的所有安装包,类同卸载  (不适用包组))

安装及升级本地程序包:

yum install rpmfile  (安装本地程序包)

yum update rpmfile  (升级本地程序包)

包组管理的相关命令:

yum grouplist   (查看包组)

yum groupinfo group   (查看包组的详细信息)

yum groupinstall group   (安装包组)

yum groupupdate group  (升级包组)

yum groupremove group  (卸载包组)

(3)编译安装:

c/c++ 编译器: gcc (GNU C Complier)

编译C源代码:

准备: 提供开发工具及开发环境

开发工具:make, gcc等

开发环境:开发库,头文件

glibc :标准库

实现:通过 “包组”提供开发组件

CentOS 6:

Development Tools

Server Platform Development

CentOS 7:

Development Tools

Development and Creative Workstation

( get命令 是把目录或文件放到桌面 )

第一步:./configure 脚本

选项:指定安装位置、指定启用的特性--help:  获取其支持使用的选项

选项分类:

安装路径设定:

--prefix=/PATH:  指定默认安装位置, 默认为/usr/local/

--sysconfdir=/PATH :配置文件安装位置

System types: 支持交叉编译

Optional Features:  可选特性

--disable-FEATURE

--enable-FEATURE[=ARG]

Optional Packages:  可选包,

--with-PACKAGE[=ARG], 依赖包

--without-PACKAGE, 禁用依赖关系

第二步:make:根据makefile 文件,构建应用程序

第三步:make install : 复制文件到相应路径

安装后的配置:

(1)  二进制程序目录导入至PATH 环境变量中;

编辑文件/etc/profile.d/NAME.sh

PATH=/PATH/TO/BIN:$PATH

(2)  导入库文件路径

编辑/etc/ld.so.conf.d/NAME.conf

添加新的库文件所在目录至此文件中

让系统重新生成缓存:

ldconfig [-v]

(3)  导入头文件

基于链接的方式实现:

ln -sv

(4)  导入帮助手册

编辑/etc/man.config|man_db.conf 文件

添加一个MANPATH

时间: 2024-10-10 07:01:24

软件包的管理(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,这代表这个

软件包管理rpm和yum

rpm的使用: 安装的包相关包信息会保存在/var/lib/rpm目录下的文件中 安装参数: -i install安装 -v 显示详细信息 -h 打印####号 -V 校验软件包,会到/var/lib/rpm下进行校验 常用 rpm -ivh 软件包安装(包全名) 查询参数: -q query查询 -i 拆线已安装报的详细信息 -l 查询安装的包的所有路径 -a 查询所有安装的包 -p 查询未安装的软件包的相关信息 -R 查询软件包的依赖性 -f  反向查找文件是由那个软件包安装的 rpm -V

学习笔记之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与简单编译安装程序

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

Linux程序包管理--rpm和yum的原理和基本用法

Linux中的程序包主要分为两类: 二进制可执行安装包和源代码程序文件包. 本文主要讲解使用rpm程序包管理器和yum管理器前端工具来实现对二进制可执行安装包的安装, 查询, 升级和卸载等相关操作. Linux中在二进制可执行安装程序包安装上会涉及多个文件的操作, 操作过程就会比较复杂, 为简化该过程就使用程序安装包管理器来管理程序包的安装过程, 大大简化了程序包安装过程. Linux根据发行版本不同, 使用不同的程序包管理器实现对程序包的管理, 在这里主要介绍两大分支: debian: 使用d

Linux程序包管理rpm与yum

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

程序包管理RPM、YUM及源代码编译

一.YUM YUM: Yellowdog Update Modifier.YUM是通过分析RPM的标题相关数据后,根据软件的相关性制作出的软件安装时属性依赖的解决方案,其可以自动处理软件之间的依赖问题,以尽量方便用户解决软件在安装.删除或升级的问题. YUM分为YUM客户端和YUM服务器,而我们经常使用到的就是客户端. 客户端的配置文件分两种: /etc/yum.config:为所有的仓库提供公共的配置 /etc/yum.repos.d/*.repo:为仓库的指向提供配置 我们在安装软件时通常使

Linux软件包的管理--RPM包管理器

在Linux中如何安装.升级.卸载软件,是我们日常运维中重要的组成部分.接下来一CentOS6系统为例,讲解如何使用 RPM 包管理器,yum包管理器以及源码的方式来管理我们的软件包. 一.相关的背景知识 许多程序的源程序,例如使用C语言编写的源代码,要经过预处理,编译,汇编,链接才能生成真正的可执行程序(二进制),才可以使用.为了简化这样的过程,就出现了所谓的包管理器.它出现的目的是:将编译好的程序打包成一个文件或有限的几个文件,可用于实现安装.卸载.升级.查询等功能. 一个包管理器应该具有如

Linux软件管理(rpm、yum、tar)

RPM软件包安装 YUM安装 源代码安装 TAR包管理:实现对文件的备份和压缩 rpm包管理 rpm命令是RPM软件包的管理工具. -a:查询所有套件:-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称:-c:只列出组态配置文件,本参数需配合"-l"参数使用:-d:只列出文本文件,本参数需配合"-l"参数使用:-e<套件档>或--erase<套

Linux运维练习--程序员包管理rpm与yum

程序包管理: 包管理器:作用是打包以及包管理(安装.升级.卸载.查询及校验) 对于不同linux发行版本有不同的包管理器,主要有 deb:debian rpm:redhat package Manager,rpm成为事实上包管理器的标准 程序包的组成部分: 二进制程序:通常存放在以下文件,/bin, /sbin,/ /usr/bin, /usr/sbin,                          库文件:通常存放在以下文件,/lib64, /usr/lib64(64位系统)