linux学习之旅(十二)

时间:2021-12-05 06:54:41

软件安装


主要针对的是 RPM包
RPM含义: REDHAT PACKAGES MANAGERMENT

1.软件名称识别

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

e // 企业版
l // 等级
rh // redhat
el7 // 适用于企业版版本七的系统

2.如何安装软件

rpm安装

rpm -ivh    name.rpm    :安装 ,-v显示过程,-h指定加密方式为hash,哈希加密,-i 详细信息

-e name ##卸载
-ql name ##查询软件生成文件
-qlp name.rpm ##查询软件安装后会生成什么文件
-qa ##查询系统中安装的所有软件名称
-qa |grep name ##查询软件是否安装
-q name ##查看软件所属安装包
-qp name.rpm ##查询软件安装包安装后的名字
-qf filename ##查看filename属于那个安装包
-ivh name.rpm --force ##强制安装,但不能忽略依赖性
//如果删除了一部分东西,再安装时说已经安装过,那么用 --force强制再安装
-ivh name.rpm --nodeps --force ##忽略依赖性并且强制安装,可以安装,但是会出现不能使用的问题
-qi name ##查看软件信息
-Kv name.rpm ##检测软件包是否被篡改
//用Kv key显示的是BAD 那么就是被篡改过的,就需要重新安装别的包
-qp name.rpm --scripts ##检测软件在安装或卸载过程中执行的动作

查看firefox软件的安装包:
linux学习之旅(十二)

  • - -scripts 一定要会用,先看文件包安装的安装卸载执行的动作
    有些危险,比如流氓软件在卸载时要删除你的根就可以提早知道,禁止安装
    linux学习之旅(十二)
    linux学习之旅(十二)
    这时,发现在key ID上的显示时不一样的,那么用- -scripts查看安装执行的动作:
    linux学习之旅(十二)
    //可以看到,上面显示的软件A是明显的流氓软件,在删除时会删除你的根目录,所以果断禁止安装

  • 在rpm安装时会产生依赖性的问题,就是一个软件的安装需要别的软件先安装支持,才可以安装,你可以选择一个一个去rpm安装,但是非常的麻烦,这时,就需要用yum命令来解决

yum安装

yum 上层软件管理工具,最重要的功能是可以解决软件的倚赖关系
yum能够投入使用的前提是必须要有yum源,以及配置源的指向文件

  • 如图,开始配置的yum源是172.25.254.250,这里现在不存在文件,所以yum源无效,就会出现无法下载的情况
    linux学习之旅(十二)

那么如何让配置yum源呢?

server源端

1.从网络上下本机系统版本匹配的iso镜像文件

rhel-server-7.2-x86_64-dvd.iso

2.挂载

mkdir  /iso   //建立目录用来存放iso镜像

mv rhel-server-7.2-x86_64-dvd.iso /iso //将镜像文件放到/ios中

mkdir /rhel7.2 //建立iso镜像的挂载点

mount rhel-server-7.2-x86_64-dvd.iso /rhel7.2
//把rhel-server-7.2-x86_64-dvd.iso挂在到/rhel7.2用来访问镜像中的文件

linux学习之旅(十二)
//可以看到,这里的rhel7.2中已经存在文件,即已经挂载上了

3.配置本机yum源指向

配置yum源,一定以repo作后缀

rm -fr /etc/yum.repos.d/*
vim /etc/yum.repos.d/yum.repo
[Server] ##[不能有空格,不能符号]这个是源仓库名字
name=rhel7.2 ##(可以有空格)这里是描述这个软件
baseurl=file:///rhel7.2 ##baseurl=真正的地址
gpgcheck=0 ##不检测
## =1 检测,是不是第三方软件,牵扯一些权益
##完了之后 yum clean all 才能生效

linux学习之旅(十二)

现在再次时下载会发现
linux学习之旅(十二)
linux学习之旅(十二)
//成功下载

4.安装资源共享服务

yum install httpd -y            //安装httpd共享服务
systemctl stop firewalld //关闭火墙, **这个一定要做**
systemctl disable firewalld //让火墙开机不自启
systemctl start httpd //开启httpd服务
systemctl enable httpd //让httpd开机自启

5.建立共享目录,并挂在镜像文件到共享目录上

mkdir /var/www/html/rhel7.2           //开启共享服务后需要将文件放在这个目录下才能共享
umount /rhel7.2 //将之前挂载的取消
mount /iso/rhel-server-7.2-x86_64-dvd.iso /var/www/html/rhel7.2 //重新挂载

/var/www/html 是共享网页的目录
共享服务网站的地方是:
httpd /var/www/html/xxx ==> ip/xxx 本机的ip挂载地址: 172.25.254.166/xxx

6.测试

在浏览器中输入:http://本机ip/rhel7.2,就可以看到镜像中的内容
linux学习之旅(十二)

7.修改本机yum源指向

打开/etc/yum/repos.d/yum.repo

[server]
name=rhel7.2
baseurl=file:///var/www/html/rhel7.2 修改yum源指向
gpgcheck=0

8.开机自动挂在iso

打开 /etc/rc.d/rc.local
在里面添加挂载命令
linux学习之旅(十二)

或者直接 echo “mount rhel-server-7.1-x86_64-dvd.iso /var/www/html/rhel7.1” >>/etc/rc.d/rc.local

:wq退出后记得给权限才能生效:
chmod +x /etc/rc.d/rc.local

9.第三方软件仓库的搭建

把所有的rpm软件包放到一个目录中,这个目录中只能存放rpm文件

createrepo -v /rpm存放目录      //在企业版7中-v参数可以省去
vim /etc/yum.repos.d/yum.repo //**在这个文件原有内容的下面添加**
[Software]
name=software
baseurl=file:///rpm存放目录
gpgcheck=0
//createrepo 也要yum clean all 才能生效

如图所示为createrepo后出现的显示,扫面里面的rpm文件
linux学习之旅(十二)

  • 另外,如果想要在下载时,屏蔽掉一些不要的东西,可以在 /etc/yum.conf里面添加exclude=…
    比如不想要x86_64后缀的任何东西,不想要linuxqq.i386,可以设置
    linux学习之旅(十二)
    //之后,即使去搜索软件包,也不会显示
    • 添加之前:
      linux学习之旅(十二)
    • 添加之后:
      linux学习之旅(十二)

client指向端

vim /etc/yum.repos.d/xxxx.repo      //仓库指向文件位置"
[xxxx] //自定义软件仓库名称
name=xxxx //自定义软件仓库描述
baseurl=ftp://|http://|file:// //server配置的仓库位置
//比如要刚刚server配置的地方填写:
"baseurl=http://172.25.254.166/rhel7.2"
gpgcheck=0 //不检测gpgkey
//gpgkey表示软件的出品logo

yum clean all ##清空yum缓存识别新配置


yum命令

yum     install     softwarename    ##安装
repolist ##列出设定yum源信息
remove softwarename ##卸载
list softwarename ##查看软件源中是否有次软件
list all ##列出所有软件名称
list installd ##列出已经安装的软件名称
list available ##列出可以用yum安装的软件名称
clean all ##清空yum缓存
search softwareinfo ##根据软件信息搜索软件名字
##yum search 时是在搜索数据库 repodate在就还是能搜索到的,但是安装时就不会出现了
whatprovides filename ##在yum源中查找包含filename文件的软件包
update ##更新软件
history ##查看系统软件改变历史
reinstall softwarename ##重新安装
info softwarename ##查看软件信息
"yum info ...
= : 安装过的
+ : 必选安装,默认会选择安装的
- : 在安装时将会被安装的,需要手动安装
但是要考虑各软件依赖关系,即使安装也不一定能用。
"

groups list ##查看软件组信息
groups info softwaregroup ##查看软件组内包含的软件
groups install softwaregroup ##安装组件
groups remove softwaregroup ##卸载组件

//yum用来寻找安装包
linux学习之旅(十二)
//查看yum历史记录
linux学习之旅(十二)


安装包的拆解

rpm2cpio         xxxx.rpm  | cpio -id

在管理文件时不小心把那个配置文件年删除了,那么可以拆解相应软件包,将少的东西直接用拆解下来对应的文件添加上去就恢复了。

linux学习之旅(十二)
如果将/usr/bin/wps删除了,可以直接将这个wps放到/usr/bin/下 完成恢复
如果觉得有问题,不妨 vimdiff wps(拆解出来的) /usr/bin/wps 对比一下
linux学习之旅(十二)
//两个文件一模一样,可以替换


附上自动配置yum源的脚本

linux学习之旅(十二)
linux学习之旅(十二)