CentOS rpm包管理

学向勤中得,萤窗万卷书。这篇文章主要讲述CentOS rpm包管理相关的知识,希望能为你提供帮助。
rpm包管理 rpm包概述 什么是rpm包由红帽公司开发的软件升级、安装、卸载查询工具
为什么要使用rpm包就像在windows系统中一样,如果你想要安装一个QQ,安装一个微信,安装一款游戏,首先要去该软件的官网上去下载相关的软件包,通常都是.exe的安装包。还有那种绿色软件包,一下载下来,解压开就能使用无需安装。
【CentOS rpm包管理】那么Linux中也有很多种类的安装包,我们在Linux上也需要安装软件,软件包的种类也有很多,但是最方便,最简单,最简易,速度最快的,也就是rpm包了。
rpm包命名规则

## name-version-release.os.arch.rpm 软件名称-版本号-发布次数.适合linux系统.硬件平台.rpm## 举例 bash-4.2.46-34.el7.x86_64.rpm # bash:软件名称 # 4.2.46:版本号 # 34:该版本的发布次数 # el7:适合系统版本(RedHat7,CentOS7)并向下兼容 # x86_64:系统平台64位x86:32位 i386 # RPM:包的后缀名

Linux中软件的安装方式
# rpm安装:已经编译好的源码包,下载下来后,直接使用rpm命令安装即可 缺点:版本会低于官网版本# 源码安装:先编译,将源码翻译成系统认识的软件再安装 缺点:步骤复杂繁琐# 二进制安装:绿色安装,免安装 缺点:不是所有程序都能二进制包

RPM包获取途径
  • 系统光盘镜像/CentOS官网:Download (centos.org)
1.检查光盘是否放入光驱
CentOS rpm包管理

文章图片
CentOS rpm包管理

文章图片

## 挂载语法 mount 源设备文件 目标路径 [root@localhost ~]# mount /dev/cdrom /mnt mount: /dev/sr0 is write-protected, mounting read-only## 查看磁盘信息 df -h:查看磁盘分区情况,磁盘使用情况,也能查看挂载设备及目录## 卸载语法 umount 目标路径 umount /mnt [root@localhost ~]# umount /mnt/## 挂载报错 [root@localhost ~]# mount /dev/cdrom /mnt mount: no medium found on /dev/sr0 原因:设备文件是空的,里面没有任何内容,光驱没有连接## 卸载报错 [root@localhost mnt]# umount /mnt umount: /mnt: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) [root@localhost mnt]# cd [root@localhost ~]# umount /mnt 原因:设备繁忙## 查看挂载结果 [root@localhost ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# ll /mnt/ total 696 -rw-r--r--.3 root root14 Oct 302020 CentOS_BuildTag drwxr-xr-x.3 root root2048 Oct 272020 EFI -rw-rw-r--. 21 root root227 Aug 302017 EULA -rw-rw-r--. 21 root root18009 Dec 102015 GPL drwxr-xr-x.3 root root2048 Oct 272020 images drwxr-xr-x.2 root root2048 Nov32020 isolinux drwxr-xr-x.2 root root2048 Oct 272020 LiveOS drwxr-xr-x.2 root root 673792 Nov42020 Packages drwxr-xr-x.2 root root4096 Nov42020 repodata -rw-rw-r--. 21 root root1690 Dec 102015 RPM-GPG-KEY-CentOS-7 -rw-rw-r--. 21 root root1690 Dec 102015 RPM-GPG-KEY-CentOS-Testing-7 -r--r--r--.1 root root2883 Nov42020 TRANS.TBL## 此目录用来存放系统基础用的RPM包 root@localhost ~]# ll /mnt/Packages/ -d drwxr-xr-x. 2 root root 673792 Nov42020 /mnt/Packages/[root@localhost ~]# ll /mnt/Packages/bash-4.2.46-34.el7.x86_64.rpm -rw-rw-r--. 4 root root 1037976 Apr42020 /mnt/Packages/bash-4.2.46-34.el7.x86_64.rpm

  • RPM包查询官方网址:Rpmfind mirror
rpm命令使用-安装
## 语法: rpm [选项] rpm包名rpm包名: 1.本地包名:在系统中某个目录下的rpm包 2.远程包名:不用下载,直接使用网站上的rpm包 ## 选项: -i:安装 -v:显示安装的过程 -h:显示安装的进度条 --test:仅测试,不安装 --force:强制安装 --nodeps:忽略依赖关系## 举例 # -i [root@localhost ~]# rpm -i /mnt/Packages/bash-4.2.46-34.el7.x86_64.rpm# -v [root@localhost ~]# rpm -iv /mnt/Packages/bash-4.2.46-34.el7.x86_64.rpm Preparing packages...# -h [root@localhost ~]# rpm -ivh /mnt/Packages/bash-4.2.46-34.el7.x86_64.rpm Preparing...################################# [100%]# 安装远程包名 [root@localhost ~]# rpm -ivh https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/xz-5.2.2-1.el7.x86_64.rpm Retrieving https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/xz-5.2.2-1.el7.x86_64.rpm Preparing...################################# [100%] package xz-5.2.2-1.el7.x86_64 is already installed# --test [root@localhost ~]# tree -bash: tree: command not found [root@localhost ~]# rpm -ivh --test /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm Preparing...################################# [100%] [root@localhost ~]# tree -bash: /usr/bin/tree: No such file or directory# --force --nodeps [root@localhost ~]# rpm -ivh --force --nodeps /mnt/Packages/samba-4.10.16-5.el7.x86_64.rpm Preparing...################################# [100%] Updating / installing... 1:samba-0:4.10.16-5.el7################################# [100%] warning: group printadmin does not exist - using root## 注意:rpm命令管理rpm包的缺点,无法解决依赖关系,需要手动一个一个的安装依赖包

rpm命令使用-查询
## 语法 rpm [选项] rpm包名## 选项 -q:查看指定的安装包是否安装--- 以下选项皆要配合-q使用 --- -a:全部安装过的包 -i:详细信息 -l:列出rpm包相关的配置文件和目录 -c:只查看该软件包相关的配置文件 -d:只查看该软件的帮助文档文件 -f:反向查找,根据配置文件、目录、帮助文档,查找该文件属于哪个包 --scripts:查看安装包,安装之前之后和卸载之前之后要执行的脚本## 举例 # -q [root@localhost ~]# rpm -q bash bash-4.2.46-34.el7.x86_64# -qa [root@localhost ~]# rpm -qa | grep vim vim-common-7.4.629-8.el7_9.x86_64 vim-minimal-7.4.629-7.el7.x86_64 vim-filesystem-7.4.629-8.el7_9.x86_64 vim-enhanced-7.4.629-8.el7_9.x86_64# -qi 组合使用 [root@localhost ~]# rpm -qa|grep net|xargs rpm -qi# -ql [root@localhost ~]# rpm -ql bash# -qd [root@localhost ~]# rpm -qc bash# -qf [root@localhost ~]# rpm -qf /etc/networks initscripts-9.49.53-1.el7.x86_64# -q --scripts [root@localhost mnt]# rpm -q --scripts bash postinstall scriptlet (using < lua> ): nl= \\n sh= /bin/sh..nl bash= /bin/bash..nl f = io.open(/etc/shells, a+) if f then local shells = nl..f:read(*all)..nl if not shells:find(nl..sh) then f:write(sh) end if not shells:find(nl..bash) then f:write(bash) end f:close() end postuninstall scriptlet (using < lua> ): -- Run it only if we are uninstalling if arg[2] == "0" then t= for line in io.lines("/etc/shells") do if line ~= "/bin/bash" and line ~= "/bin/sh" then table.insert(t,line) end endf = io.open("/etc/shells", "w+") for n,line in pairs(t) do f:write(line.."\\n") end f:close() end

镜像站地址
1.阿里云镜像站:(https://developer.aliyun.com/mirror/)
2.网易镜像站:(http://mirrors.163.com/)
3.清华源:(https://mirrors.tuna.tsinghua.edu.cn/)
4.中科大源:(https://mirrors.ustc.edu.cn/)

    推荐阅读