10.rpm和yum

rpm和yum

1.rpm

1.1 包管理器

  1. 二进制应用程序的组成部分:
    二进制文件、库文件、配置文件、帮助文件
  2. 程序包管理器
    debian:deb文件,dpkg包管理器
    Redhat:RPM文件,rpm包管理器
    RPM:Redhat package manager

1.2 包命令

  1. 源代码:name-version.tar.tar.gz|bz2|xz
  2. rpm包命令方式
    name-version-release.arch.rpm
    例如:bash-4.2.46-29.e17.x86_64.rpm
    version:major.minor.release
    release: release.OS
    常见的arch:
    x86:i386,i486,i586,i686
    powerpc:ppc
    跟平台无关:noarch

1.3 包命名和工具

  1. 包:分类和拆包
    application-version-arch.prm :主包
    application-devel-version-arch.prm :开发子包
    application-utils-version-arch.prm :其他子包
    application-libs-version-arch.prm :其他子包
  2. 包之间:可能存在依赖性关系,甚至依赖循环
  3. 解决依赖包管理工具:
    yum:rpm包管理器的前端工具
    apt-get:deb管理器的前端工具
    zypper:suse的rpm的前端管理工具
    dnf:Fedora 18+ rpm包管理器的前端工具

1.4 库文件

  1. 查看二进制程序锁依赖的库文件
    ldd /path/to/binary_file
  2. 管理及查看本机装载的库文件
    ldconfig 加载库文件
    /sbin/ldconfig -p: 显示本机已经缓存的所有可用库文件名及文件路径
    映射关系:
    配置文件:/etc/ld.so.conf,//etc/ld.so.conf.d/*.conf
    缓存文件:/etc/ld.so.cache

1.5 包管理器

  1. 程序包管理器:
    功能:将编译好的应用程序的各组文件打包成一个或几个程序包文件,从而方便快捷实现程序包的安装、卸载、查询、升级和校验等管理操作
  2. 包文件组成(每个包独有)
    rpm包内的文件
    rpm的元数据,如名称、版本、依赖性、描述等
  3. 数据库(公共):/var/lib/rpm
    程序包名称及版本
    依赖关系
    功能说明
    包安装后生成的各文件路径及校验码信息

1.6 程序包的来源

  1. 管理程序包的方式:
    使用包管理器:rpm
    使用前端工具:yum,dnf
  2. 获取程序包的途径
    CentOS镜像:
    https://www.centos.org/download/
    http://mirrors.aliyun.com
    http://mirrors.sohu.com
    http://mirrors.163.com
  3. 项目官方站点
  4. 第三方组织
    Fedora-EPEL
    extra packages for enterprise linux
    Rpmfore :rhel推荐 ,包很全
    搜索引擎:http://pkgs.org
    http://rpmfind.net
    http://rpm.pbone.net
    https://sourceforeqe.net/
  5. 自己制作
    注意:第三方包建议要检查其合法性,来源合法性、程序包的完整性

1.7 rpm包管理

  1. centos系统上使用rpm命令管理程序包
    安装、卸载、升级、查询、校验、数据库维护
    安装:rpm { -i | --install } [install-options] package_file…
    -v:verbose
    -vv:
    -h:以#显示程序包管理执行进度
    rpm -ivh package_file …

1.8 rpm 包安装

  1. [install-options]
    –test:测试安装,但不真正执行安装,即dry run 模式
    –nodeps: 忽略依赖性关系
    –replacepkgs | repleacefiles
    –nosignature:不检查来源合法性
    –nodigest: 不检查包完整性
    –noscripts 不执行程序脚本
    %pre:安装前脚本;–nopre
    %post:安装后脚本;–nopost
    %preun:卸载前脚本;–nopreun
    %postun:卸载后脚本;–nopostun

1.9 rpm包升级

  1. rpm {-U |–upgrade} [install-options] package_file …
  2. rpm {-F |–freshen} [install-options] package_file …
    upgrade:安装有旧版程序包,则升级
    如果不存在旧版程序包,则安装
    freshen:安装有旧版程序包,则升级
    如果不存在旧版程序包,则不执行升级操作
    rpm -Uvh package_file …

1.10升级注意项

  1. 不要对内核做升级操作;Linux 支持多内核版本并存
  2. 如果原程序包的匹配文件安装后曾被修改,升级时,新版本的提供的同一个配置文件不会直接覆盖老版本的配置文件,而把新版本的文件重命名(filename.rpmnew)后保留

1.11 包查询

  1. rpm {-q |–query} [select-options][query-options]
  2. [select-options]
    -a:所有包
    -f:查看指定的文件由哪个程序包安装生成
    -p rpmfile : 针对尚未安装的程序包文件做查询操作
    –whatprovides capability:查询指定的capability由哪个包所提供
    –whatrequires capability:查询指定的capability被哪个包所依赖
  3. rpm2cpio包文件| cpio -itv 预览包内文件
  4. rpm2cpio包文件| cpio -id “*.conf” 释放包内文件
  5. [query-options]
    –changlog: 查询rpm包的changelog
    -c: 查询程序的配置文件
    -d: 查询程序的文档
    -i: information
    -l: 查询指定的程序包安装后生成的所有文件
    –scripts 程序包自带的脚步
    –provides 列出指定程序包所能提供的capability
    -R 查询指定的程序包所依赖的capability
  6. 常用程序用法
    -qi package, -qf file ,-qc package, -ql package ,-qd package
    -qpi package_file ,-qpl package_file ,…
    -qa
  7. 包卸载:
    rpm {-e|–erase| [–allmatches][–nodeps][–noscripts][–notariggers][–test] packages_name…

1.12 rpm数据库

  1. 数据库重建
    /var/lib/rpm
  2. rpm {–initdb|–rebuilddb}
    initdb:初始化
    如果事先不存在数据库则新建,否则不执行任何操作
    rebuilddb:重建以安装的包头的数据看索引目录

2.yum

2.1yum

  1. centos:yum,dnf
  2. yum:yellow updatemodifier ,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具
    yum repository:yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)
    文件服务器:
    http://
    https://
    ftp://
    file://

2.2 yum配置文件

  1. yum客服端配置文件:
    /etc/yum.conf:为所有仓库提供公共配置
    /etc/yum.repos.d/*.repo:为仓库的指向提供配置
  2. 仓库指向的定义:
    [repositoryID]
    name=some name for this repository
    baseurl=url://path/to/repository/
    enabled={1|0}
    gpgcheck={1|0}
    gpgkey=URL
    enablegroup={1|0}
    failovermethod={roundrobin|priority|
    roundrobin:意为随机挑选,默认值
    priority:按顺序访问
    cost= 默认为1000

2.3 yum仓库

  1. yum的repo配置文件中可用的变量:
    $releasever:当前OSde 发行版的主版本号
    $arch:平台,i386,i586,i486,x86_64等
    $basearch:基础平台;i386,x86)64等
    y u m 0 − yum0- yum0yum9:自定义变量

  2. 示例:
    http://server/centos/ r e l e a s e r v e r / releaserver/ releaserver/basearch/
    http://server/centos/7/x86_64
    http://server/centos/6/i384

2.4 yum源

  1. 阿里元repo文件:
    http://mirrors.aliyun.com/repo/
  2. centos系统的yum源
    阿里云:https://mirrors.aliyun.com/centos/$releaserver/os/x86_64/
  3. epel的yum源
    阿里云:https://mirrors.aliyun.com/epel/$releaserver/os/x86_64/

2.5yum-config-manager

  1. 生成172.16.0.1_conbbler_ks_mirror_CentOS_x_x86_64.repo
    yum-config-manager --add-repo=http://172.12.0.1/cobbler/ks_mirror/7/
  2. yum-config-manager --disable “仓库名” 禁用仓库
  3. yum-config-manager --enable “仓库名” 启用仓库

2.6 yum命令

  1. yum命令的用法
    yum [options][command][package …]
  2. 显示仓库列表:
    yum repolist [all|enabled|disabled"
  3. 显示程序包
    yum list
    yum list [all | glob_exp1] [glob_exp2] […]
    yum list {available|installed|updates} [glob_exp1][…]
  4. 安装程序包
    yum install package1 [package2][…]
    yum reinstall package1[package2][…] (重新安装)
  5. 升级程序包:
    yum update [package1][package2][…]
    yum downgrade package1 [package2][…]
  6. 检查可用升级
    yum check-update
  7. 卸载程序包:
    yum remove | erase package1 [package2][…]
  8. 查看程序包information:
    yum info […]
  9. 查看指定的特性(可以是某个文件)是由哪个程序包所提供:
    yum provides | whatprovides feature1 [feature2][…]
  10. 清理本地缓存
    清除/var/cache/yum/ b a s e r c h / baserch/ baserch/releaserver缓存
    yum clean [packages| metadata | expire-cache | rpmdb |plugins | all ]
  11. 构建缓存:
    yum makecache
  12. 搜索:yum search string1 [string2][…]
    以指定的关键字搜索程序包名及summary信息
  13. 查看指定所依赖的capabilities
    yum deplist package1 [package2][…]
  14. 查看yum事务历史
    yum history [ info | list| packages-list | packages-info | summary |addon-info | redo | undo | rollback | new | sync| stats ]
    yum history
    yum history info 6 (查看相关的包)
    yum history undo 6 (撤销)
    yum history redo 6 (重做)
  15. 日志: /var/log/yum.log
  16. 安装及升级本地程序包
    yum localinstall rpmfile1 [rpmfile2][…]
    yum localupdate rpmfile2 [rpmfile2][…]
    yum grouplist [hidden][group1][group2][…]
    yum groupmove group1 [group2][…]
    yum groupinfo group1[…]
  17. yum的命令选项
    –nogpgcheck:禁止进行gpg check
    -y: 自动回答“yes”
    -q:静默模式
    –disablerepo=repoidglob 临时禁用此处指定的repo
    –enablerepo=repoidglob 临时启用此处指定的repo
    –noplugins:禁用所有插件
eg:
yum install package 安装软件包
yum reinstall package
yum remove package 卸载程序包
yum repolist 显示仓库列表
yum list  显示程序包
yum update package 升级程序包 (最好不要用)
yum dowmgrade package  降级
yum info... 查看程序包information
yum provides     查看指定的特性(可以是某文件)是由哪个程序包所提供
清楚本地缓存:清楚 /var/cache/yum/$basearch/$releasever 缓存
        yum  clean  all
搜索: yum search string
查看指定白所依赖的capabilities:  yum deplist package
查看yum事务历史: yum history  
                               yum history list  6
                               yum    history info 6
                               yum history undo  6 撤销
                               yum history redo 6
日志: /var/log/yum.log
包组管理的相关命令:
	yum groupinstall group 
	yum groupupdate group
	yum grouplist 
	yum groupremove group
	yumgroupinfo

2.7 系统光盘yum仓库

  1. 系统安装光盘作为本地yum仓库
    (1)挂载光盘子某目录:例如/mnt/cdrom
    mount /dev/cdrom /mnt/cdrom
    (2)创建配置文件
    [CentOS7]
    name=
    baseurl=
    gpgbaeck=
    enabled
  2. 创建yum仓库
    createrepo [options]
yum install httpd
systemctl start httpd
iptables -vNL
iptables stop firewalld
systemctl disable firewalld
cd /var/www/html
mkdir -p centos/{6,7}/os/x86_64/
echo '- - -' > /sys/class/scsi_host/host2/scan 添加新的光盘把它显示
lsblk
mount /dev/sr1 centos/7/os/x86_64/
mount /dev/sr0 centos/6/os/x86_64/
ifconfig
在网站上输入:http://192.168.10.130/centos/6/os/x86_64/
配置简易yum的repo文件: vim /etc/yum.repos.d/cdrom.repo  :
	[base]
	name=base
	baseurl=http://192.168.130.130/centos/$releasever/os/x86_64/
	gpgcheck=0

	[epel]
	name=epel
	baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
	gpgcheck=0
	enabled=0
自定义仓库
在data目录下创建yum仓库
cd /data
cp /misc/cd/Packages/httpd-2.4.6-90.el7.centos.x86_64.rpm  .
createrepo  /data/
cd repodata/
配置repo文件:
vim /etc/yum.repos.d/cdrom.repo  
[test]
name=test
baseurl=file:///data/test  
gpgcheck=0
进行测试

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值