zoukankan      html  css  js  c++  java
  • 【程序包管理】篇章1:程序包管理的基础知识(了解,了解了之后会让我们对程序包的安装很有帮助)

    API:Application Program Interface

    ABI:Application Binary Interface
      Unix-like,
        ELF
      Windows
        exe, msi

    同一个包可以在Linux平台和Windows平台安装吗? 【能】
    库级别的虚拟化:【能够实现同一个包在Linux和Windows系统上面运行】
      Linux平台虚拟化工具: WinE 【wine虚拟化,能够实现在Windows上的软件可以在Linux上面运行】
      Windows平台虚拟化: Cywin

    系统级开发的软件包一般可以直接安装在系统上:
      C/C++:httpd, vsftpd, nginx
      go
    应用级开发就不行:
      java/Python/perl/ruby/php:
      java: hadoop, hbase, (jvm)
      Python:openstack, (pvm)
      perl: (perl)
      ruby: (ruby)
      php: (php)

    一个程序包里面含有哪些东西?

     二进制文件,库文件,配置文件,帮助文档   【前两个一般为二进制文件,后两个一般为普通文件】

    不同系统所使用的程序包管理器不同:
     debian:dpt, dpkg, ".deb"
     redhat:redhat package manager, rpm, ".rpm"; rpm is package manager;
     S.u.S.E:rpm, ".rpm",
     Gentoo:ports
     ArchLinux:
    程序包的命名格式:
     1、程序包源代码的命名格式:

       name-VERSION.tar.gz
         VERSION:major.minor.release
     2、rpm包命名格式:
       name-VERSION-release.arch.rpm
        VERSION:major.minor.release
        release.arch:rpm包的发行号
        release.os: 2.el7.i386.rpm

        常见的arch:x86: i386,i486, i586, i686
        x86_64: x64, x86_64, amd64
        powerpc: ppc
        跟平台无关:noarch

      举例:

        源代码的命名格式:redis-3.0.2.tar.gz

        rpm包的命名格式:redis-3.0.2-1.centos7.x64.rpm

    拆包:主包和支包【对于一个rpm包,里面含有很多文件,以为着有很多功能;但有的时候我们只是用少数功能,有些功能使用不到及不想用怎么办。结果就产生了拆包】
      主包:name-VERSION-release.arch.rpm
      支包:name-function-VERSION-release.arch.rpm
      function:devel, utils, libs, ...

    怎么解决包与包之间的依赖关系--->使用前端工具来实现:

      在很多时候,我们安装包的时候,会提示必须先安装其他的依赖包,所以就产生了一些工具来解决包之间的依赖关系。主流的工具有如下几种:
     自动解决依赖关系的(前端)工具;
       yum:rhel系列系统上rpm包管理器的前端工具
       apt-get (apt-cache):deb包管理器的前端工具;
       zypper:suse的rpm管理器前端工具;
       dnf:Fedora 22+系统上rpm包管理器的前端工具;

    查看二进制程序所依赖的库文件:ldd 命令
      ldd /PATH/TO/BINAEY_FILE 如:ldd /bin/ls

    管理及查看本机装载的库文件:ldconfig 命令
      idconfig :不加参数,重新读取配置文件并重新装载来生成缓存 【缓存的配置文件为:/etc/id.so.conf, /etc/id.so.conf.d/*.conf 】
      idconfig -p :显示本机已经缓存的所有可用的库文件名及文件路径映射关系

    程序包管理器:
      功能:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装、升级、卸载、查询和校验等管理操作;

    每一个程序包在程序包管理器里面里面包含有以下几部分

      1、程序包的组成清单(每个程序包都单独实现,即每个程序包独有);
       文件清单
       安装或卸载时运行的脚本
      2、数据库(公共)
       程序包的名称和版本;
       依赖关系;
       功能说明;
       安装生成的各文件的文件路径及校验码信息;
       等等等

    管理程序包的方式:
      使用包管理器:rpm
      使用前端工具:yum, dnf


    获取程序包的途径:
      (1) 系统发行版的光盘或官方的文件服务器(或镜像站点):
       http://mirrors.aliyun.com,
       http://mirrors.sohu.com,
       http://mirrors.163.com
      (2) 项目的官方站点
      (3) 第三方组织:
       (a) EPEL [Fedora组织的]
       (b) 搜索引擎
        http://pkgs.org  【刚出来不久的网站,可靠性不知道】
        http://rpmfind.net
        http://rpm.pbone.net
      (4) 自动动手,丰衣足食

    只要是从网络上下载的程序包,强烈建议检查其合法性,主要检查以下两个方面:
      来源合法性;
      程序包的完整性;

    对安装、升级、卸载、查询、校验等操作,请看下一篇文章。

  • 相关阅读:
    控制台程序添加滚轮滑动支持
    【SpringCloud】Eureka注册中心(二)
    【SpringCloud】快速入门(一)
    【SpringBoot】SpringBoot 之RestTemplate的使用
    【Application】Docker 安装 Redis(七)
    【Application】Docker 安装 MySQL(六)
    【Application】Docker DockerFile解析(五)
    【Application】Docker 容器数据卷(四)
    【Application】Docker 常用命令(三)
    【Application】Docker 基本使用(二)
  • 原文地址:https://www.cnblogs.com/l75790/p/9146808.html
Copyright © 2011-2022 走看看