Linux:rpm命令、第三方软件仓库的搭建和yum仓库内的一些软件的屏蔽(黑名单)

一·rpm

以下实验在desktop虚拟机做
1.软件名称识别
[abrt-addon-ccpp]-[2.1.11-19].[el7].[x86_64].rpm ##rpm结尾的适用与redhat操作系统
[abrt-addon-ccpp] ## 软件名称
[2.1.11-19].[el7] ##软件版本
[x86_64] ##软件适用系统 64位
首先要把需要的安装包传到虚拟机中:
这里写图片描述
在虚拟机中查看一下:
这里写图片描述
首先要切换到/mnt环境下,然后建立一个目录mkdir /mnt/software,接着切换到software环境下进行以下操作.
2.rpm命令的格式以及参数

rpm   -ivh name --nodeps  ##安装,-v显示过程,-h指定加密方式为hash  
rpm   -ivh name.rpm --force  ##强制安装,但不能忽略依赖性
rpm   -ivh name.rpm --nodeps --force  ##忽略依赖性并且强制安装
rpm    -e  name   ##卸载
rpm    -ql name   ##查询软件生成文件
rpm    -qc name   ##查询软件的配置文件名称
rpm    -qd name   ##查询软件的说明文件名称
rpm    -qlp name.rpm(安装包名字)  ##查询软件安装后会生成什么文件
rpm    -qa            ##查询系统中安装的所有软件名称
rpm    -qa |grep name ##查询软件是否安装 (是模糊的名称eg:wps)
rpm    -q name       ##查询软件是否安装 (是精确的名称eg:wps-office)
rpm    -qp name.rpm   ##查询软件安装包安装后的名字
rpm    -qf filename   ##查看filename属于哪个安装包
rpm    -qi name       ##查看软件信息
rpm    -Kv name.rpm   ##检测软件包是否被篡改(为了不影响原来安装包,可以复制一个安装包)
[root@localhost software]# rpm -Kv wps-office-10.1.0.5672-1.a21.x86_64.rpm
wps-office-10.1.0.5672-1.a21.x86_64.rpm:
    Header SHA1 digest: OK (6f484bc49b51424956678ac1b55ae74a86af2a28)
    MD5 digest: OK (5bb5b15d9d6006305856c903999398a6)

Header SHA1 digest: OK (6f484bc49b51424956678ac1b55ae74a86af2a28)
    MD5 digest: OK (5bb5b15d9d6006305856c903999398a6)
    ##出现两个OK,说明文件没有被篡改
[root@localhost software]# rpm -Kv wps-office-10.1.0.5672-1.a21.x86_64.rpm
wps-office-10.1.0.5672-1.a21.x86_64.rpm:
    Header SHA1 digest: OK (6f484bc49b51424956678ac1b55ae74a86af2a28)
    MD5 digest: BAD Expected(5bb5b15d9d60systemctl disable firewalld06305856c903999398a6) != (cd666bf78a1c370117f1211835868dcf)
echo hello >>wps-office-10.1.0.5672-1.a21.x86_64.rpm
##若有一个不出现OK,说明文件被篡改,可以删除本文件
rpm   -qp name.rpm --scripts  ##检测软件在安装或卸载过程中执行的动作

这里写图片描述
检测软件包是否被篡改
这里写图片描述
这里写图片描述

二·第三方软件仓库的搭建

把所有的rpm软件放到一个目录中,这个目录中只能存在rpm文件
createrepo -v /rpm存放目录 —-> /rpm存放目录/repodata ##此目录中是被扫描的软件数据
createrepo ##生成软件包的数据库文件

createrepo  .   
Spawning worker 0 with 3 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
ls
FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm  linuxqq-v1.0.2-beta1.i386.rpm
FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm  repodata
                                             ---------- ##第三方软件仓库

vim /etc/yum.repos.d/rhel_dvd.repo
编写文件内容:[software]
name=software
baseurl=file:///mnt/software ##rpm存放目录
gpgcheck=0

这里写图片描述
yum clean all
yum install httpd ##安装httpd
systemctl start httpd
systemctl enable httpd
systemctl stop firewalld
systemctl disable firewalld
cp -r /mnt/software/ /var/www/html/ ## 共享
网页浏览器:172.25.254.119/software ##输入虚拟机ip

这里写图片描述

三·yum仓库内的一些软件的屏蔽(黑名单)

vim /etc/yum.conf
编写内容:exclude=*.i686 (32位)
yum list ##查看
yum list linuxqq
vim /etc/yum.conf
编写内容:exclude=*.i386

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
exclude=*.i686--编写内容(i686是32位)
#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

yum list linuxqq
这里写图片描述

注:(若查看后出现红色字母,说明已经安装过安装包,不能放入黑名单.需要卸载安装包后才能执行)

猜你喜欢

转载自blog.csdn.net/le_anny/article/details/80179511
今日推荐