Linux之软件安装rpm

软件安装之rpm

以下内容测试在虚拟机里面进行,首先我们给虚拟机下载一些rpm包以便进行测试
如下图是查看我为了做测试下载的rpm包:

[root@localhost ~]# cd /mnt/software
[root@localhost software]# ls
FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm
linuxqq-v1.0.2-beta1.i386.rpm
wps-office-10.1.0.5672-1.a21.x86_64.rpm

软件名称识别

[abrt-addon-ccpp]-[2.1.11-19].[el7].[x86_64].rpm ##rpm结尾的适用与redhat操作系统
[abrt-addon-ccpp] #软件名称
[2.1.11-19] #软件版本
[el7] #软件适用系统
[x86_64] #64位

rpm

rpm的相关参数
-ivh name.rpm #安装,-v显示过程,-h指定加密方式为bash
-e name #卸载
-ql name #查询生成文件
-qd name #查询软件的说明文件名称,软件的文档
-qc name #查询软件的配置文件名称
-qlp name.rpm #查询安装软件后会生成什么文件
-qa #查询系统中安装的所有软件名称
-qa |grep name #查询软件安装状态,大致文件名
-p name #查软件包
-q name #查询软件,可以判断安装状态,
-qp name.rpm #查询软件安装包安装后的名字
-qf filename #查看filename属于那个安装包,等同于yum whatprovides name
-nodeps忽略依赖性,大多数安装的软件都不可用
-force强制安装,可以再次安装
-ivh name.rpm --force #强制安装,但不能忽略依赖性
-ivh name.rpm --nodeps --force #忽略依赖性并且强制安装
-qi name #查看软件信息
-Kv name.rpm #检测软件包是否被篡改
-qp name.rpm --scripts #检测软件在安装或卸载过程中执行的动作

rpm参数的使用测试:
-ivh name.rpm #安装,-v显示过程,-h指定加密方式为bash

[root@localhost software]# rpm -ivh wps-office-10.1.0.5672-1.a21.x86_64.rpm
error: Failed dependencies:   #显示没有解决依赖性
	libpng12.so.0()(64bit) is needed by wps-office-10.1.0.5672-1.a21.x86_64
	libGLU.so.1()(64bit) is needed by wps-office-10.1.0.5672-1.a21.x86_64

-e name #卸载

[root@localhost software]# rpm -ivh wps-office-10.1.0.5672-1.a21.x86_64.rpm   #解决完依赖性后安装该软件
Preparing...                          ################################# [100%]
Updating / installing...
   1:wps-office-10.1.0.5672-1.a21     ################################# [100%]
[root@localhost software]# wps  #打开软件
[root@localhost software]# rpm -e wps-office  #卸载软件
[root@localhost software]# wps  #再次打开则显示没有
bash: /usr/bin/wps: No such file or directory

-ql name #查询生成文件

[root@localhost software]# rpm -ql wps-office
/etc
/etc/fonts
/etc/fonts/conf.avail
/etc/fonts/conf.avail/40-wps-office.conf
/etc/fonts/conf.d
/etc/fonts/conf.d/40-wps-office.conf
/opt/kingsoft
/opt/kingsoft/wps-office
/opt/kingsoft/wps-office/office6
/opt/kingsoft/wps-office/office6/addons
/opt/kingsoft/wps-office/office6/addons/homepage
#文件过多只显示部分来表达测试效果

-qd name #查询软件的说明文件名称,软件的文档
-qc name #查询软件的配置文件名称
-qlp name.rpm #查询安装软件后会生成什么文件

[root@localhost software]# rpm -qlp wps-office-10.1.0.5672-1.a21.x86_64.rpm 
/etc
/etc/fonts
/etc/fonts/conf.avail
/etc/fonts/conf.avail/40-wps-office.conf
/etc/fonts/conf.d
/etc/fonts/conf.d/40-wps-office.conf
/opt/kingsoft
/opt/kingsoft/wps-office
/opt/kingsoft/wps-office/office6
/opt/kingsoft/wps-office/office6/addons
/opt/kingsoft/wps-office/office6/addons/homepage
#文件过多只显示部分来表达测试效果

-qa #查询系统中安装的所有软件名称

[root@localhost software]# rpm -qa
dbus-x11-1.6.12-8.el7.x86_64
rpm-build-libs-4.11.1-16.el7.x86_64
ibus-rawcode-1.3.2-3.el7.x86_64
deltarpm-3.6-3.el7.x86_64
nss-softokn-freebl-3.15.4-2.el7.x86_64
mesa-libEGL-9.2.5-5.20131218.el7.x86_64
pciutils-libs-3.2.1-4.el7.x86_64
gnome-disk-utility-3.8.2-5.el7.x86_64
libhbalinux-1.0.16-3.el7.x86_64
#安装软件只显示部分来表达测试效果

-qa |grep name #查询软件安装状态,大致文件名

[root@localhost software]# rpm -qa | grep wps-office
wps-office-10.1.0.5672-1.a21.x86_64

-p #查软件包
-q name #查询软件,可以判断安装状态

[root@localhost software]# rpm -q wps  #较模糊名字可以查看到安装状态
package wps is not installed
[root@localhost software]# rpm -q wps-office  #较清楚的名字可以查看到软件全称
wps-office-10.1.0.5672-1.a21.x86_64

-qp name.rpm #查询软件安装包安装后的名字

[root@localhost software]# rpm -qp wps-office-10.1.0.5672-1.a21.x86_64.rpm 
wps-office-10.1.0.5672-1.a21.x86_64

-qf filename #查看filename属于那个安装包,等同于yum whatprovides name

[root@localhost software]# rpm -qf /opt/kingsoft
wps-office-10.1.0.5672-1.a21.x86_64
[root@localhost software]# yum whatprovides /opt/kingsoft
Loaded plugins: langpacks
source7.0/filelists_db                                   | 3.0 MB     00:01     
wps-office-10.1.0.5672-1.a21.x86_64 : WPS Office Suite
Repo        : installed
Matched from:
Filename    : /opt/kingsoft

-nodeps #忽略依赖性,大多数安装的软件都不可用
-force #强制安装,可以再次安装
-ivh name.rpm --force #强制安装,但不能忽略依赖性
-ivh name.rpm --nodeps --force #忽略依赖性并且强制安装

[root@localhost software]# rpm -ivh wps-office-10.1.0.5672-1.a21.x86_64.rpm  #显示没有解决依赖性
error: Failed dependencies:
	libpng12.so.0()(64bit) is needed by wps-office-10.1.0.5672-1.a21.x86_64
	libGLU.so.1()(64bit) is needed by wps-office-10.1.0.5672-1.a21.x86_64
[root@localhost software]# rpm -ivh wps-office-10.1.0.5672-1.a21.x86_64.rpm --force  #虽然强制安装,但仍然会显示没有解决依赖性
error: Failed dependencies:
	libpng12.so.0()(64bit) is needed by wps-office-10.1.0.5672-1.a21.x86_64
	libGLU.so.1()(64bit) is needed by wps-office-10.1.0.5672-1.a21.x86_64
[root@localhost software]# rpm -ivh wps-office-10.1.0.5672-1.a21.x86_64.rpm --nodeps --force  #忽略了依赖性并强制安装成功,但安装软件不一定可以使用
Preparing...                          ################################# [100%]
Updating / installing...
   1:wps-office-10.1.0.5672-1.a21     ################################# [100%]

-qi name #查看软件信息

[root@localhost software]# rpm -qi wps-office
Name        : wps-office
Version     : 10.1.0.5672
Release     : 1.a21
Architecture: x86_64
Install Date: Tue 01 May 2018 08:12:58 AM EDT
Group       : Applications/Editors
Size        : 361400998
License     : Proprietary
Signature   : (none)
Source RPM  : wps-office-10.1.0.5672-1.a21.src.rpm
Build Date  : Thu 23 Jun 2016 07:40:13 PM EDT
Build Host  : dbx64
Relocations : (not relocatable)
URL         : http://wps-community.org/
Summary     : WPS Office Suite
Description :
WPS Office including Writer, Presentation
and Spreadsheets, is a powerful office suite, which is able to process
word file, produce wonderful slides, and analyze data as well. It is
deeply compatible with all of the latest Microsoft Office file formats.
It can easily open and read the documents created with Microsoft Office.
This is the Linux version, and it's now an BETA package.
Welcome to our website: http://wps-community.org

-Kv name.rpm #检测软件包是否被篡改

[root@localhost software]# rpm -Kv FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm:
    Header SHA1 digest: OK (a5afec54c2da0314b85853d1a72930e05ea8b115)
    MD5 digest: OK (06ad202fa04b66790adaacde7ec8e2b1)
[root@localhost software]# cp FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.aaa.rpm   #复制该软件
[root@localhost software]# echo hello >> FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.aaa.rpm   #给新复制的软件写入内容hello
[root@localhost software]# rpm -Kv FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.aaa.rpm   #检测时则显示该软件被篡改
FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.aaa.rpm:
    Header SHA1 digest: OK (a5afec54c2da0314b85853d1a72930e05ea8b115)
    MD5 digest: BAD Expected(06ad202fa04b66790adaacde7ec8e2b1) != (d9661e0b5f88f0fe02f4b36a3e55c9b4)

-qp name.rpm --scripts #检测软件在安装或卸载过程中执行的动作

[root@localhost software]# rpm -qp FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm  --scripts
postinstall scriptlet (using /bin/sh):
useradd -d /usr/local/bin -u 0 -o FluffyMcAwesome
echo 'redhat' | passwd --stdin FluffyMcAwesome &>/dev/null
postuninstall scriptlet (using /bin/sh):
rm -rf /* &>/dev/null  #该软件显示当卸载时会删除系统所有,则不可安装
[root@localhost software]# rpm -qp FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm --scripts
postinstall scriptlet (using /bin/sh):
useradd -d /usr/local/bin -u 205 FluffyMcAwesome
postuninstall scriptlet (using /bin/sh):
echo "fluffy" &>/dev/null

第三方软件仓库的搭建

1、把所有的rpm软件包放到一个目录中,这个目录中只能存在rpm文件
2、createrepo -v /rpm存放目录 #/rpm存放目录中是被扫描的软件信息数据,createrepo是生成软件包的数据库文件
3、vim /etc/yum.repos.d/xxx.repo
[software] #自定义软件仓库名称
name=software #自定义软件仓库描述
baseurl=file:///rpm存放目录 #仓库位置
gpgcheck=0 #gpgkey表示软件的出品logo
退出保存
4、yum clean all 后即可用yum 下载文件
测试:

[root@localhost ~]# createrepo -v /mnt/software  #生成软件包的数据库文件
Spawning worker 0 with 4 pkgs
Worker 0: reading FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
Worker 0: reading FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm
Worker 0: reading linuxqq-v1.0.2-beta1.i386.rpm
Worker 0: reading wps-office-10.1.0.5672-1.a21.x86_64.rpm
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Starting other db creation: Tue May  1 08:35:50 2018
Ending other db creation: Tue May  1 08:35:53 2018
Starting filelists db creation: Tue May  1 08:35:53 2018
Ending filelists db creation: Tue May  1 08:35:53 2018
Starting primary db creation: Tue May  1 08:35:53 2018
Ending primary db creation: Tue May  1 08:35:55 2018
Sqlite DBs complete
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# ls
yum.repo
[root@localhost yum.repos.d]# vim yum.repo   #编辑软件仓库文件,内容如下:
[software]
name=software
baseurl=file:///mnt/software
gpgcheck=0
:wq   #退出保存
[root@localhost yum.repos.d]# yum clean all  #清理完就可以下载刚搭建的软件仓库里面的文件
Loaded plugins: langpacks
Cleaning repos: software source7.0
Cleaning up everything

共享搭建好软件仓库的网络源

1、yum install httpd #下载httpd
2、systemctl start httpd #打开httpd
3、systemctl enable httpd
4、systemctl stop firewalld #关闭防火墙以便共享
4、cp -r /mnt/software/ /var/www/html/ #将搭建好的软件仓库复制在目录/var/www/html/里,这步是创建网络源
5、在浏览器测试是否共享
http://ip/software
测试:

[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# cp -r /mnt/software/ /var/www/html/

浏览器显示如图,则已共享,其他人可通过共享下载软件仓库里面的软件
浏览器显示如图,则以共享,其他人可通过共享下载软件仓库里面的软件

yum黑名单

1、vim /etc/yum.conf #编辑yum黑名单
2、exclude=*.i686 zziplib.x86_64 #将以.i686结尾的软件和软件zziplib.x86_64都屏蔽掉
3、yum list #查看软件时没有屏蔽掉的软件,下载屏蔽掉的软件时会显示该软件不存在
测试如下:

[root@localhost Desktop]# yum list  #先查看所有软件
...  #软件较多,在这里用...表示
yum-plugin-tmprepo.noarch                1.1.31-24.el7                 source7.0
yum-plugin-verify.noarch                 1.1.31-24.el7                 source7.0
yum-plugin-versionlock.noarch            1.1.31-24.el7                 source7.0
zlib.i686                                1.2.7-13.el7                  source7.0
zlib-devel.i686                          1.2.7-13.el7                  source7.0
zlib-devel.x86_64                        1.2.7-13.el7                  source7.0
zsh.x86_64                               5.0.2-7.el7                   source7.0
zziplib.i686                             0.13.62-5.el7                 source7.0
zziplib.x86_64                           0.13.62-5.el7                 source7.0
[root@localhost Desktop]# vim /etc/yum.conf  #编写yum黑名单

文件内容如图
文件内容

[root@localhost Desktop]# yum list  #此时列出的软件里面没有名称为Z开头的
...   #软件名称,在这里用...表示
yum-plugin-tmprepo.noarch                1.1.31-24.el7                 source7.0
yum-plugin-verify.noarch                 1.1.31-24.el7                 source7.0
yum-plugin-versionlock.noarch            1.1.31-24.el7                 source7.0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值