Linux基础命令(十三)软件管理

一、yum

yum产生

(1)Redhat和Fedora的软件安装命令是rpm
(2)但是用rpm安装软件最大的麻烦就是需要手动寻找安装该软件所需要的一系列依赖关系,超级麻烦!
(3)另外要是软件不用了需要卸载的话由于卸载掉了某个依赖关系而导致其他的软件不能用是非常恼人的!
(4)Fedora推出了类似于 ubuntu中的apt的命令yum,令Fedora的软件安装变得简单容易!

yum 特点

*可以同时配置多个资源库(Repository)
*简洁的配置文件(/etc/yum.conf)
*自动解决增加或删除rpm包时遇到的倚赖性问题
*使用方便
*保持与RPM数据库的一致性

yum的宗旨:自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。

yum的关键之处:要有可靠的 repository,顾名思义,这是软件的仓库,它可以是http或ftp站点, 也可以是本地软件池,但必须包含rpm的header, header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等正是收集了这些 header并加以分析,才能自动化地完成余下的任务。

(0)yum参数

说明1:依照功能进行分类
说明2:也可以按照软件包和软件组进行分类

1 安装
yum install               全部安装(慎重)
yum install package1      安装指定的安装包package1,参数y表示确认信息!
yum groups install group1 安装程序组group1
yum reinstall package1    重新安装软件

2 更新和升级
yum update 全部更新
yum update package1    更新指定程序包package1
yum check-update       检查可更新的程序

3 查找和显示
yum info package1      显示安装包信息package1
yum repolist           显示可用的仓库(常用)
yum list               显示所有已经安装和可以安装的程序包
yum list installed     查看"已经安装"的软件
yum list available     列出"可以安装"的软件
yum list package1      显示指定程序包安装情况package1
yum info package1      显示"软件包"package1的信息
yum groups info group1 显示"程序组"group1信息
yum search string      根据关键字string查找安装包,根据软件的信息来查找软件(常用)
yum deplist package1   查看程序package1依赖情况(常用)
yum whatprovides file  根据文件来查找相应的软件包,哪个软件包安装产生这个文件(常用)-->/bin/ls
常用: file -->*/ls --> 一般都是模糊匹配
yum history            列出yum命令操作的历史,以数字记录
yum history list number列出此历史编号详细的操作(重要)!
yum history info number列出yum命令此编号更详细的信息!

4 删除程序
yum remove  package1              删除程序包package1(常用)
yum groups remove group1          删除程序组group1

5 清除缓存
yum clean packages                清除缓存目录下的软件包
yum clean headers                 清除缓存目录下的 headers
yum clean oldheaders              清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers(常用)

软件组:Software的图形直观展示!

    需求1:虚拟机使用真机的yum源来安装软件!

原始的方式:scp到虚拟机,但是虚拟机本身容量就不大,所以不建议!
###########本地源的搭建############

(1)真机通过"virt-manger"给虚拟机加载一个光驱,让虚拟机系统识别镜像文件,注意Device Type选择CDROM,然后选择镜像源存储在光驱上!

(2)系统识别了,但是系统不知道位置,需要给一个指引(具体的位置,遵守相应的语法)

注意:虚拟机的df命令可以看到光驱(相当于硬盘之类的移动设备)所挂载的目录!

(3)yum源的目录-->/etc/yum.repos.d

注意:此目录下以".repo"结尾的文件都是yum源,必须有效!

(4)yum源配置

注意:虚拟机必须关闭,执行上述动作才起效!

配置文件的详细说明

#(1)yum源的名字
[rhel-dvd]
#(2)描述信息
name="rhel7.3"
#(3)说明:本地文件协议访问镜像源进行软件的管理(光驱被挂载的目录)!
baseurl=file:///run/media/root/"RHEL-7.3 Server.x86_64"
#(4)运行授权的和公司出品,其它也可以,但是出了问题,红帽官方不管,不提供服务!
#签证:公司授权,0表示不检测,因为系统不能保证不安装第三方软件!
gpgcheck=0

了解:一旦光驱挂载,就可以访问里面的内容了!

  注意:yum源的名字必须是repo结尾的!

需求2:配置本地yum源

步骤:

(1)让系统识别镜像文件

 mount 镜像的位置(绝对路经) 挂载的位置(一般是mnt,为临时挂载点)

(2)系统识别了,但是系统不知道位置,需要给一个指引

 创建yum的配置文件:vim /etc/yum.repos.d/dvd.repo

(3)编辑yum源,内容如下

[rhel-dvd]
name="rhel7.3"
baseurl=file:///mnt
gpgcheck=0

(4)测试 yum repolist 

注意:一旦镜像挂载,原来目录的东西都会被暂时隐藏,所以千万不要挂载到重要目录下(/boot等),不然开不了机!

需求3开机自动挂载

(1)编辑:vim /etc/rc.d/rc.local

mount 镜像的位置 挂载的目录

(2)给此文件一个执行权限

chmod +x /etc/rc.d/rc.local

说明:由于此文件是开机会自动执行的脚本,所以开机后再设置,当前不生效,如果想立刻生效sh执行此脚本!

注意:不建议开机挂载,因为如果我们在操作的过程中,不小心改变了挂载目录或者镜像的位置,可能开不了机!

需求4:配置yum网络源

yum源共享:防止资源浪费!

前期准备

(1)安装httpd软件,并且httpd服务必须开启,最好开机自启!

(2)关闭防火墙

了解:httpd默认的发布目录:/var/www/html

核心

如果是在虚拟机:则要将光驱从原来的挂载目录重新挂载到httpd的默认发布目录/var/www/html下

df查看光驱的名字,然后mount挂载

注意:在当前发布目录下部自己手动创建一个目录!

配置文件

[rhel-dvd]
name="repo"
baseurl=http://172.25.10.250/rhel7.3
gpgcheck=0

测试:在同一网段或者设置路由的不同网段!

http://172.25.10.250/rhel7.3/ ##yum源的网络地址

需求4

/etc/yum.repos.d/redhat.repo

#此配置文件太烦人,写的内容都会被覆盖掉,如何解决

相关链接

yum安装的问题

链接1、链接2、链接3

二、rpm

rpm:redhat package manager ,redhat 软件包的管理

(1)参数说明

思考:默认软件安装的位置,是否可以自定义!

参数

  0)rpm--->安装

  常用:rpm -ivh 软件包!

-i   --install  安装软件包

-v   --verbose  提供更多的详细信息输出(过程)!

-h   --hash     软件包安装的时候列出哈希标记(加密),会显示进度条!

 1)rpm--->查询(比较细腻,当然是针对rpm包---->列出几个常用的

         q-->query(查询) ;          p-->uninstalled package ;
         l-->list files in package;f-->file owned package ;
         a-->all package;          i-->information;
         c-->configfiles(配置文件);  d-->docfiles(帮助文档)
         R-->Required(必须的,依赖的);

#############################分割线#############################

        常用1:rpm -qa |grep 软件包(模糊)--->查找已经安装的软件包!

        常用2:rpm -qf 文件名---->查到文件隶属的软件包(软件安装时会产生此文件)!

        常用3:rpm -ql 包名(后缀不是rpm)---->可以看到那个包的默认安装所有文件和目录的路径!             

        常用4:rpm -qpl 包名(全路径)  ---->查询"未安装"的rpm的预安装文件的路径(如果安装,默认帮你干的啥)!

        常用5:rpm -qi 包名 ---->列出已安装的软件的相关信息说明!

        常用6:rpm -qc 软件名---->列出软件的所有配置文件

        常用7:rpm -qpR 软件名---->列出预安装软件所需要的"依赖"套件(比较重要)!

注意:p【i,c,d,lR】都是"未安装"的软件的信息!

  2)特殊的(注意应用场景)

        --nodeps   不验证软件包的依赖!

        --scripts  查看脚本执行的动作!

        --force    强行安装软件(重新安装)!

        --Kv       检测软件是否被篡改!

  3)卸载

        -e         卸载软件(erase)

    说明:在卸载之前,通常需要使用rpm -q命令查出需要卸载的安装包名称

核心:以需求为导向,穿插命令参数的说明!

需求1:在linux下如何判断是否已经安装某个套件

          

    提示:rpm -qa 是查看该软件是否被安装,而grep和find是查看文件位置

软件包名称的详解

kolourpaint-4.10.5-4.el7.x86_64.rpm
软件名称   版本  适用系统 适用的架构 适用rpm体系软件
了解:software-1.2.3-1.deb  -->dpkg体系的软件

说明1

(1)wps进行rpm安装,缺少依赖(注意提示缺少的依赖)
(2)yum安装,正常安装,解决了依赖
(3)rpm -e wps的包(后缀是rpm)
(4)rpm -ivh wps的包(成功安装)

结论:yum解决了依赖,rpm并不能删除依赖,只是软件本身!

说明2  --scripts

分析:A删除以root身份运行,卸载修改密码同时删除根,典型的流氓软件!

说明3  --nodeps

#################安装画图软件###########################
#(0)rpm安装,出现依赖性问题
#(1)yum安装先解决一部分依赖性,不能解决的依赖先暂时跳过 --skip-broken
#(2)安装画图的lib -->rpm -ivh 软件 --nodeps看需要解决的依赖性,最后rpm -ivh  软件 --nodeps(暂时忽略依赖性的安装)
#(3)发现(2)步骤需要依赖的软件:通过rpm -qf */依赖的内容 -->找到对应的安装包用yum安装
或者yum whatprovides */libqimageblitz.so.4来查询!
#(4)解决完所有的依赖之后,进行最后的安装-->rpm -ivh 软件
#
  719  rpm -ivh kolourpaint-libs-4.10.5-4.el7.x86_64.rpm  -->不能安装(有很多依赖)
  720  yum install kolourpaint-4.10.5-4.el7.x86_64.rpm    -->也不能安装(有很多依赖没有),注意没有解决的依赖(libs)
  721  yum install kolourpaint-4.10.5-4.el7.x86_64.rpm --skip-broken(yum先解决一部分依赖,临时跳过不能安装的依赖)
  722  rpm -ivh kolourpaint-libs-4.10.5-4.el7.x86_64.rpm --nodeps -->暂时跳过依赖(A<-->B)
  723  rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm               -->注意其提示的信息!
  725  yum whatprovides */libqimageblitz.so.4                     -->看依赖的此文件对应的安装包!
  726  yum install -y qimageblitz-0.0.6-7.el7.x86_64              -->安装此软件包(解决依赖)!
  727  rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm               -->解决完所有的依赖正式安装!

说明4 -Kv

补充:rpm的强制忽略依赖关系参数易导致版本间出现问题

三、制作第三方软件源

了解:镜像文件中的primary.xml文件

createrepo -v /mnt/

说明:v表示扫描该目录下的rpm包

注意:必须全是rpm包!

特点:会与yum源中的文件进行依赖,yum可以查询到,安装时方便!

结果:命令执行成功后会生成repodata目录,里面核心的是primary.xml文件!

补充:链接1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值