Linux系列:RPM安装 + yum安装 + 源码安装的区别&优缺点、CentOS下的yum安装 + yum源配置 + yum镜像源、Linux下的源码安装

RPM安装 + yum安装 + 源码安装的区别&优缺点、CentOS下的yum安装 + yum源配置 + yum镜像源、Linux下的源码安装

  • 一. RPM安装 + yum安装 + 源码安装的区别&优缺点
    • RPM安装
      • 优点
      • 缺点
    • yum安装
      • 优点
      • 缺点
    • 源码安装
      • 优点
      • 缺点
  • 二. CentOS下的yum安装 + yum源配置 + yum镜像源
    • yum安装软件
      • 重要的问题是:
        • 如何找到合适的源?
          • 不合适的源可能遇到的问题:
        • 在提出解决问题方案前,先学习以下几个知识点(均在CentOS 7的系统下)
        • 每个源文件都代表着一份设置,你可以编辑/etc/yum.repos.d/目录下所有的.repo文件
          • 例如:
        • 一个源文件里面可以填写多个源地址
          • 举例:
        • 在任何一个源文件里,添加yum源的配置
          • 举例:
      • 下面介绍几种常用的源和设置办法,以达到我们稳定可靠使用yum的目的
        • 官方源
        • 阿里云源
          • 阿里云是比较推荐的,云服务业务比较大,源镜像比较稳定可靠
          • 因此我们可以使用阿里云作为国外源的镜像
          • 说明:
        • 腾讯云源
          • 说明:
      • 中科大源
      • elep源
      • 特殊源库
      • 源的优先级
        • `yum-plugin-priorities` 插件可以用来强制保护源
        • 安装yum-plugin-priorities插件
          • 1,安装插件
          • 2,设置插件
          • 3,设置优先级
          • 4,对于第三方库设置优先级
          • 5,优先级规则
      • 源的冲突问题
        • 但最好不要添加太多源,官方源和EPEL源就够了
        • 建议:
  • 三. Linux下的源码安装
    • 源码目录
    • 安装指令
      • 1,首先使用 configure --help 命令
      • 2,接着执行 configure --prefix=PATH 命令
      • 3,最后会生成Makefile文件
      • 4,直接执行 make 命令
      • 5,接着执行 make check 命令
      • 6,执行make install命令
      • 7,配置系统环境
    • 经验之谈
      • 对于我个人来讲,我是比较喜欢源码安装软件的,好处很明显
      • 缺点就是需要自己解决软件安装中的依赖问题。相信我,这绝对是个麻烦的事情
      • 熟悉了参数,熟悉了编译流程之后,自己源码安装还是比较快的




一. RPM安装 + yum安装 + 源码安装的区别&优缺点

上一篇文章在了解完Linux环境配置后+函数库配置后,这篇继续讲解Linux下不同安装方式的对比

Linux系列:Linux目录分析:[/] + [/usr] + [/usr/local] + [/usr/local/app-name]、Linux最全环境配置 + 动态库/静态库配置

RPM安装

rpm包是别人编译安装好的二进制包

安装这个包,可能需要手动安装别的函数库或者依赖软件

一般自行去网站下载以.rpm为结尾的安装包

优点

下载安装包后,可以离线手动安装

缺点

很多安装包有依赖性,装一个包就带连带着装其他包,大包套小包

相比rpm安装来讲yum的安装更人性化,一般推荐yum联网安装

yum安装

yum仓库用来存放所有的rpm包

当使用yum安装一个rpm包时,如果需要依赖关系会自动在仓库中查找依赖软件并安装

yum仓库可以是本地的,也可以是HTTP、FTP、nfs形式的网络仓库

优点

yum最大的优势在于可以联网去下载所需要的rpm包,然后自动安装,安装东西方便快捷

如果要安装的rpm包有依赖关系,yum会帮您解决掉这些依赖关系并依次安装所有rpm包

缺点

1,yum安装的版本会比较低,一般不是最新版本

2,yum安装过程人为无法干预,不能按需安装,源里面有什么就安装什么,

3,不能自定义软件的模块和功能,不能自定义软件部署的路径,对后期的维护成本会增加

4,需要维护yum源的网络库,找到合适的repo库,否则找不到安装软件

5,大部分生产环境要求服务器的环境配置要一致,统一环境如果需要升级某个程序版本,一个脚本几条命令就可以解决。如果是yum安装,机房和机房之间,国家和国家之间,yum的库不能保持一致,会很麻烦的问题

源码安装

源码安装,下载的是源码包,用户自行编译和安装

优点

编译安装过程,可以设定参数,按照需求进行安装,安装的版本可以选择,灵活性比较大

可以自定义部署的路径,进行统一的管理,减轻后期的维护工作量

缺点

1,编译,安装,配置,部署比较复杂

2,不能自动解决软件包之间的依赖关系

3,由于安装包过新,或版本过低,或是其他问题,导致依赖的包没有,就要解决包的依赖问题

可能装一个小东西,就要解决一堆包的依赖问题,花很多时间解决包的依赖问题

4,不敢随便升级系统,升级系统可能会导致以前手动装的东西,不能用

以上是在Linux环境下安装软件的3种办法,常用的是yum和源码安装这2种方式

具体的安装方法比较繁杂,下一篇文章介绍yum安装和源码安装的流程




二. CentOS下的yum安装 + yum源配置 + yum镜像源

在上一篇文章中,已经详细介绍了源码安装 + yum安装的优缺点

今天来详细谈谈关于yum安装的方案和注意事项,毕竟在实际工作中yum使用还是比较频繁的

关键词:CentOS的yum安装,yum源设置,yum镜像源,yum优先级,阿里云源,中科大源

yum安装软件

yum安装软件时候,一般都有具体的命令参考,按教程操作一般不会有问题

安装的方法其实比较简单,不能人为干涉,一般不会遇到大的问题,这里不再细说

重要的问题是:

如何找到合适的源?

合适的源类似于不同的应用商店,我们需要设置合适的源,找到合适的应用商店

才能顺利安装我们需要的软件,在使用yum时才不会遇到各种问题

不合适的源可能遇到的问题:

1,源是国外的,下载速度非常慢,网络不稳定,经常安装失败

2,有些源根本没有想要安装的软件,要切换特殊的源才能提供

3,使用的源突然失效了,需要重新设置你的源连接

4,记得要维护更新源库,才能获取最新的软件列表

5,有些源下载安装的软件包版本过低

在提出解决问题方案前,先学习以下几个知识点(均在CentOS 7的系统下)

查看系统发行版本:rpm -qi centos-release(查看Version字段)

进入yum配置目录:cd /etc/yum.repos.d

查看yum配置目录:ll /etc/yum.repos.d

备份yum配置目录:cp -r /etc/yum.repos.d /data/

显示使用中的yum源:yum repolist

清除yum的缓存:yum clean all

生成yum的缓存:yum makecache

查看yum配置目录后,你会发现/etc/yum.repos.d目录下有非常多以.repo结尾的源文件

每个源文件都代表着一份设置,你可以编辑/etc/yum.repos.d/目录下所有的.repo文件
例如:

你可以新增yourname.repo文件,表示这个是属于你加的源文件

我也可以新增myname.repo文件,表示这个是属于我加的源文件

一个源文件里面可以填写多个源地址
举例:

一般官方的源文件CentOS-Base.repo下有[base], [updates], [extras]三个源

另外还有两个[CentOSplus], [contrib] 源

这就是一个源文件里面可以填写多个源地址的样例

在任何一个源文件里,添加yum源的配置

1 [base] #仓库名称

2 name= #仓库描述

3 mirrorlist= #仓库镜像路径

4 baseurl= #仓库url路径

5 enabled= #仓库是否启用,1表示启用,0表示关闭

6 gpgcheck=1 #密钥检测,1表示开启,0表示关闭

7 gpgkey= #检查key的地址,如果上面不检查,这个可以不写

举例:

如果你执行显示yum源的命令yum repolist,会显示正在使用的仓库标识和仓库名称

仓库标识就是配置中的仓库名称,例如[base]

仓库名称就是配置中的仓库描述,例如name=xxx

具体的作用可以看yum源的配置说明

其实CentOS-Base.repo文件中,配置的仓库一共有5个

[base], [updates], [extras],[CentOSplus],[contrib]

但是[CentOSplus],[contrib]却被设置为enabled=0

所以使用 显示使用中的yum源的命令 展示的源,只有[base], [updates], [extras]3个

前面说的:/etc/yum.repos.d目录下有非常多以.repo结尾的源文件

进去查看具体的内容,会发现都有配置,但却没有设置为enabled=1生效

因此这么多文件都是没有用的,要生效,需要再自己设置

只有CentOS-Base.repo文件,默认生效了3个配置

下面介绍几种常用的源和设置办法,以达到我们稳定可靠使用yum的目的

官方源

如果安装了CentOS的发行版,那么自带的源应该就是官方的

但源是国外的,因为众所众知的原因,下载速度非常慢,安装经常失败

一般不使用

阿里云源
阿里云是比较推荐的,云服务业务比较大,源镜像比较稳定可靠
因此我们可以使用阿里云作为国外源的镜像

第一:备份原始yum源,执行cp -r /etc/yum.repos.d /data/

第二:在/etc/yum.repos.d目录下,清空所有文件

第三:执行rpm -qi centos-release,确认系统的版本

第四:wget -O /etc/yum.repos.d/aliyun-Base-7.repo https://mirrors.aliyun.com/repo/Centos-7.repo

第五:执行yum clean all,清除缓存

第六:执行yum makecache,生成缓存

第七:执行yum repolist,查看生效后的源地址

说明:

1,wget -O /etc/yum.repos.d/aliyun-Base-7.repo 中的aliyun-Base-7.repo,表示下载来的文件的名称

从阿里云下载的.repo文件,就命名为aliyun-Base-7.repo

注意:aliyun-Base-7.repo中最好带上-Base-7的描述,跟阿里云的网络路径尽量一致,以后容易区分

2,确认系统版本,例如7.9,则使用版本7

填写为 https://mirrors.aliyun.com/repo/Centos-7.repo 中的7,用来获取阿里云中具体的版本

3,最后一定要执行yum clean all & yum makecache

4,获取.repo文件的链接可能变动,有时需要自己去官网更新最新的办法

阿里云配置帮助链接:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

腾讯云源

第一:备份原始yum源,执行cp -r /etc/yum.repos.d /data/

第二:在/etc/yum.repos.d目录下,清空所有文件

第三:执行rpm -qi centos-release,确认系统的版本

第四:wget -O /etc/yum.repos.d/tencent-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo

第五:执行yum clean all,清除缓存

第六:执行yum makecache,生成缓存

第七:执行yum repolist,查看生效后的源地址

说明:

1,wget -O /etc/yum.repos.d/tencent-Base-7.repo 中的tencent-Base-7.repo,表示下载来的文件的名称

从腾讯云下载的.repo文件,就命名为tencent-Base-7.repo

注意:tencent-Base-7.repo中最好带上-Base-7的描述,跟腾讯云的网络路径尽量一致,以后容易区分

2,确认系统版本,例如7.9,则使用版本7,填写为

http://mirrors.cloud.tencent.com/repo/centos7_base.repo 中的7

用来获取腾讯云中具体的版本

3,最后一定要执行yum clean all & yum makecache

4,获取.repo文件的链接可能变动,有时需要自己去官网更新最新的办法

腾讯云配置帮助链接:腾讯软件源

中科大源

设置中科大的源不像阿里云和腾讯云方便,但是原理都一样

需要新建立源的文件,再手动更改文件的内容即可

这里不再细说,可以参看中科大详细的帮助文档

中科大配置帮助链接:USTC Open Source Software Mirror

elep源

CentOS自带的yum源中rpm包数量有限,很多时候找不到我们需的软件包,所以我们需要安装包含丰富的第三方YUM源来满足我们的需求。简单来说,就是去新增一个应用商店,这个应用商店可能有我们要下载的软件

EPEL(Extra Packages for Enterprise Linux是企业版Linux附加软件包)

EPEL的软件包通常不会与企业版Linux官方源中的软件包发生冲突,或者互相替换文件

官方的EPEL源可能速度比较较慢,这里我们添加阿里的EPEL源,如下:

wget -O /etc/yum.repos.d/aliyun-epel-7.repo https://mirrors.aliyun.com/repo/epel-7.repo

指令格式不再详说,都是和上面差不多的

特殊源库

安装某些特殊的软件,需要安装官方的源,否则没办法通过yum安装

例如Nginx源,需要独立配置官方的源,才能进行安装

但是这类软件非常少,我们一般不需要这样配置

源的优先级

当系统有多个软件源时,要安装某一个软件,并且这个软件在多个源里面都有时

我们肯定希望用最优质的源来下载软件,而且不同的软件源之间并不能保证软件的完全兼容没有冲突

所以我们需要设置软件源的优先级

yum-plugin-priorities 插件可以用来强制保护源

它通过给各个源设定不同的优先级,使得系统管理员可以将某些源(比如官方源)设定为最高优先级

安装yum-plugin-priorities插件
1,安装插件
yum install yum-plugin-priorities.noarch
2,设置插件

yum-plugin-priorities 插件的配置文件是/etc/yum/pluginconf.d/priorities.conf,先确认其是否存在,后查看

其内容为:

[main]

enabled=1 # 0禁用 1启用

把enabled=1设置为1就是启用

3,设置优先级

举例:

以官方源文件 /etc/yum.repos.d/CentOS-Base.repo为样本



对于[base]选项,添加:

priority=1 #设置[base]源优先级为1

对于[updates]选项,添加:

priority=1 #设置[updates]源优先级为1

对于[extras]选项,添加:

priority=1 #设置[extras]源优先级为1

对于[centosplus]选项,添加:

priority=2 #设置[centosplus]源优先级为2

对于[contrib]选项,添加:

priority=2 #设置[contrib]源优先级为2


4,对于第三方库设置优先级

举例:

以源文件 /etc/yum.repos.d/epel.repo为样本

对于[epel]选项,添加:

failovermethod=priority

priority=11 #设置[epel]源优先级为11

5,优先级规则

priority的优先级为1到99,设置为1即优先级最高,1-10为系统保留,第三方yum源的优先级从11-99

一般官方的源文件CentOS-Base.repo下有[base], [updates], [extras]三个源设置为 priority=1

另外两个[CentOSplus],[contrib] 源设置成priority=2

其他第三方软件源的源文件中的源源设置为:priority=N

(推荐N>10,并且每个类型的源推荐从n0开始,n为1-9的数字,比如10,20,30,这样源下面的细分源以后也方便添加级别)

源的冲突问题

/etc/yum.repos.d/目录下文件名后缀为.repo的文件都是源文件,里面对应的源都需要设置

但最好不要添加太多源,官方源和EPEL源就够了

如果这里没有想要的软件在进行其他源的添加,添加过多的源维护起来麻烦,还容易造成软件源的冲突

建议:

把暂时不用的源通过enabled=0关闭,只留下一个EPEL第三方源,这样可以减少软件的冲突和软件搜索的速度




三. Linux下的源码安装

在上一篇,介绍了CentOS下的yum安装和yum源的配置

现在介绍另一种在Linux环境下安装软件的办法:源码安装

源码安装的方法比较固定,但不简单。如果不熟悉,可能会遇到很多头疼的问题,需要有一定的Linux知识基础才能进行安装,例如:Linux下的系统环境配置,Linux下的目录,常用指令等要有了解,可以看看往期的文章。

下面介绍一下源码安装的一些知识

源码目录

下载了源码之后,进入目录,一般有以下几项:

  • 配置 configure(可执行文件)

  • 源码 src(源代码)

  • 说明 README(说明文档)

  • 其他 其他的文件夹(每个软件可能有不同的软件)

安装指令

configure是非常重要的文件,很多参数都由它来完成

1,首先使用 configure --help 命令

了解软件安装的必要参数设定,对于源码安装来说非常重要

编译软件的功能,模块,特性都是通过configure来设定参数的

每个软件的编译,安装设置可能都不一样

因此需要参考–help里面的说明来设定

2,接着执行 configure --prefix=PATH 命令

–prefix=PATH中的PATH是软件安装的路径

当然也可以不执行,默认安装在/usr/local/

你可以再添加别的编译参数,详细见–help

3,最后会生成Makefile文件

Makefile文件是Linux下指导编译,安装的配置文件

使用configure命令后自动生成,就不需要再更改

4,直接执行 make 命令

这一步是编译,比较容易出问题

编译需要的库找不到

所需要的的文件找不到

具体解决办法查看看configure --hlep以及

学习如何设定Linux的环境(即Linux系列:Linux目录分析:[/] + [/usr] + [/usr/local] + [/usr/local/app-name]、Linux最全环境配置 + 动态库/静态库配置中的Linux最全环境配置 + 动态库/静态库配置

一定要根据报错信息来对症下药

5,接着执行 make check 命令

一般的软件都有make check命令

用来检查编译的软件有没有问题

通过make check后再进行下一步

(如果没有make check,就不用执行了)

6,执行make install命令

最后一步是安装步骤

会把软件的可执行文件等

放到–prefix=PATH中设定的目录

(一般只是复制目录,生成一些配置等)

7,配置系统环境

在安装好后,如果直接运行软件,会发现找不到这个指令

需要我们把安装目录下的可执行软件

添加到系统的搜索路径里面

参看环境配置教程(即Linux系列:Linux目录分析:[/] + [/usr] + [/usr/local] + [/usr/local/app-name]、Linux最全环境配置 + 动态库/静态库配置中的Linux目录分析:\[/\] + \[/usr\] + \[/usr/local\] + \[/usr/local/app-name\]

经验之谈

对于我个人来讲,我是比较喜欢源码安装软件的,好处很明显

可以自己设定安装参数,也就不会安装根本用不到的模块,做到按需定制,这对有点强迫症的我来说很友好

可以自己控制安装过程,对软件状态比较了解,对以后的管理很方便,做到心中有数

能及时安装使用最新版本的软件,不需要等待源的更新

缺点就是需要自己解决软件安装中的依赖问题。相信我,这绝对是个麻烦的事情

要熟悉软件的安装参数配置,否则就编译不出你要的软件,甚至报错

这要求熟悉configure --help文档,这是最好的安装指导

熟悉了参数,熟悉了编译流程之后,自己源码安装还是比较快的

但有时候我们也不要迷信于源码安装,解决不了报错,或者花费的代价太大

使用yum安装也是不错的,这2者结合起来,能解决大部分软件的安装问题了










不是罗罗

RPM安装 + yum安装 + 源码安装的区别&优缺点

CentOS下的yum安装 + yum源配置 + yum镜像源

Linux下的源码安装

你可能感兴趣的:(运维,linux,centos,运维)