• linux系统管理学习笔记8-管理软件包


    linux系统管理学习笔记8-管理软件包

    用RPM管理软件

    本讲学习如何在Linux之中管理系统中的软件。

    编译源代码安装软件需要编程基础

    因为不同的Linux发行版本往往有很大的不同,开发者在某个发行版本中开发和编译的程序,直接放到另外一个领域,有非常大的可能性无法运行,因此早期的历史软件都是通过源代码来分发的,使用者基本都是通过在自己的平台上重新编译源代码来安装软件,这种编译源代码的方式比较繁琐和复杂,要求用户有一定的编程基础,往往难以掌握。

    软件包管理器RPM使用指令

    为了解决这个问题,红帽公司开发了一个包管理器,名为red hat package manager, RPM,是Linux下软件资源最为丰富的软件包类型,是使用最为广泛的软件包管理器。
    简单来说,RPM将软件编译好的二进制文件,所依赖的动态库文件以及配置文件打包压缩到一个文件中,这个文件就被称为RPM软件包。用户在用这个RPM软件包安装软件的时候,RPM就将包里的文件解压到目标操作系统上,安装过程中还可以动态生成一些文件,一并安装到系统中。RPM,对普通用户而言,使得软件管理变得十分容易,只需要十分简单的命令,就能完成RPM的安装卸载和升级。
    每个RPM软件包文件的名字都包含了一些重要的信息,通常第一部分是软件包的名字,第二部分是软件包的版本号,第三部分是软件包是用的硬件规格。第三部分决定了您下载的软件包是否能够安装到您的机器上,

    • x86-64,表示该软件包必须安装在拥有64位CPU的计算机上,

    • i386,i586或者i686,表示必须安装在拥有32位CPU的计算机上。

    • no arch ,表示软件适用所有架构的计算机。

    以OPERA浏览器的安装为例,介绍RPM安装软件的使用方法。

    # 查询是否安装
    rpm -q opera 
    # 安装软件
    rpm -ivh opera-11.11-1.mgal.x86_64.rpm
    # 卸载软件
    rpm -e opera
    
    1. 首先我们要获取它的RPM安装包,可以在OPERA的官方网站上下载,或者到RPM网站上下载,这里选择到RPM的网站上下载,在搜索框里搜索opera。

    2. 查询主机上是否已经安装了opera,查询命令为rpm -q opera, 若已经安装的话,需要先卸载才能重新安装。

    3. 接着为安装过程,命令为rpm -ivh opera-11.11-1.mgal.x86_64.rpm , i选项一般和v h 选项联用,v选项是显示安装详细信息,h选项是显示#w为安装进度条。

    4. 安装完成后可以用rpm 再次查询已经安装opera, rpm -q opera。也可以在Applications中的Internet中看到有opera浏览器的应用。

    5. 如果要卸载opera, 命令为rpm -e software name ,即卸载用rpm 的-e选项。我实践时在centos7.7中rpm不需要输入软件全名,可以直接使用rpm -e opera 进行卸载opera软件。不过在老师课程中使用的centos6系统中,rpm卸载软件时,后需跟软件包含版本及系统架构的全名称。

    rpm管理软件的缺点是解决不了软件包依赖的问题

    例如当安装某个软件时,可以会提示出错,failed dependencies。就是用户需要安装软件包A,但是可能需要先自己安装依赖的多个安装包。这就使得安装过程非常麻烦。yum 软件包就为了解决这个问题而诞生了。

    用yum 管理软件

    yum, yellow dog updator modifier,黄狗更新管理器

    自动解决rpm包之间的依赖关系,不需要用户手动解决安装包依赖问题。

    注意yum 可以视为rpm 的一个前台工具,并不是一个独立的软件包管理器。

    yum 的工作原理并不复杂,因为每一个rpm软件包都有一个包头header,header中有该软件的依赖关系,分析header就可以知道每个软件包的依赖软件。yum 服务器的分析工具,首先分析软件包A的header,将软件包A所有依赖关系记录成一个文件,并将其依赖的所有软件包也都囊括到yum服务器中备用。所以yum的基本工作流程就是,yum服务器端放着软件源,软件源中有软件仓库,仓库里包含三种工具,一是该软件仓库中所有RPM软件包的目录索引,二是每个RPM软件包的依赖性关系数据,三是该软件仓库中所有RPM软件包。当用户用yum安装某个软件包时,通过yum客户端首先查询某一个yum服务器上有无该软件,如果有则下载该服务器上记录的该软件包的依赖关系数据,并且根据该依赖性关系数据,一次性地从yum服务器端的软件仓库中将依赖的所有软件下载到yum 客户端上。

    yum安装前清理缓存

    在使用yum之前,建议先执行两个步骤:

    1. yum clean all , 清除yum原有软件包缓存数据
    2. yum makecache , 将当前服务器上的软件包相关信息存到本地以提高搜索软件的速度。

    yum安装软件包

    接下来介绍yum安装软件包的指令 install,以linux中C++的编译器软件为例,软件名称为"gcc-c++",

    yum install gcc-c++ ,若提示需要安装或更新部分依赖软件包,就输入y。OK之后即完成安装。Centos7.7中,发现gcc-c++软件包已经在安装系统之后安装好了。

    yum查询软件包是否安装

    yum 查询软件包,查询指令为list,list指令后跟软件包名来查询该软件包是否已经安装。

    yum list gcc-c++ , yum输出提示gcc-c++是已安装的软件包

    yum list bind ,yum输出提示bind是可安装的软件包,意思是bind软件包未安装。

    yum list aaa , yum 查询的软件包不在软件源中,会提示没有匹配的软件包可以列出。

    list指令支持通配符,如yum list gcc* ,表示列出yum源中所有名字以gcc打头的软件包。

    list指令还可以跟两个特殊的参数,

    1. yum list installed ,将列出主机上所有已安装好的软件包。可以结合管道操作查看,yum list installed|less
    2. yum list available ,将列出当前软件源中,所有可安装的软件包。yum list available|less

    yum查看软件包

    yum 查看软件包,指令是info,info命令后跟软件包名,来查看软件包的具体信息,包括软件包的大小,软件包的版本号,软件包的简短描述,软件包是否已经安装。

    yum info gcc-c++

    yum更新软件包

    yum更新软件包,指令是update,指令后跟软件包名,

    yum update python

    yum卸载软件包

    yum卸载软件包,指令是remove, 指令后跟软件包名。yum remove gcc, 会提示需要确认卸载依赖于该软件包的其他软件。

    为yum配置软件源

    centos中,yum使用的默认软件源,是centos提供的官方源,不包括任何有版权争议的软件包,并且软件包更新不太及时。

    如"eclipse", linux中经典的媒体播放器 "mplayer"均不在centos官方源中。

    推荐的6个第三方源

    因此需要配置yum 的第三方软件源,推荐如下6个第三方软件源

    • EPEL源(在我听课后实践时,发现EPEL已经纳入yum的官方源中)
    • Remi源
    • aTrpms源
    • RPMFusion源
    • RepoForge源
    • ELRepo源

    配置RepoForge源并设置源优先级

    以RepoForge源为例,在主机上配置yum的第三方源,并安装mplayer播放器。

    1. 打开RepoForge源的官方网站,下载RepoForge源的对应所使用主机系统64位和主机EL版本的的rpm安装包(cat /etc/redhat-release 查看主机所使用的EL release版本号), 复制下载文件的链接地址,wget 下载链接至当前目录下。
    2. 安装 rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
    3. 进入/etc 目录下的yum配置目录yum.repos.d 下, cd /etc/yum.repos.d/, ls -l
    4. 找到其中名为repoforge.repo的文件,即为repoforge的配置文件,但是目前repoforge还不能正常使用。原因是现在yum中除了默认源外,还有了一个第三方源。也就是yum中有了多个软件源,所以需要对软件源进行优先级的排序,这里让官方默认的软件源优先级最高,让repoforge源次之,首先安装一个对yum源进行优先级排序的软件,叫做"yum-plugin-priorities",即yum install yum-plugin-priorities ,安装完毕之后即可以进行优先级的配置。
    5. 先打开yum的官方源配置文件, vim /etc/yum.repos.d/CentOS-Base.repo , 在三个软件仓库(即文档中的[base] , [updates] , [extras])配置的末尾,分别加上一句 "priority=1",表示其优先级最高。然后保存退出。
    6. 再打开repoforge的配置文件,vim /etc/yum.repos.d/rpmforge.repo ,在其所有软件仓库配置的末尾分别加上一句"priority=10",表示其优先级次于官方源。保存退出。就完成了软件源的优先级排序。
    7. 接着就可以yum安装mplayer软件了,一共需要安装两个软件包,分别是软件主体和软件的图形界面,yum install mplayer mplayer-gui,然后即进入安装,等待完成。
    8. 命令行输入gmplayer即打开播放器,可以用以播放视频或音频文件。
  • 相关阅读:
    POJ 2773 Happy 2006------欧几里得 or 欧拉函数。
    Candies
    subway(dijkstra以最短时间代替最短路)
    昂贵的聘礼
    LightOJ 1074
    SPFA以及各种优化
    Making Huge Palindromes (Manacher)
    Making Huge Palindromes (KMP处理回文串)
    AC自动机基础
    扩展KMP
  • 原文地址:https://www.cnblogs.com/songbiao/p/12579966.html
Copyright © 2020-2023  润新知