linux程序包管理

Linux程序包管理

       API:Application Program Interface

       ABI:Application Binary Interface

          Unix-like,

             ELF

          Windows

                exe,msl

         库级别的虚拟化;

              Linux:WinE

              Windows:Cywin

  系统级开发:

      C/C++: http, vsftpd,nginx

         go

  应用级开发:

      java/Python/perl/ruby/php:

     java:hadoop,hbase,(jvm)

          Python:openstack,(pvm)

          perl:(perl)

          ruby:(ruby)

            php:(php)

   程序格式:

       源代码:文本格式的程序代码:

       编译开发环境:编译器,头文件,开发库

       二进制格式:文本格式的程序代码–>编译器–>二进制格式(二进制程序,库文件、配置文件、帮助文件)

  java/python程序格式:

       源代码:编译成能够在其虚拟机(jvm/pvm)运行的格式;

       开发环境:编译器、开发库

       二进制

 项目构建工具:

     c/c++:make

     java:maven

 程序报管理器:

     源代码–>目标二进制格式–>组织成为一个或有限几个”包“文件;

         安装、升级、卸载、查询、校验

      程序包管理器:

          debian:dpt, dpkg, ".deb"

          redhat: redhat package manager简称rpm, ”.rpm"

          S.u.S.E:rpm, ".rpm"

          Gentoo: ports

          Archlinux:

      源代码:name-VERSION.tar,gz

        VERSION: major.minor.release

     rpm包名格式:

          name-VERSION-release.arch.rpm

          VERSION: major.minor.release

          release.arch: rpm报的发行号

          release.os:  2.el7.i386.rpm

          rchetecture: i386,x64(amd64),ppc,noarch

          redis-3.0-1.centos7.x64.rpm<–redis-3.0.2.targz

     拆包:主包和支包

          主包:name-VERSION-release.arch.rpm

          支包:name-function-VERSION-release.arch.rpm

          function:devel,utils,libs….

          依赖关系:

              x, y, z

              x–>y,z

              y–>A,B,C

              C–>y

     前端工具:自动解决依赖关系;

          yum:rhel系列系统上rpm包管理器的前端工具;

          apt-get (apt-cache):deb包管理的前端工具;

          zypper: suse的rpm管理器前端工具;

          dnf: Fedora 22+系统上rpm包管理器的前端工具;

     程序包理器:

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

         1、程序包的组成清单(每个程序报都单独实现);

           文件清单

           安装和卸载是运行的脚本

        2、数据库(公共)

           程序报的名称和版本;

           依赖关系;

           功能说明;

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

           等等

           /var/lib/rpm/

    获取程序报的途径:

       (1)系统发行版的光盘或官方的文件服务器(或镜像站点):

            http://mirrors.aliyun.com

           http://mirrors.sohu.om;

           http://mirrors.163.com

       (2)项目的官方站点

       (3)第三方组织:

            (a)EPEL

            (b)搜索引擎

               http://pkgs.org

               http://rpmfind.net

               http://rpm.pbone.net

      (4)自动动手,丰衣足食

         建议:检查其合法性

         来源合法性;

         程序包的完整性;

     CentOS系统删rpm命令管理程序包:

        安装,升级,卸载,查询和校验,数据库维护

        rpm命令:rpm [OPTIONS] [PACHAGE-]

        安装:-i.–freshen

        升级:-u,–update,-F,–freshen

        卸载:-e, –erase

        查询:-q'–query

        校验:-V,–verify

        数据库维护:–builddb, –initdb

        安装:rpm{-i |–install-options] PACKAGE-FILE…

             rpm

             GENERAL OPTIONS:

             -v: verbose,详细信息

             -vv:更详细的输出

             [install-options]:

             -h: hash marks输出进度条;每个#表示2%的进度;

            –test: 测试安装,检查并报告依赖关系及冲突消息等;

            –replacepkgs: 重新安装

       注意:rpm可用自带脚本:

             四类:

          preinstall:安装过程开始之前运行的脚本,%pre

          postinstall:安装过程完成之后运行的脚本,%post

          preuninstall:卸载过程真正开始执行之前运行的脚本%postun,–nopostun]

          –nosignature: 不检查包签名信息,不检查来源合法性;

          –nodigest: 不检查包完整信息;

原创文章,作者:shadow,如若转载,请注明出处:http://www.178linux.com/65391

(0)
shadowshadow
上一篇 2016-12-30
下一篇 2016-12-30

相关推荐

  • 访问控制列表ACL使用说明

    一、什么是ACL ACL(Access Control List)可灵活地,更细粒度地定义访问文件或目录的权限。 二、为什么使用ACL Linux上文件系统的文件系统权限管理的对象分为三类:owner,group,other。这种分类非常简单,如果我希望有一个用户拥有不同于这三类对象的权限,或者再定义一个用户组的权限,传统的权限管理就不能实现,而ACL可以很…

    Linux干货 2016-08-08
  • 第一周作业

    1. 描述计算机的组成及其功能 CPU:CPU包括运算器和控制器,并采用大规模集成电路工艺制成的芯片,又称微处理器芯片。 运算器又称算术逻辑单元(Arithmetic Logic Unit简称ALU)。它是计算机对数据进行加工处理的部件,包括算术运算(加、减、乘、除等)和逻辑运算(与、或、非、异或、比较等)。 控制器负责从存储器中取出指令,并对指令进行译码;…

    Linux干货 2017-01-04
  • linux做路由并实现路由转发

    一、环境介绍 1.linux版本:CentOS6.8,CentOS7.2两台主机分别加载两块网卡,分别作为路由器的两个端口 2.实验在vmware虚拟机中完成 3.另有两台CentOS6.8和CentOS7.2作为两个网段的主机 4.实验图示: 二、路由1(左)和路由2(右)的设置 1.路由1配置信息 eth0网卡:    &n…

    Linux干货 2016-09-07
  • find命令用法及示例

    文件查找 locate,find可是实现在文件系统上查找符合条件的文件 实现工具:locate,find locate有几下几个特性 1、依赖于事先构建好的索引库; 2、系统自动实现;(周期性任务) 3、手动更新数据库(updatedb) /var/lib/mlocate/mlocate.db 工作特性: 查找速度快; 模糊查找; 非实时查找 lo…

    Linux干货 2016-08-18
  • 初识linux

    Linux操作系统入门 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 1991年的10月5日,Linux创…

    Linux干货 2016-06-09
  • 第四周 博客作业

    grep useradd cp

    Linux干货 2017-12-28