##安装软件
1.rpm
rpm -ivh name.rpm ##安装,-v显示过程,-h指定加密方式为hash
-e name ##卸载
-ql name ##查询软件生成文件
-qc name ##查询软件的配置文件名称
-qd name ##查询软件的说明文件名称
-qlp name.rpm ##查询软件安装后会生成什么文件
-qa ##查询系统中安装的所有软件名称
-qa |grep name ##查询软件是否安装 后面name可以是粗略
-q name ##查询软件是否安装 后面name必须是软件的全称
-qp name.rpm ##查询软件安装包安装后的名字
-qf filename ##查询filename属于哪个安装包
-ivh name.rpm --force ##强制安装,但不能忽略依赖性
-ivh name.rpm --nodeps --force ##忽略依赖性并且强制安装
-qi name ##查看软件信息
-Kv name.rpm ##检测软件包是否被篡改
-qp name.rpm --scripts ##检测软件在安装或卸载过程中执行的动作
实验步骤:虚拟机里desktop
提示:
1.首先要有一个共享yum源的环境
2.在你的真机里需要有软件的安装包,可以将安装包用“scp“的命令传到所用的虚拟机上。
3.注意区分-q,-qa的区别
[root@localhost ~]# cd /mnt
[root@localhost mnt]# mkdir software
[root@localhost mnt]# cd /mnt/software/
[root@localhost software]# rpm -ivh linuxqq-v1.0.2-beta1.i386.rpm --nodeps ##忽略安装软件包的依赖性
[root@localhost software]# rpm -ivh linuxqq-v1.0.2-beta1.i386.rpm --nodeps --force ##强制安装
Preparing... ################################# [100%]
Updating / installing...
1:linuxqq-v1.0.2-beta1 ################################# [100%]
[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
[root@localhost software]# rpm -ivh wps-office-10.1.0.5672-1.a21.x86_64.rpm --nodeps --force ##忽略依赖性并且强制安装
[root@localhost software]# rpm -ql wps-office ##查询wps生成文件
[root@localhost software]# rpm -qlp wps-office-10.1.0.5672-1.a21.x86_64.rpm ##查询wps安装包安装后会生成的文件
[root@localhost software]# rpm -q wps
package wps is not installed ##rpm -q 后面跟粗略的名称找不到软件
[root@localhost software]# rpm -q wps-office ##跟全称就可以找到安装的软件
wps-office-10.1.0.5672-1.a21.x86_64
[root@localhost software]# rpm -qa | grep wps
wps-office-10.1.0.5672-1.a21.x86_64 ##跟粗略的软件名称可以找到已下载的安装包
[root@localhost software]# rpm -Kv linuxqq-v1.0.2-beta1.i386.rpm ##检测软件包是否被篡改
linuxqq-v1.0.2-beta1.i386.rpm:
Header SHA1 digest: OK (9893064ebb5d9966a7e061e1c2017d189f5a8100)
MD5 digest: *OK* (5b35ffaf802861b72c0f2a615effdfdc) ##OK代表正常的安装包
[root@localhost software]# echo hello >>linuxqq-v1.0.2-beta1.i386.rpm ##在linuxqq后面追加hello,篡改文件
[root@localhost software]# rpm -Kv linuxqq-v1.0.2-beta1.i386.rpm
linuxqq-v1.0.2-beta1.i386.rpm:
Header SHA1 digest: OK (9893064ebb5d9966a7e061e1c2017d189f5a8100)
MD5 digest: *BAD Expected*(5b35ffaf802861b72c0f2a615effdfdc) != (859a597856638c57ea82ed3056f2dcad) ##BAD Expected 代表已经被篡改的坏文件
[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
分析:
遇到软件安装或卸载时,要看它执行的动作和过程。在A软件包里出现“rm -rf /* &>/dev/null“时,说明需要删除你电脑里所有的软件,这样就会导致你的电脑死机。在B软件包里出现“echo “fluffy” &>/dev/null“这只是安装或卸载时的正常附加条件。所以要谨慎选择安装包
##第三方软件仓库的搭建
把所有的rpm软件包放到一个目录中,这个目录只能存放在rpm文件
createrepo -v /rpm存放目录 —>/rpm存放目录/repodata ##此目录中是被扫描的软件信息数
[root@localhost software]# createrepo . ##扫描当前位置的软件信息数
Spawning worker 0 with 3 pkgs
[root@localhost software]# ls
repodata ##有repodata文件的目录叫第三方软件仓库
[root@localhost software]# vim /etc/yum.repos.d/rhel_dvd.repo
写入:[software]
name=softname
baseurl=file:///mnt/software
gpgcheck=0
enabled=0 ##注释以上操作(具体编写内容看下图)
[root@localhost software]# yum clean all ##清除缓存
[root@localhost software]# yum repolist ##列出设定yum源信息
Loaded plugins: langpacks
rhel_dvd | 4.1 kB 00:00:00
(1/2): rhel_dvd/group_gz | 134 kB 00:00:00
(2/2): rhel_dvd/primary_db | 3.4 MB 00:00:00
repo id repo name status
rhel_dvd Remote classroom copy of dvd 4,305
repolist: 4,305 ##未读取扫描的安装包软件个数
[root@localhost software]# vim /etc/yum.repos.d/rhel_dvd.repo
改enabled=1
[root@localhost software]# yum repolist
Loaded plugins: langpacks
rhel_dvd | 4.1 kB 00:00:00
software | 2.9 kB 00:00:00
software/primary_db | 4.8 kB 00:00:00
repo id repo name status
rhel_dvd Remote classroom copy of dvd 4,305
software softname 4
repolist: 4,308 ##已经读取的刚才扫描的3个软件安装包
[root@localhost software]# yum clean all
[root@localhost software]# yum install httpd ##安装httpd
[root@localhost software]# cp -r /mnt/software/ /var/www/html/ ##复制安装软件信息到共享/var/www/html
[root@localhost software]# systemctl stop firewalld ##关闭防火墙
[root@localhost software]# systemctl disable firewalld
[root@localhost software]# systemctl start httpd ##开启httpd服务
[root@localhost software]# systemctl enable httpd
网页浏览:http://172.25.254.128/software/
注意:
1.编写执行文件的时候要看清楚存放的目录在哪里
2.关闭防火墙,开启httpd
3.如果网页浏览不出来的话,需要用yum源搭建共享
##屏蔽yum仓库内的软件
[root@localhost software]# vim /etc/yum.conf
写入:11.exclude=*.i686 ##这代表屏蔽后缀是.i686的软件包
[root@localhost software]# yum list ##查看列表,没有后缀是.i686的软件
[root@localhost software]# yum list linuxqq
Loaded plugins: langpacks
Installed Packages
linuxqq.i386 (##如果这里字体显示为红色,说明已经安装过,需要用rpm -e卸载后再查看) v1.0.2-beta1
[root@localhost software]# vim /etc/yum.conf
写入11.exclude=*.i686 *.i386
[root@localhost software]# yum list linuxqq
Loaded plugins: langpacks
Error: No matching Packages to list ##显示这个安装包已经不在列表里
分析:
如果已经在文件里编写好屏蔽的软件,用“yum list filename“查看时如果软件包呈红色,说明已经安装过,需要用rpm -e卸载后软件后再查看。因为已经下载过的软件没有办法进行屏蔽。