教你使用rpm、yum、编译等方式安装软件

一、什么是包管理器?

    很多人都不知道包管理器的概念,首先我们要了解软件是如何运行的,我们这里介绍C程序如何实现从代码到执行程序的过程。

        程序源代码–> 预处理–> 编译–> 汇编–> 链接 –>执行 

        程序源码预处理后进行编译,编译成目标代码,然后汇编成二进制代码,最后将源程序所用的库代码与目标代码合并,最终形成可执行的二进制代码

        blob.png

    但是一般情况下一个程序不止一个二进制程序,可能存在配置文件,帮助文档等相应文件,这时候我们就需要一个打包软件将程序包各组件打包,打个比方,打包软件可以根据别人通过源码包预先定义好的配置将解压后执行文件自动放到/bin,配置文件自动放到/etc/,帮助文档自动放到/usr/share/man…在Linux各发行版本中有很多打包软件可以供我们使用。

    例如:

        debian系:包名deb,管理工具dpkg

        redhat系:包名rpm,管理工具rpm

        …

    本文主要介绍rpm

二、RPM原理及使用

   众所周知,组合小程序完成复杂任务是Linux哲学思想之一,再加上Linux上大部分软件就是自由软件,可以避免“重复制造轮子”这种事情发生。但是这也会引发很多问题、比如,A软件需要B和C才能运行,如果我们不看文档可能不知道A软件需要B和C软件才能运行,所以在安装A软件的时候就非常的麻烦,早期Linux用户就深受这个问题的困扰,安装一个软件需要很多时间。后来,就有很多公司或社区开发了相应包管理工具,可以通过包管理工具得知安装软件所需的软件包。

    RPM(Redhat Package Manager/ RPM is Package Manager)可以将编译好的应用程序各组成文件(二进制程序、帮助文档、配置文件),从而方便快捷实现程序包的安装、卸载、查询、升级和校验等操作。

    1、程序包组成清单(每个包独有)

        文件清单

        安装或卸载文件时运行的脚本

    2、数据库(公共)

        程序包名称及版本

        依赖关系

        功能说明

        安装生产的各文件的文件路径及校验码信息

 查看rpm数据库文件

    blob.png

    

三、如何获取软件包?

    对于一个运维人员来说,服务器的安全是重中之重,不可靠的软件包可能成为我们的安全隐患,那么我们应该到哪里去下可靠的软件包呢?

        1、软件官网

            软件的官方站点提供的软件肯定是最可靠的,可以下载源代码自行编译安装

        2、发行版本官方镜像站点

            发行版本的官方镜像站点中提供的软件包绝对是可靠的

        3、如果是RHEL系,则去EPEL

            EPEL(Extras Packages Enterprise Linux)项目是由Fedora发起的,EPEL中包含众多优秀可靠的软件,点击进入EPEL站点

        4、搜索,pkgs.org,rpmfind.net

            http://pkgs.org 这个网站可以搜索各大发行版中的软件,非常好用,软件包也很全 

        5、国内镜像站点

            http://mirrors.aliyun.com

            http://mirrors.163.com 

            国内有许多公司都做了镜像站,稍后我们会教大家通过yum来实现将它们作为我们的软件仓库。 

四、rpm安装软件包

rpm命令用法

安装:

blob.png

升级

查询

卸载

校验

数据库重建

   五、使用yum解决依赖关系安装软件

    很多人使用rpm安装软件包时、需要解决很多依赖关系,rpm包管理器既然可以获取软件之间的依赖关系为什么不能自动解决呢?我们这里就需要使用YUM让软件安装时自动解决依赖关系。

    什么是YUM?

        YUM(Yellowdog Update Modiflier),yum客户端通过文件服务器获取软件仓库的元数据来分析软件仓库有哪些软件、相互的依赖关系。

    

yum定义仓库

yum相关命令用法

简单的构建一个本地仓库

blob.png

尝试安装软件

blob.png

repo文件中可用的变量

使用createrepo针对指定软件生成repodata

blob.png

blob.png

   六、编译安装程序包

C源代码编译安装三步骤:

    1、./configure

          (1) 通过选项传递参数,指定启用特性、安装路径等,执行时会参考用户的指定以及Makefile.in文件生成makefile文件

          (2) 检查依赖到的外部环境

    2、make

      根据makefile文件,构建应用程序

    3、make install

      执行对应脚本,将对应文件复制到相应路径中

        编译安装前的建议先看INSTALL和REDME文件,各软件编译安装方式可能不同

获取源码包:

    1、官方站点

        apache.org

        mariadb.org

        …

    2、代码托管

        sourceForge

        Github.com

        code.google.com

        …

编译C源代码程序:

    前提:提供开发工具及开发环境

        开发工具:make、gcc等

        开发环境:标准库、头文件等

    在RHEL系的系统中可以通过包组的形式直接安装开发环境和开发工具

        CentOS 6:yum groupinstall -y "Development Tools" "Server Paltform Development "

我们现在编译安装httpd-2.2,可以通过http://httpd.apache.org 下载源码包

验证httpd服务

blob.png

总结

    这篇文章思考的地方不多,大部分只是叙述过程,让大家知道如何使用各种姿势安装软件

原创文章,作者:Net18-AnyISalIn,如若转载,请注明出处:/12414

评论列表(1条)

  • stanley
    stanley 2016-03-09 10:09

    赞! 好文,为写标签的细节点赞,为精心打造的内容占赞。文章置顶。

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达娱乐主管QQ  万达娱乐注册  万达娱乐直属  guoqibee.com  万达主管QQ  万达娱乐招商QQ  华宇招商  万达娱乐直属QQ  万达开户  万达娱乐注册