Linux包管理:rpm/yum/编译安装

rpm:安装,查询,升级,校验,卸载

 

Topic:

程序包

rpm管理

yum管理

 

程序包:

 

什么是程序包管理器:

将编译好的应用程序的各个组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装、升级、卸载和查询等管理操作

 

程序包的组成清单:

文件清单

安装或卸载时运行的脚本

数据库(公共)

程序包的名称和版本

依赖关系

功能说明

安装生成的个文件的文件路径及校验信息

 

获取程序包的途径

(1) 系统发行版的光盘或官方的文件服务器(或镜像站点)

http://mirrors.aliyun.com

http://mirrors.sohu.com

http://mirrors.163.com

(2) 项目的官方站点

(3) 第三方组织

a. EPEL

b. rpm包搜索引擎

http://pkgs.org

http://rpmfind.net

http://rpm.pbone.net

(4) 自动动手制作rpm包

 

RPM管理:包括rpm包的安装、查询、升级、校验、卸载

 

rpm包命名格式

name-version-release.arch.rpm

version: major.minor.release

release: rpm包的发行号

release os: 2.el7.i386.rpm

arch: 平台。例如:i386, x86_64等

 

rpm命令:rpm [OPTIONS] [PACKAGE_FILE]

安装:-i, –install,在当前系统安装一个新的rpm软件包

升级:-U, –update, 检查并升级指定的软件包,如果系统没有此软件包则执行安装命令

-F, –freshen,检查并升级指定的软件包,如果系统没有此软件包不执行安装命令

卸载:-e, –erase,删除指定的软件包

查询:-q, –query,查询软件包的相关信息

校验:-V, –verify,安装后校验指定的软件包

数据库维护:–builddb, –initdb

 

安装功能:

rpm {-i|–install} [install-options] PACKAGE_FILE…

常用选项:

rpm -ivh PACKAGE_FILE

-v:verbose,详细信息

-vv:更详细的输出

 

[install-options]:

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

–test:测试安装,并不是真正的安装,检查并报告依赖关系及冲突消息等。

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

–replacepkgs:替代原来的包重新安装

–nosigature:不检查包签名信息,不检查包来源合法性

–nodigest:不检查包完整性

 

升级功能:

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

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

 

注意:

(1) 不要对内核做升级操作,Linux支持多内核版本并存,因此,直接安装新版本内核

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

 

卸载命令:

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

–allmatch:卸载所有匹配指定名称的程序包的各版本

–nodeps:卸载时忽略依赖关系

–test:测试卸载,并不执行真正的卸载命令

 

查询功能:

rpm {-q|–query} [selection-options] [query-options] PACKAGE_NAME

[selection-options]

PACKAGE_NAME:查询指定的程序包是否已经安装

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

-f FILE:查询指定文件由那个程序包安装生成

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

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

–whatrequires CAPABILITY:查询指定的CAPABILITY被那个包以来

[query-options]

–changelog:查询rpm包的changelog

-l,–list PACKAGE_NAME:查询安装生成文件列表

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

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

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

–provides PACKAGE_NAME:列出指定的程序包提供的所有的CAPABILITY

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

–scripts PACKAGE_NAME:查询程序包自带的scripts都有哪些信息

 

常用语法格式:

rpm -qi PACKAGE_NAME

rpm -qf PACKAGE_FILE

rpm -qc PACKAGE_NAME

rpm -ql PACKAGE_NAME

rpm -qd PACKAGE_NAME

rpm -qpl PACKAGE_FILE

rpm -qpi PACKAGE_FILE

rpm -qpc PACKAGE_FILE

 

校验功能:

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

S file Size differ

M Mode differs (including 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

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

来源合法性验证:

数字签名:制作者提取加密程序包的特征码,然后将自己的私钥加到特征码后面

完整性验证:获取并导入新人的包制作者的秘钥

对于CentOS 7来说:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CENTOS-7

验证:

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

(2) 手动验证:rpm -K PACKAGE_FILE

 

数据库重建:

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

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

获取帮助:

CentOS 6:man rmp

CentOS 7:man rpmdb

 

rpm {–initdb | –rebuilddb}

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

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

 

YUM管理:

 

什么是yum

yum的全称是(Yellow Dog Modifier),是RHEL系列Linux发行版的包管理工具。主要帮助我们解决了安装时包之间的依赖关系

 

yum repository:yum rempo

存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata)

 

文件服务器的类型:

ftp://

http://

nfs://

file:///

 

yum客户端

配置文件:

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

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

 

仓库指向的定义:

[repositoryID]

name=Some name for this repository

baseurl=url://path/to/repository

enabled={1|0}

gpgcheck

gpgkey=url

enablegroup={1|0}

failovermethod={roundrobin|priority}

默认为:roundrobin,意为碎金挑选

const=

默认为1000

 

yum命令的用法:

yum [options] [command] [package]

 

* install package1 [package2] […]

* update [package1] [package2] […]

* update-to [package1] [package2] […]

* update-minimal [package1] [package2] […]

* check-update

upgrade [package1] [package2] […]

* upgrade-to [package1] [package2] […]

* distribution-synchronization [package1] [package2] […]

* remove | erase package1 [package2] […]

* autoremove [package1] […]

* list […]

* info […]

* provides | whatprovides feature1 [feature2] […]

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

* makecache [fast]

* groups […]

* search string1 [string2] […]

* shell [filename]

* resolvedep dep1 [dep2] […]

(maintained for legacy reasons only – use repoquery or yum provides)

* localinstall rpmfile1 [rpmfile2] […]

(maintained for legacy reasons only – use install)

* localupdate rpmfile1 [rpmfile2] […]

(maintained for legacy reasons only – use update)

* reinstall package1 [package2] […]

* downgrade package1 [package2] […]

* deplist package1 [package2] […]

* repolist [all|enabled|disabled]

* repoinfo [all|enabled|disabled]

*  repository-packages  <enabled-repoid>  <install|remove|remove-or-reinstall|remove-or-distribu‐

tion-synchronization> [package2] […]

* version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]

*      history     [info|list|packages-list|packages-info|summary|addon-info|redo|undo|roll‐

back|new|sync|stats]

* load-transaction [txfile]

* updateinfo [summary | list | info | remove-pkgs-ts | exclude-updates | exclude-all | check-run‐

ning-kernel]

* fssnapshot [summary | list | have-space | create | delete]

* fs [filters | refilter | refilter-cleanup | du]

* check

* help [command]

 

显示仓库列表:

repolist [all|enabled|disabled]

 

显示程序包

list

yum list [all | glob_exp1] [glob_ex2] […]

yum list availabel {available | installedupate} [glob_exp1] […]

 

安装程序包:

yum install package1 [package2] […]

reinstall package1 [package2] […] 重新安装

 

 

rpm的安装包在安装时可能会和其他程序要有依赖关系。

 

前端工具能自动解决:

yum:RHEL系列系统上rpm包管理器的前端工具

apt-get(apt-cache):Debian系统deb包管理器的前端工具

zypper:SUSE系统rpm包管理器的前端工具

 

 

 

-ivh:rpm包安装

-Uvh:更新或安装

-Fvh:

 

yum:

 

编译:将程序源码编译后安装

原创文章,作者:mxb93,如若转载,请注明出处:http://www.178linux.com/44835

(2)
上一篇 2017-09-14 15:16
下一篇 2017-09-14 16:04

相关推荐

  • 软件包管理

    1.程序包管理器 源代码–>目标二进制格式–>组织称为一个或有限几个“包”文件;     安装、升级、卸载、查询、校验 程序包管理器: debian(Ubuntu):dpt,工具:dpkg,程序包以“.deb”结尾 redhat:redhat package manager&nbsp…

    Linux干货 2016-08-21
  • bash脚本编程语言if语句,find文件查找和压缩工具及课后作业练习

    一.概述 使用read命令来接受输入 使用read来把输入值分配给一个或多个shell变量: -p指定要显示的提示 -t TIMEOUT read从标准输入中读取值,给每个单词分配一个变量 所有剩余单词都被分配给最后一个变量 read -p “Enter a filename:“ FILE 过程式编程语言: 顺序执行 选择执行 循环执行 条件选择if语句 选…

    Linux干货 2016-08-22
  • LVS四种模式

    马哥教育网络班18期 第17周课程练习1 LVS工作模式图解 LVS-NAT模式 TCP请求报文的目的IP地址被Director调度服务器重写为RIP后发送给RS,RS的默认网关配置为Director的DIP,Director接受到RS响应报文后修改源IP地址发送给用户IP RS网关指向DIP,RIP,DIP和RIP必须在同一网段内 Director转发请求…

    Linux干货 2016-06-23
  • Linux 之LVM

    一 LVM 简介:     LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。LVM的工作原理其…

    Linux干货 2016-03-01
  • Linux中命令的分类,hash缓存表与别名

        命令的分类:     在Linnux中,平常工作用的是字符界面。Linux输入命令后,shell接收命令通过系统调用把命令送入内核中执行。    *shell中的可执行命令分为两类        1.内部命令:为shell自带命令,利用某种形式在开机后…

    Linux干货 2017-07-15
  • bash特性及bash脚本编程初步

    终端,附着在终端的接口程序: GUI:KDE, GNome, Xfce CLI:/etc/shells bash zsh fish   bash的特性: 命令行展开:~, {} 命令别名:alias, unalias 命令历史:history 文件名通配:glob 快捷键:Ctrl+a, e, u, k, l 命令补全:$PATH 路径补全: &n…

    Linux干货 2016-11-21