软件包的封装类型

目录

  • 使用RPM软件包管理工具
    • RPM概述
    • rpm命令
      • 查询已经安装的软件包
        • 查看软件包的详细信息
        • 查询指定软件包所安装的目录、文件列表
        • 仅显示指定软件包安装的配置文件
        • 仅显示指定软件包安装的文档文件
        • 查询文件或目录属于哪个RPM软件
      • 查询未安装的RPM包文件
        • 通过.rpm包文件查看该软件的详细信息
        • 查看.rpm安装包内所包含的目录、文件列表
        • 查看.rpm安装包内包含的配置文件列表
        • 查看.rpm安装包内包含的文档文件列表
      • 安装或升级RPM软件
        • 卸载命令
        • 使用rpm命令进行安装
      • 维护RPM数据库
        • 首先模拟RPM数据库损坏
        • 修复RPM数据库
      • 导入验证公钥
        • 解决方法
    • 解决依赖关系
    • 配置yum源仓库
      • 首先进入目录
      • 在当前目录下创建一个目录,并把当前目录下的文件移动到新创建的目录里,且创建一个后缀是.repo的文件,以便后续的麻烦
      • 打开后缀是.repo的文件并写入内容。
      • 创建目录
      • 挂载
      • 之后保存并执行生效命令

使用RPM软件包管理工具

RPM概述

RPM软件包管理机制最早由Red Hat公司提出,后来随着版本的升级逐渐融入更多的优秀特性,成为众多linux发行版本中公认的软件包管理标准,其官方站点http://www.rpm.org,可以了解到关于RPM包管理机制的详细资料。
使用RPM机制封装的软件包文件拥有约定俗成的命名格式,一般使用“软件名-软件版本-发布次数.操作系统类型.硬件架构类型.rpm”的文件形式。如
软件包的封装类型_第1张图片

2.4.6 ,是软件的版本号。版本号的格式通常为“主版本号.次版本号.修正号”。
80,是发布版本号(发布次数),表示这个RPM包是第几次编译生成的。
硬件平台通常为“i386”或“i686”、x86_64、noarch等,表示适用的硬件平台,x86_64表示适用于64位的系统,如果是noarch表示不区分硬件架构
Centos的DVD安装光盘携带的软件包都在Packages目录中。一般情况下(指的是启动到桌面环境),Centos启动后安装光盘会自动挂载到系统的/run/media/root/CentOS 7 x86_64/目录下
软件包的封装类型_第2张图片

若是启动到字符终端,需要手动挂载光驱设备,先将centos的光盘镜像放入光驱设备中,执行df命令或mount命令查看光驱设备是否挂载:
软件包的封装类型_第3张图片

上图显示光驱设备未挂载。下面开始执行mount命令挂载挂光盘设备
mount命令功能是挂载一个文件系统
mount命令语法格式:mount [选项] device dir
其中device是要挂载的文件系统或设备,dir是挂载点目录
软件包的封装类型_第4张图片

其中光驱设备名是/dev/sr0或/dev/cdrom(/dev/cdrom是/dev/sr0的链接文件),/mnt就是挂载点目录。
卸除已挂载的文件系统:
umount命令用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。
umount [选项] device或挂载点
[root@localhost ~]# umount /dev/sr0 #卸载设备

[root@localhost ~]# umount /mnt/cdrom/ #卸载挂载点(推荐)

rpm命令

# rpm -qa   #查看系统中已经安装的rpm软件包列表
# rpm -qa | wc -l  #统计已经安装的rpm软件包的个数

查询已经安装的软件包

查看软件包的详细信息

查看指定软件包的详细信息可以使用如下命令

[root@l ~]# rpm -qi vim-common-7.4.160-4.el7.x86_64
Name        : vim-common
Epoch       : 2
Version     : 7.4.160
Release     : 4.el7
Architecture: x86_64
Install Date: Fri 06 Aug 2021 07:44:14 PM CST
Group       : Applications/Editors
Size        : 22145972
License     : Vim
Signature   : RSA/SHA256, Wed 25 Apr 2018 07:50:33 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : vim-7.4.160-4.el7.src.rpm
Build Date  : Wed 11 Apr 2018 07:55:09 AM CST
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.vim.org/
Summary     : The common files needed by any version of the VIM editor
Description :
VIM (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  VIM improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and more.  The
vim-common package contains files which every VIM binary will need in
order to run.

If you are installing vim-enhanced or vim-X11, you'll also need
to install the vim-common package.

查询指定软件包所安装的目录、文件列表

[root@l ~]# rpm -ql vim-common-7.4.160-4.el7.x86_64

使用这条命令可以查看指定软件包的安装目录及文件列表

仅显示指定软件包安装的配置文件

[root@l ~]# rpm -qc vim-common-7.4.160-4.el7.x86_64
/etc/vimrc

使用如上命令表示仅查看指定软件包安装的配置文件

仅显示指定软件包安装的文档文件

[root@l ~]# rpm -qd vim-common-7.4.160-4.el7.x86_64

查询文件或目录属于哪个RPM软件

[root@l ~]# rpm -qf `which vim`
vim-enhanced-7.4.160-4.el7.x86_64

查询未安装的RPM包文件

首先查询时需要进入到存放软件包的目录中

[root@l ~]# cd /mnt/cdrom/Packages/

在使用rpm -qp[子选项] RPM软件包

通过.rpm包文件查看该软件的详细信息

[root@l Packages]# rpm -qpi amanda-server-3.3.3-20.el7.x86_64.rpm 
warning: amanda-server-3.3.3-20.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Name        : amanda-server
Version     : 3.3.3
Release     : 20.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/System
Size        : 686275
License     : BSD and GPLv3+ and GPLv2+ and GPLv2
Signature   : RSA/SHA256, Wed 25 Apr 2018 06:52:46 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : amanda-3.3.3-20.el7.src.rpm
Build Date  : Wed 11 Apr 2018 01:56:24 PM CST
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.amanda.org
Summary     : The server side of the AMANDA tape backup system
Description :
The amanda-server package should be installed on the AMANDA server,
the machine attached to the device(s) (such as a tape drive) where backups
will be written. You will also need to install the amanda package on
the AMANDA server machine.  And, if the server is also to be backed up, the
server also needs to have the amanda-client package installed.

查看.rpm安装包内所包含的目录、文件列表

[root@l Packages]# rpm -qpl amanda-server-3.3.3-20.el7.x86_64.rpm

查看.rpm安装包内包含的配置文件列表

[root@l Packages]# rpm -qpc amanda-server-3.3.3-20.el7.x86_64.rpm 
warning: amanda-server-3.3.3-20.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
/etc/amanda/DailySet1/amanda.conf
/etc/amanda/DailySet1/chg-multi.conf
/etc/amanda/DailySet1/chg-scsi.conf
/etc/amanda/DailySet1/disklist
/etc/amanda/DailySet1/label-templates/3hole.ps
/etc/amanda/DailySet1/label-templates/8.5x11.ps
/etc/amanda/DailySet1/label-templates/DIN-A4.ps
/etc/amanda/DailySet1/label-templates/DLT-A4.ps
/etc/amanda/DailySet1/label-templates/DLT.ps
/etc/amanda/DailySet1/label-templates/EXB-8500.ps
/etc/amanda/DailySet1/label-templates/HP-DAT.ps
/etc/amanda/crontab.sample
/var/lib/amanda/template.d/README
/var/lib/amanda/template.d/advanced.conf
/var/lib/amanda/template.d/amanda-S3.conf
/var/lib/amanda/template.d/amanda-harddisk.conf
/var/lib/amanda/template.d/amanda-single-tape.conf
/var/lib/amanda/template.d/amanda-tape-changer.conf
/var/lib/amanda/template.d/chg-manual.conf
/var/lib/amanda/template.d/dumptypes
/var/lib/amanda/template.d/tapetypes

查看.rpm安装包内包含的文档文件列表

[root@l Packages]# rpm -qpd amanda-server-3.3.3-20.el7.x86_64.rpm

安装或升级RPM软件

格式:
rpm [选项] RPM包文件
用法:
不同选项适用于不同情况
-i:安装一个新的rpm软件包
-U:升级某个rpm软件,若原本未装,则进行安装
-F:更新某个rpm软件,若原本未装,则放弃安装
-v:显示软件安装过程中的详细信息
-h:在安装或升级软件包的过程中,以“#”号显示安装进度
-e:卸载指定的RPM软件,格式:rpm -e 软件名
–force:强制安装所指定的rpm软件包
–nodeps:安装、升级或卸载软件时,忽略依赖关系(一般不建议使用)

卸载命令

[root@l Packages]# yum -y remove vim 

使用remove卸载软件的时候加入-y表示采用取消人机交互适的卸载

使用rpm命令进行安装

[root@l Packages]# rpm -ivh vim-common-7.4.160-4.el7.x86_64.rpm
warning: vim-common-7.4.160-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
	package vim-common-2:7.4.160-4.el7.x86_64 is already installed

维护RPM数据库

RPM数据库(/var/lib/rpm目录下)用于记录在Linux系统中安装、卸载、升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预。当RPM数据库发生损坏(误删文件、非法关机、病毒破坏等导致),且Linux系统无法自动完成修复时,将导致无法使用rpm命令正常地安装、卸载及查询软件包,这时可以使用–rebuilddb或–initdb重建RPM数据库。
可以通过下面简单几个步骤
来恢复

首先模拟RPM数据库损坏

首先进入数据库

[root@l ~]# cd /var/lib/rpm

修改数据库内容

[root@l rpm]# echo "123" > __db.001

此时数库已经损坏,在用rpm命令时会报错。

[root@l rpm]# rpm -qa | grep vim
error: db5 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages index using db5 - Resource temporarily unavailable (11)
error: cannot open Packages database in /var/lib/rpm
error: db5 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages database in /var/lib/rpm

修复RPM数据库

此时需要用–rebuilddb或–initdb重建RPM数据库。

[root@l rpm]# rpm --rebuilddb

或者

[root@l rpm]# rpm --initdb

导入验证公钥

使用rpm命令进行安装软件包时需要验证公钥。
(前提是要先进入到/mnt/cdrom/Packages目录中)

[root@l rpm]# cd /mnt/cdrom/Packages/
[root@l Packages]# rpm -ivh lynx-2.8.8-0.3.dev15.el7.x86_64.rpm 
warning: lynx-2.8.8-0.3.dev15.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
error: Failed dependencies:
	redhat-indexhtml is needed by lynx-2.8.8-0.3.dev15.el7.x86_64

此时显示需要验证公钥。

解决方法

可以使用光盘中的验证公钥,将公钥导入即可。

[root@l Packages]# rpm --import /mnt/cdrom/RPM-GPG-KEY-CentOS-7

此时使用rpm安装命令时就不会产生需要密钥

[root@l Packages]# rpm -ivh vim-common-7.4.160-4.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
	package vim-common-2:7.4.160-4.el7.x86_64 is already installed

解决依赖关系

RPM包依赖关系:
树形依赖:A-B-C-D
安装时要从后往前安装先从D包开始、然后是C包…最后到A包。
环形依赖:A-B-C-D-A
安装时要可以一条命令直接装完如:rpm -ivh A B C D
总结:安装有依赖关系的多个软件时,被依赖的软件包需要先安装,同时指定多个.rpm包文件进行安装
使用yum命令安装的时候是直接自动解决依赖关系
使用rpm命令安装时需要解决依赖关系。

配置yum源仓库

首先进入目录

[root@l ~]# cd /etc/yum.repos.d/

在当前目录下创建一个目录,并把当前目录下的文件移动到新创建的目录里,且创建一个后缀是.repo的文件,以便后续的麻烦

[root@l yum.repos.d]# ls
backup  centos7.repo

打开后缀是.repo的文件并写入内容。

[centos7]
name=centos7
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0

创建目录

[root@l ~]# mkdir -p /mnt/cdrom

注意:这里创建的目录需要和之前后缀为.repo文件内的目录相同

挂载

打开/etc/fstab文件进行挂载


#
# /etc/fstab
# Created by anaconda on Fri Aug  6 19:19:20 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=d403b099-664e-470d-9618-4552885cc391 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sr0                /mnt/cdrom              iso9660 defaults        0 0

添加最后一行内容。

之后保存并执行生效命令

[root@l ~]# mount -a

此时yum源仓库配置完成。
使用命令查看是否挂载成功。

[root@l ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        98G  1.1G   97G   2% /
devtmpfs                devtmpfs  476M     0  476M   0% /dev
tmpfs                   tmpfs     488M     0  488M   0% /dev/shm
tmpfs                   tmpfs     488M  7.7M  480M   2% /run
tmpfs                   tmpfs     488M     0  488M   0% /sys/fs/cgroup
/dev/sr0                iso9660   4.2G  4.2G     0 100% /mnt/cdrom
/dev/sda1               xfs       497M  123M  375M  25% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0

此时显示已经挂载成功。及表示yum源仓库就可以使用了。

你可能感兴趣的:(linux,运维)