一·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
注:(若查看后出现红色字母,说明已经安装过安装包,不能放入黑名单.需要卸载安装包后才能执行)