【程序包管理】篇章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) 自动动手,丰衣足食

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

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

posted @ 2018-06-06 19:05  Panda-Li  阅读(329)  评论(0编辑  收藏  举报