linux---安装软件,第三方软件仓库的搭建,屏蔽yum仓库内的软件

安装软件

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卸载后软件后再查看。因为已经下载过的软件没有办法进行屏蔽。

猜你喜欢

转载自blog.csdn.net/argued_d/article/details/80183545
今日推荐