linux内核安装rpm包,Linux程序包管理:RPM和YUM

Linux程序包管理:RPM和YUM

就像Window一样,我们安装了windows系统如果没有相应的应用软件,如OFFICE,IE,等各种软件,用户是无法使用计算机,linux 完成各种应用功能,也需要各种应用程序,所以程序包的管理就非常必要。

Linux平台的内核功能:进程管理、内存管理、网络协议栈、驱动程序、...

应用程序:

早期的linux程序包的组成部分:

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

库文件:/lib64, /usr/lib64

配置文件:/etc

帮助文件:manual, info,

所以早期在linux上安装管理应用程序非常的不便。直到包管理器的出现

包管理器的作用:打包,包管理(安装、升级、卸载、查询及校验)

deb: debian 最早的包管理器

rpm: redhat package manager 现在最为流行的包管理器,

RPM is Package Manager

如何获取rpm包:

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

2、Fedora-EPEL

3、项目的官方站点

4、搜索引擎http://rpmfind.nethttp://rpm.pbone.nethttp://pkgs.org

CentOS识别光盘用的设备文件:/dev/cdrom

以下是我的操作:

18c5a65c9ad042aca7e54e991f5371e3.png

47c0c8b452a1513a5bcdda8feae23900.png

9f230cdb8784323c540867b7f53fad35.png

4985f0e7b9faa5ade6e221751e86e3e6.png

8384ad95344b0f50b174b4cb7f5f528a.png

基于rpm命令实现程序包管理:

安装:

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

-i:   安装软件包

-v:显示详细过程,-vv, -vvv

-h:软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好)

c266dad8a18dc82a04e0636661decc68.png

由于每个rpm包都提供一个或多个capabilities,所以rpm包会有依赖关系

--nodeps:忽略依赖关系安装

--replacepkgs:重装程序包

89ae3c4d2a9a03843f9debc36d221c59.png

升级:

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

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

-Uvh: 如果有旧版程序包,则升级之;如果没有,则安装之;

-Fvh: 如果有旧版程序包,则升级之;如果没有,则不安装;

67af52b2b3e683df5c4a87da21a045a8.png

--nodeps:不验证软件包依赖

--oldpackage:降级;linux服务器要的是稳定,所以有时我们需要降级,经常使用

先升级:

6bb41e844ae6722c2e2b5a1bb35117da.png再降级:

ed3bdcc383656b0ef67dc4405cdef906.png                   --force:强制升级

卸载:

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

3b17066b83fbb81035679038d89718a9.png

查询:

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

查询选项:

-qa: 查询本机已经安装的所有程序包;

f3d19e4d059c2277274844174419f1d0.png 

-qf /PATH/TO/SOMEFILE: 查询此处的文件由哪个程序包安装生成;

f756cb91f0e71d56b96cce78fb7a1241.png

-qc: 查询指定程序包安装生成的配置文件

a2fd01f796d943ac29c7c63b39902384.png                

-qd: 查询指定的程序包安装生成的文档

03a508e5b31d09cbe225d107cb45c362.png

-qi: 查询指定的程序包的相关信息;

305a54d1ade627c3d4ac12542f922e6a.png                

-ql: 查询程序包安装生成的所有文件的列表;

bc61361b8ec4142d935fd5bf600448f8.png                

-q --scripts:查询程序包相关的脚本:

preinstall: 安装前脚本

postinstall:安装后脚本

preuninstall: 卸载前脚本

postuninstall: 卸载后脚本

-p: 查询针对是未安装的程序包文件;

2ffc652e58c5ac962e634bce69065040.png

校验:

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

包校验:

来源合法性验正:非对称加密

完整性验正:单向加密

导入密钥:rpm --import /PATH/TO/KEY_FILE

校验:rpm -K /PATH/TO/RPM_FILE

YUM: Yellowdog Updater Modified

yum repositories:

文件服务器:ftp://hostname/PATH/TO/REPOhttp://hostname/PATH/TO/REPOfile:///PATH/TO/REPO

yum程序的配置文件:

/etc/yum.conf

定义全局配置:对所有仓库都适用的配置

/etc/yum.repos.d/*.repo

一个文件通常用于一个或一组功能相近或相关的仓库

定义一个YUM仓库指向:

[REPO_ID]           仓库的名字,不能与其他仓库重名

name=                说没仓库的意义

baseurl=              定义仓库的实际有效地址

# mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE    该仓库的镜像站点

enabled={1|0}      1表示启用,0表示不启动,默认为启用

gpgcheck={1|0}    检验包的合法,完整,0为不启动

gpgkey=               公钥文件的位置

cost=                     仓库的开销

定义仓库指向可用变量:

$releasever: 引用当前系统的主版本号;

$basearch: 当前系统的基本架构;

i386, i486, i586, i686: i386

yum命令:

yum [options] [command] [package ...]

命令:

安装:install

9d7554ac151858aca4225324763c4360.png

卸载:remove

673d43ece8af047d7f11f44e2c4ecac1.png                

升级:update

ad47b4cb274a16717a4a5b241aeeff91.png

查询:

info

search KEYWORD

list all|installed|availiable

provides /PATH/TO/SOMEFILE: 查询指定文件由哪个包安装生成

重新安装:reinstall

903506fa37c3759ec4ee41203879ee1c.png

降级:downgrade

bbe20f16060edaf7240d3622fbb23fd1.png

清理缓存:clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

生动生成缓存:makecache

包组:

grouplist

groupinfo "GRP_NAME"

groupinstall "GRP_NAME"

groupremove "GRP_NAME"

仓库:

repolist [all|enabled|disabled]    列出所有可用仓库,默认是all

repoinfo [all|enabled|disabled]   查看仓库相关信息

如何使用光盘当做本地仓库:

挂载光盘至某目录

1:挂载光盘到/media/cdrom

3922aee5653f188b3370a58088bb3195.png

2:/创建并编辑/etc/yum.repos.d/cdrom.repo文件,

添加如下:

94b9fa74b40603b077fa43c1874b1ec1.png

3:备份源仓库文件并改名:

[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak

创建本地仓库:

yum install createrepo

createrepo /PATH/TO/RPMFILES/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值