rpm包名,软件包名,程序名和rpm包,源码包的安装说明

目录

RPM包的命名规则

Linux_RPM包详解 

什么是RPM包

RPM包的特点

RPM包的安装

RPM常用选项

编译安装和软件包安装

为什么linux安装程序 都要放到/usr/local目录下?

linux configure 的 --prefix 参数的作用

rpm包的卸载与安装

RPM命令的--nodeps 和--force参数解释

yum 下载全量依赖 rpm 包及离线安装(终极解决方案)


RPM包的命名规则

示例:bind-9.8.2-0.47.rc1.el6.x86_64.rpm        #rpm包名
1.name,如:bind,是软件包的名称
2.version,如:9.8.2-0,是软件的版本号,版本号格式通常为“主版本号.次版本号.修正号”。47,是发布版本号,表示这个rpm软件包是第几次编译生成的
3.arch,如i386,是表示包适用的硬件平台,目前rpm支持的平台有:i386,i586,i686,sparc和alpha
4..rpm和.src.rpm,是rpm包类型后缀,rpm是编译好的二进制包,.src.rpm是源码包
5.特殊名称:
(1)el*:表示发行商的版本,el6表示这个软件包是在rhel6.x/centos6.x下使用;
(2)devel:表示这个rpm包是软件的开发包
(3)noarch:说明这样的软件包可以在任何平台安装和运行,不需要特定的硬件平台

例如 httpd-manual- 2.0.40-21.i386.rpm
httpd-manual ----- 软件包名称
2 ----- 主版本号
0 ----- 次版本号
40 ----- 次版本号
21 ----- 编译的次数
i386 ----- 适合的平台
rpm ----- 说明是一个RPM包
地址:https://www.cnblogs.com/yatolovefantasy/articles/13666958.html#_labelTop

#############################################################################
rpm包名软件包名程序名的说明:
[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -qf `which mkfs.ext4`  #显示文件是什么软件包安装的
e2fsprogs-1.42.9-13.el7.x86_64     
2fsprogs-1.42.9-13.el7.x86_64.rpm为rpm包名,e2fsprogs为软件包名,mkfs.ext4为应用程序名

[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -qi e2fsprogs
Name        : e2fsprogs
Version     : 1.42.9
Release     : 13.el7
Architecture: x86_64
Install Date: Thu 11 Jul 2019 10:52:54 AM CST
Group       : System Environment/Base
Size        : 2548829
License     : GPLv2
Signature   : RSA/SHA256, Mon 12 Nov 2018 10:23:57 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : e2fsprogs-1.42.9-13.el7.src.rpm
Build Date  : Wed 31 Oct 2018 03:05:51 AM CST
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://e2fsprogs.sourceforge.net/
Summary     : Utilities for managing ext2, ext3, and ext4 filesystems
Description :
The e2fsprogs package contains a number of utilities for creating,
checking, modifying, and correcting any inconsistencies in second,
third and fourth extended (ext2/ext3/ext4) filesystems. E2fsprogs
contains e2fsck (used to repair filesystem inconsistencies after an
unclean shutdown), mke2fs (used to initialize a partition to contain
an empty ext2 filesystem), debugfs (used to examine the internal
structure of a filesystem, to manually repair a corrupted
filesystem, or to create test cases for e2fsck), tune2fs (used to
modify filesystem parameters), and most of the other core ext2fs
filesystem utilities.

You should install the e2fsprogs package if you need to manage the
performance of an ext2, ext3, or ext4 filesystem.

[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -ql e2fsprogs
/etc/e2fsck.conf
/etc/mke2fs.conf
/usr/bin/chattr
/usr/bin/lsattr
/usr/sbin/badblocks
/usr/sbin/debugfs
/usr/sbin/dumpe2fs
/usr/sbin/e2freefrag
/usr/sbin/e2fsck
/usr/sbin/e2image
/usr/sbin/e2label
/usr/sbin/e2undo
/usr/sbin/e4defrag
/usr/sbin/filefrag
/usr/sbin/fsck.ext2
/usr/sbin/fsck.ext3
/usr/sbin/fsck.ext4
/usr/sbin/logsave
/usr/sbin/mke2fs
/usr/sbin/mkfs.ext2
/usr/sbin/mkfs.ext3
/usr/sbin/mkfs.ext4
/usr/sbin/mklost+found
/usr/sbin/resize2fs
/usr/sbin/tune2fs
/usr/share/doc/e2fsprogs-1.42.9
/usr/share/doc/e2fsprogs-1.42.9/COPYING
/usr/share/doc/e2fsprogs-1.42.9/README
/usr/share/doc/e2fsprogs-1.42.9/RELEASE-NOTES
/usr/share/locale/ca/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/cs/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/de/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/es/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/fr/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/id/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/it/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/nl/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/pl/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/sv/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/tr/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/vi/LC_MESSAGES/e2fsprogs.mo
/usr/share/locale/zh_CN/LC_MESSAGES/e2fsprogs.mo
/usr/share/man/man1/chattr.1.gz
/usr/share/man/man1/lsattr.1.gz
/usr/share/man/man5/e2fsck.conf.5.gz
/usr/share/man/man5/ext2.5.gz
/usr/share/man/man5/ext3.5.gz
/usr/share/man/man5/ext4.5.gz
/usr/share/man/man5/mke2fs.conf.5.gz
/usr/share/man/man8/badblocks.8.gz
/usr/share/man/man8/debugfs.8.gz
/usr/share/man/man8/dumpe2fs.8.gz
/usr/share/man/man8/e2freefrag.8.gz
/usr/share/man/man8/e2fsck.8.gz
/usr/share/man/man8/e2image.8.gz
/usr/share/man/man8/e2label.8.gz
/usr/share/man/man8/e2undo.8.gz
/usr/share/man/man8/e4defrag.8.gz
/usr/share/man/man8/filefrag.8.gz
/usr/share/man/man8/fsck.ext2.8.gz
/usr/share/man/man8/fsck.ext3.8.gz
/usr/share/man/man8/fsck.ext4.8.gz
/usr/share/man/man8/logsave.8.gz
/usr/share/man/man8/mke2fs.8.gz
/usr/share/man/man8/mkfs.ext2.8.gz
/usr/share/man/man8/mkfs.ext3.8.gz
/usr/share/man/man8/mkfs.ext4.8.gz
/usr/share/man/man8/mklost+found.8.gz
/usr/share/man/man8/resize2fs.8.gz
/usr/share/man/man8/tune2fs.8.gz
[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -qc $(rpm -qf `which mkfs.ext4`) #查看配置文件
/etc/e2fsck.conf
/etc/mke2fs.conf

查看命令属于哪个软件包
yum provides ifconfig  //如果ifconfig命令不存在,可以通过yum查询该命令来自于哪个软件包

[root@192 ~]# which finger
/usr/bin/which: no finger in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@192 ~]# yum provides finger
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
1 packages excluded due to repository priority protections
finger-0.17-52.el7.x86_64 : The finger client
Repo        : base

#############################################################################

Linux_RPM包详解 

什么是RPM包

rpm(RedHat Package Manager)一种通过资料库管理的方式将所需要的软件安装到主机上的管理程序.

RPM包的特点

1:事先已经编译好
2:安装方便
3:安装过程中要求环境一致
4:反安装时要从最上层开始

RPM包的安装

RPM包的安装非常简单,只需要执行以下命令:
rpm -ivh 软件包名
参数说明:
-i 安装
-v 显示安装信息
-h 显示安装进度

rpm命令执行安装rpm包和源码包,rpm包以.rpm结尾,而源码包以.src.rpm结尾

RPM常用选项

-ivh 安装并显示安装进度(规则:rpm –ivh 包名)
示例:rpm –ivh bind-9.8.2-0.47.rc1.el6.x86_64.rpm

-Uvh 升级软件包(rpm –Uvh 包名 //升级软件包-旧升新,低升高)
示例:rpm –Uvh --oldpackage bind-9.8.2-0.47.rc1.el6.x86_64.rpm(新版本软件包降级为旧版本)
-ql 列出rpm软件包内的文件信息(显示已安装软件包内容)
示例:rpm –ql vsftpd (规则:rpm –ql 软件包名

rpm -qc 软件包名      #查看软件的配置文件
[root@zabbix-proxy ~]# rpm -qa |grep mysql
mysql-community-libs-5.7.42-1.el7.x86_64
mysql-community-libs-compat-5.7.25-1.el7.x86_64
mysql-community-common-5.7.42-1.el7.x86_64
mysql-community-client-5.7.42-1.el7.x86_64
mysql57-community-release-el7-10.noarch
mysql-community-server-5.7.42-1.el7.x86_64
[root@zabbix-proxy ~]# rpm -qc mysql-community-server-5.7.42-1.el7.x86_64
/etc/logrotate.d/mysql
/etc/my.cnf

rpm -qd 查看软件的帮助文档位置

-qi 列出软件包描述信息(显示已安装软件包属性)
示例:rpm –qi bind (规则:rpm –qi 软件包名)

-qf 查看指定文件属于哪个软件包(rpm –qf 程序名)
示例:rpm –qf /etc/rc.d/init.d/named

-Va 校验所有rpm包,查找丢失的文件

-e 删除软件包(rpm –e  软件包名)      ##rpm -e $(rpm -qf $(which 程序名))    此处为软件包名而不是rpm包名
示例:rpm –e bind-9.8.2-0.47.rc1.el6.x86_64

-qpR 查看rpm包依赖关系
示例:rpm –qpR rpm包名

--force 忽略软件包及文件的冲突,即强制安装(长格式命令)
--nodeps 忽略软件包的依赖关系(长格式命令)
--test 安装测试,并不实际安装(长格式命令)
示例:测试--nodeps和--test,rpm –ivh httpd-2.2.15-53.el6.x86_64.rpm --test 并不安装,测试一下httpd软件包的依赖

rpm –qa   ##查看已安装包

其中
–a选项是查询所有已经安装的软件包。

-q是查询一个包是否安装

(显示区别:已经安装的rpm包不会显示后缀.rpm ,而未安装的包则显示后缀.rpm)

[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -e `which tree`
error: package /usr/bin/tree is not installed
[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -q $(rpm -qf $(which tree))
tree-1.6.0-10.el7.x86_64
[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -qa|grep tree-1.6.0-10.el7.x86_64
tree-1.6.0-10.el7.x86_64
[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -e $(rpm -qf $(which tree))
[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -q tree-1.6.0-10.el7.x86_64
package tree-1.6.0-10.el7.x86_64 is not installed
[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -qa|grep tree-1.6.0-10.el7.x86_64
[root@iZbp16mm3xbwen89azh9ffZ ~]# yum install tree -y
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : tree-1.6.0-10.el7.x86_64                                                                                                         1/1 
  Verifying  : tree-1.6.0-10.el7.x86_64                                                                                                         1/1 

Installed:
  tree.x86_64 0:1.6.0-10.el7                                                                                                                        

Complete!
[root@iZbp16mm3xbwen89azh9ffZ ~]# tree -L 1
.
├── 111.txt
├── 1.sh
├── 1.txt
├── create.sql
├── data2
├── exit.sh
├── members.csv
├── members.sql
├── mysql57-community-release-el7-10.noarch.rpm
├── populate.sql
├── result3.cap
├── result.cap
└── test.sh

0 directories, 13 files
[root@iZbp16mm3xbwen89azh9ffZ ~]# rpm -q tree-1.6.0-10.el7.x86_64
tree-1.6.0-10.el7.x86_64


实际操作:
[root@zabbix-proxy ~]# ls
1.txt      5.sql   file1  mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm  percona-toolkit-3.3.1-1.el7.x86_64.rpm  zidingyi.sh
[root@zabbix-proxy ~]# rpm -qpR percona-toolkit-3.3.1-1.el7.x86_64.rpm #-qpR 查看rpm包依赖关系
warning: percona-toolkit-3.3.1-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
perl(DBI) >= 1.13
perl(DBD::mysql) >= 1.0
perl(Time::HiRes)
perl(IO::Socket::SSL)
perl(Digest::MD5)
perl(Term::ReadKey)
/bin/sh
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadIsXz) <= 5.2-1
[root@zabbix-proxy ~]# rpm -Va  percona-toolkit-3.3.1-1.el7.x86_64.rpm    #-Va 校验所有rpm包,查找丢失的文件
[root@zabbix-proxy ~]# rpm -ivh percona-toolkit-3.3.1-1.el7.x86_64.rpm      #rpm -ivh 安装rpm包
warning: percona-toolkit-3.3.1-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:percona-toolkit-3.3.1-1.el7      ################################# [100%]
[root@zabbix-proxy ~]# rpm -e percona-toolkit-3.3.1-1.el7.x86_64.rpm      #rpm包安装后以软件包的形式存在操作系统,因此需要删除的是软件包
error: package percona-toolkit-3.3.1-1.el7.x86_64.rpm is not installed
[root@zabbix-proxy ~]# pt          #pt加TAB键补齐
pt-align                  pt-fifo-split             pt-k8s-debug-collector    pt-pg-summary             pt-slave-find             pt-upgrade
pt-archiver               pt-find                   pt-kill                   pt-pmp                    pt-slave-restart          pt-variable-advisor
ptaskset                  pt-fingerprint            pt-mext                   pt-query-digest           pt-stalk                  pt-visual-explain
pt-config-diff            pt-fk-error-logger        pt-mongodb-query-digest   pt-secure-collect         pt-summary                ptx
pt-deadlock-logger        pt-heartbeat              pt-mongodb-summary        pt-show-grants            pt-table-checksum         
pt-diskstats              pt-index-usage            pt-mysql-summary          pt-sift                   pt-table-sync             
pt-duplicate-key-checker  pt-ioprofile              pt-online-schema-change   pt-slave-delay            pt-table-usage            
[root@zabbix-proxy ~]# which pt-table-checksum
/usr/bin/pt-table-checksum
[root@zabbix-proxy ~]# /usr/bin/pt-table-checksum --version
pt-table-checksum 3.3.1
[root@zabbix-proxy ~]# rpm -qf /usr/bin/pt-table-checksum
percona-toolkit-3.3.1-1.el7.x86_64
[root@zabbix-proxy ~]# rpm -e `rpm -qf /usr/bin/pt-table-checksum`       #删除软件包
[root@zabbix-proxy ~]# which pt-table-checksum
/usr/bin/which: no pt-table-checksum in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

详情2:

安装软件包的三种方法、rpm包介绍、rpm、yum工具用法与yum搭建本地仓库_rpm 安装_mojianbin的博客-CSDN博客

编译安装和软件包安装

Linux平台上的软件安装分为编译安装和软件包安装,其中软件包安装最为简单,可以YUM直接安装,也可以把RPM包下载到本地再安装,总之省时省力,另外如果你想看YUM安装后,软件所涉及的目录有哪些,比如配置文件、程序文件都放在什么地方,也很简单,使用下面的命令:

rpm -ql 软件名

如下图:

今天我们来说一下编译安装是什么,为什么要用编译安装。

一般我们从网上下载的tar.gz的包都是源码包,针对源码包的软件安装成为编译安装。什么叫编译?简单来说就是把源代码变成适合当前平台的二进制文件,让内核可以识别。

编译安装的大体过程如下:运行源码包中的config或者configure检测程序(相信大家肯定熟悉),这个脚本一般后面都会跟一些参数,不同软件参数会不同。这个程序就是找到所需的函数库,编译器和其他资料,然后会生成一个Makefile文件,如果过程顺利,你就可以运行make进行安装,此时就Make命令就会读取生成的Makefile文件然后调用GCC编译器进行编译,然后最后通过make install命令进行安装。有时我们会看到下面的命令使用方式:

./configure   ####此处最好使用./configure --prefix=/usr/local/xxx      则此软件的所有文件都放到 /usr/local/xxx 目录下,很整齐
make && make install

这就是把两个命令一次录入,然后按顺序执行,好处是不同等着。软件的安装位置、启动的特性等都是在configure阶段所指定的。具体可以使用下面命令来查看软件支持多少可用参数:

注意事项:makefile生成以后,可以运行make test进行测试。另外如果第一次编译失败,第二次编译之前(make之前,configure之后)要运行make clean命令把之前的编译清除掉。这里需要说明的是:GCC其实可以直接编译程序文件,为什么还需要根据makefile,这里最直接的原因就是效率问题,一个软件不可能只有一个程序文件,还有其他的所需文件,如果用GCC逐个编译实在太麻烦,所以用makefile比较高效。

make clear:只是删除make产生的文件,它不能删除当前目录下产生的配置文件和build产生的文件

make distclean:类似于make clear但是它可以删除当前目录下产生的配置文件和build产生的文件

不是所有软件都可以通过软件包管理器安装,尤其是新版的软件。


###############################源码包安装软件实例##############################

为什么linux安装程序 都要放到/usr/local目录下?

Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的
/usr:系统级的目录,可以理解为C:/Windows//usr/lib理解为C:/Windows/System32
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
/opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。

源码放哪里?
/usr/src:系统级的源码目录。
/usr/local/src:用户级的源码目录

[root@192 ~]# ls
mysql57-community-release-el7-10.noarch.rpm  sysstat-12.7.2.tar.gz  webtatic-release.rpm
[root@192 share]# tree /usr/local/src/  -L 1
/usr/local/src/
0 directories, 0 files
[root@192 sysstat-12.7.2]# tree /usr/local/ -L 1
/usr/local/
├── bin
├── etc
├── games
├── include
├── lib
├── lib64
├── libexec
├── sbin
├── share
└── src

10 directories, 0 files
[root@192 ~]# tar zxf sysstat-12.7.2.tar.gz -C /usr/local/src/
[root@192 ~]# cd /usr/local/src/
[root@192 src]# ls
sysstat-12.7.2
[root@192 src]# cd /usr/local/src/sysstat-12.7.2/
[root@192 sysstat-12.7.2]# ./configure --prefix=/usr/local/sysstat/
[root@192 sysstat-12.7.2]# make && make install       #   &&表示如果make命令执行成功,那么后面执行make install
[root@192 sysstat-12.7.2]# sysstat
-bash: /usr/bin/sysstat: No such file or directory
[root@dongm ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@dongm ~]# ln -s /usr/local/src/sysstat-12.7.2/sysstat /usr/bin/sysstat
[root@dongm ~]# sysstat 
Usage: sysstat {start|stop|status|restart|reload|force-reload|condrestart|try-restart}
[root@192 share]# tree /usr/local/ -L 2
/usr/local/
├── bin
├── etc
├── games
├── include
├── lib
├── lib64
├── libexec
├── sbin
├── share
│   ├── applications
│   ├── info
│   └── man
├── src
│   └── sysstat-12.7.2
└── sysstat
    ├── bin
    ├── lib
    └── share         ###多出的文件

18 directories, 0 files

linux configure 的 --prefix 参数的作用

1、简介

  源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。其中,linux configure --prefix 的作用就是:在编译的时候用来指定程序存放路径 。

如下面示例(进入指定目录,并编译):

cd /usr/local/src/sysstat-12.7.2/ && ./configure --prefix=/usr/local/sysstat/

1、如果不指定 --prefix

则 安装程序的

可执行文件默认放在 /usr/local/bin ;
库文件默认放在 /usr/local/lib ;
配置文件默认放在 /usr/local/etc ;
其它的资源文件放在 /usr /local/share 。

非常地乱!

2、如果指定 --prefix

比如前面提到的: "./configure --prefix=/usr/local/sysstat",则此软件的所有文件都放到 /usr/local/sysstat 目录下,很整齐。

3、其他优点:

卸载软件时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;
移植软件时,只需拷贝整个目录到另外一个机器即可;
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall 。############################################################################# 

rpm包的卸载与安装

1. rpm包的管理
介绍:
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有RPM扩展名的文件,RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的
Linux的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了

2. rpm包的简单查询指令:
查询已安装的rpm列表 rpm  –qa | grep xx(q表示query,a表示查询所有,grep表示过滤)

例如:查询Linux中是否安装有firefox

rpm -qa | grep firefox

rpm包名基本格式:
一个rpm包名:firefox-45.0.1-1.el6.centos.x86_64.rpm

名称:firefox

版本号:45.0.1-1

适用操作系统: el6.centos.x86_64 表示centos6.x的64位系统

如果是i686、i386表示32位系统,noarch表示通用

rpm包的其它查询指令:
rpm -qa:查询所安装的所有rpm软件包

rpm -qa | more :查询所安装的所有rpm软件包 并且分页显示

rpm -qa | grep X [rpm -qa | grep firefox ] :查询是否安装有某个软件(火狐的软件)

rpm -q 软件包名 :查询软件包是否安装 rpm -q firefox
rpm -qi 软件包名 :查询软件包信息

rpm -ql 软件包名 :查询软件包中的文件的安装位置

rpm -qf 文件全路径名:查询文件所属的软件包 ,例如:rpm -qf /etc/passwd 

3. 卸载软件包:

基本语法 rpm -e 软件包的名称      #rpm -ivh xxx.rpm,rpm包安装后卸载软件用

应用案例 :删除firefox软件包 

rpm -e firefox

细节讨论:

(1) 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息

如: $ rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1

(2) 如果我们就是要删除 foo这个rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行 如:$ rpm -e --nodeps foo 

4. 安装rpm包

 基本语法: rpm -ivh  RPM包全路径名称

 参数说明: i=install 安装 v=verbose 提示 h=hash  进度条

 应用实例: 安装firefox浏览器

 ① 先要找到安装包,需要先挂载上我们之前安装CentOS的iso文件,点击虚拟机设置使用ios文件,那么在系统中会多出一个光驱,打开命令行终端进入到/media/CentOS_6.8_final/package/

(所有的rpm包都在这里), 点击然后拷贝到/opt目录下

 cp firefox( rpm包的文件名) 需要拷贝到的目录 (可以输入rpm包名字的前几个字母然后使用Tab键补全)

② 安装

切换到/opt目录下找到刚才拷贝的文件然后使用: rpm ivh + 火狐rpm软件安装包的名字就可以了

RPM命令的--nodeps 和--force参数解释

--force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用--force强制安装。

删除软件

要删除软件非常简单,只要执行下面的命令就行:
# rpm –e 软件包
如果要删除的软件是其它软件所需要的,用户会得到类似下面的错误信息:
代码如下:
# rpm –e xxxxx
error: xxxxx is needed by yyyy-1.0-1
这表明如果用户删除了xxxxx,则yyyy就不能运行了,因为xxxxx里的一些软件是yyyy运行所需要的。若用户一定要删除,可以使用下面的命令:
代码如下:
# rpm –e xxxxx --nodeps           ## --nodeps强制删除

升级软件

如果用户以前安装过xxxxx-25000-1.x86_64.rpm,现在又得到了xxxxx-25001-1.x86_64.rpm,则使用下面的命令可以升级这个软件包:
代码如下:
# rpm –Uhv  xxxxx-25001-1.x86_64.rpm
实际上,-U参数是告诉RPM先删除原先的版本,再安装新的版本。所以不管以前是否安装过这个软件包,用户都可以使用rpm –Uhv命令来安装软件。

yum 下载全量依赖 rpm 包及离线安装(终极解决方案)

简介
通常生产环境由于安全原因都无法访问互联网。此时就需要进行离线安装,主要有两种方式:源码编译、rpm包安装。源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装。

验证环境
Centos 7.2

查看依赖包
可以使用“yum deplist”命令来查找 rpm 包的依赖列表。例如,要查找“ansible”rpm的依赖包:

$ yum deplist ansible
软件包:ansible.noarch 2.9.3-1.el7
   依赖:/usr/bin/env
   provider: coreutils.x86_64 8.22-24.el7
   依赖:/usr/bin/python2
   provider: python.x86_64 2.7.5-86.el7
   依赖:PyYAML
   provider: PyYAML.x86_64 3.10-11.el7
   依赖:python(abi) = 2.7
   provider: python.x86_64 2.7.5-86.el7
   依赖:python-httplib2
   provider: python-httplib2.noarch 0.9.2-1.el7
   依赖:python-jinja2
   provider: python-jinja2.noarch 2.7.2-4.el7
   依赖:python-paramiko
   provider: python-paramiko.noarch 2.1.1-9.el7
   依赖:python-setuptools
   provider: python-setuptools.noarch 0.9.8-7.el7
   依赖:python-six
   provider: python-six.noarch 1.9.0-2.el7
   依赖:python2-cryptography
   provider: python2-cryptography.x86_64 1.7.2-2.el7
   依赖:python2-jmespath
   provider: python2-jmespath.noarch 0.9.0-3.el7
   依赖:sshpass
   provider: sshpass.x86_64 1.06-2.el7

方案一(推荐):repotrack
# 安装yum-utils
$ yum -y install yum-utils
# 下载 ansible 全量依赖包
$ repotrack ansible

方案二:yumdownloader
# 安装yum-utils
$ yum -y install yum-utils
# 下载 ansible 依赖包
$ yumdownloader --resolve --destdir=/tmp ansible

参数说明:
--destdir:指定 rpm 包下载目录(不指定时,默认为当前目录)
--resolve:下载依赖的 rpm 包。
注意:仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。

方案三:yum 的 downloadonly 插件
# 安装插件
$ yum -y install yum-download
# 下载 ansible 依赖包
$ yum -y install ansible --downloadonly --downloaddir=/tmp

注意:与 yumdownloader 命令一样,也是仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。

离线安装 rpm
# 离线安装
$ rpm -Uvh --force --nodeps *.rpm
原文链接:https://blog.csdn.net/tfner123/article/details/123832115

#实例下载google浏览器以及当前系统缺失依赖的rpm包
sudo vim /etc/yum.repos.d/google-chrome.repo
编辑输入如下内容:
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
然后:wq保存。最后安装,输入如下bash。
[root@zabbix-agent2 google]# make clean all
[root@zabbix-agent2 google]# make makecache
[root@zabbix-agent2 google]# yum provides google-chrome
Last metadata expiration check: 0:01:44 ago on Wed 31 May 2023 12:02:17 PM CST.
google-chrome-beta-114.0.5735.45-1.x86_64 : Google Chrome (beta)
Repo        : google-chrome
Matched from:
Provide    : google-chrome = 114.0.5735.45

google-chrome-stable-114.0.5735.90-1.x86_64 : Google Chrome
Repo        : google-chrome
Matched from:
Provide    : google-chrome = 114.0.5735.90

google-chrome-unstable-115.0.5790.3-1.x86_64 : Google Chrome (unstable)
Repo        : google-chrome
Matched from:
Provide    : google-chrome = 115.0.5790.3

[root@zabbix-agent2 google]# yum deplist google-chrome-stable-114.0.5735.90-1.x86_64   #查看软件包所需要的依赖,
Last metadata expiration check: 0:05:34 ago on Wed 31 May 2023 12:02:17 PM CST.
package: google-chrome-stable-114.0.5735.90-1.x86_64
  dependency: /bin/sh
   provider: bash-4.4.20-4.el8.x86_64
  dependency: /usr/sbin/update-alternatives
   provider: chkconfig-1.19.1-1.el8.x86_64
  dependency: ca-certificates
   provider: ca-certificates-2022.2.54-80.2.el8.noarch
  dependency: ld-linux-x86-64.so.2()(64bit)
   provider: glibc-2.28-226.el8.x86_64
  dependency: ld-linux-x86-64.so.2(GLIBC_2.2.5)(64bit)
   provider: glibc-2.28-226.el8.x86_64
  dependency: ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
   provider: glibc-2.28-226.el8.x86_64
  dependency: libX11.so.6()(64bit)
   provider: libX11-1.6.8-5.el8.x86_64
  dependency: libXcomposite.so.1()(64bit)
   provider: libXcomposite-0.4.4-14.el8.x86_64
  dependency: libXdamage.so.1()(64bit)
................................................................

[root@zabbix-agent2 ~]# yumdownloader --resolve --destdir=/root/google/  google-chrome-stable-114.0.5735.90-1.x86_64       #下载所需软件的rpm包和当前系统所缺失的依赖rpm包.$repotrack google-chrome-stable-114.0.5735.90-1.x86_64命令会下载全量依赖包
Last metadata expiration check: 0:07:06 ago on Wed 31 May 2023 12:02:17 PM CST.
(1/5): liberation-fonts-2.00.3-7.el8.noarch.rpm                                                                                                          41 kB/s |  20 kB     00:00    
(2/5): vulkan-loader-1.2.189.0-1.el8.x86_64.rpm                                                                                                         317 kB/s | 121 kB     00:00    
(3/5): mesa-vulkan-drivers-22.1.5-2.el8.x86_64.rpm                                                                                                      1.2 MB/s | 5.9 MB     00:04    
(4/5): llvm-compat-libs-14.0.6-1.module_el8.8.0+1224+64629835.x86_64.rpm                                                                                2.0 MB/s |  56 MB     00:27    
(5/5): google-chrome-stable-114.0.5735.90-1.x86_64.rpm                                                                                                  3.2 MB/s |  91 MB     00:28    
[root@zabbix-agent2 ~]# cd /root/google/
[root@zabbix-agent2 google]# ls -l
total 156664
-rw-r--r-- 1 root root 95487264 May 31 12:09 google-chrome-stable-114.0.5735.90-1.x86_64.rpm
-rw-r--r-- 1 root root    20272 May 31 12:09 liberation-fonts-2.00.3-7.el8.noarch.rpm
-rw-r--r-- 1 root root 58546636 May 31 12:09 llvm-compat-libs-14.0.6-1.module_el8.8.0+1224+64629835.x86_64.rpm
-rw-r--r-- 1 root root  6237348 May 31 12:09 mesa-vulkan-drivers-22.1.5-2.el8.x86_64.rpm
-rw-r--r-- 1 root root   123988 May 31 12:09 vulkan-loader-1.2.189.0-1.el8.x86_64.rpm
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值