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

相关推荐

  • 用户和组——Linux基本命令(10)

    1.     用户和组的配置文件 Linux用户和组的主要配置文件: /etc/passwd:用户及其属性信息(名称、UID、主组ID等) /etc/group:组及其属性信息 /etc/shadow:用户密码及其相关属性 /etc/gshadow:组密码及其相关属性   2. /etc/passwd 在Li…

    2017-07-22
  • CentOS7下重置root密码

    CentOS7下重置root密码          Linux系统、UNIX系统和其他类UNIX系统中,存在唯一的超级用户root。普通用户密码忘掉可以用root用户重置,但是一旦root密码忘掉,事情就复杂起来了。本文主要介绍root密码忘掉之后,重置密码的过程。   &nbs…

    Linux干货 2017-03-30
  • LVM逻辑卷管理器详解

    一、LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。…

    Linux干货 2016-09-05
  • 马哥教育网络第21期-第十一周课程练习

    1、详细描述一次加密通讯的过程,结合图示最佳。 A和B进行通信 A发送数据:A使用单向加密算法获得数据的特征码,把特征码附加到数据的尾部,A使用对称加密算法对数据进行加密。A使用B发过来的公钥对A的对称加 密算法加密密钥进行加密,附加到数据后面。 B接收方:B使用自己的私钥对数据进行解密。得到A的对称密钥,对对称密钥解密获得数据的特征码,B使用单向加密算法获…

    Linux干货 2016-12-26
  • 网络管理的相关命令

    今天要说的是有关网络的一些相关内容,主要介绍的有以下几点:网络的服务:Centos6/7中的常用命令,如何手动配置网络,路由表的相关内容,关于Bond(仅主机模式)网络接口的配置以及Bridge(桥接)的网络接口配置。 首先要说的是网络的服务: 1,Centos6/7的常用网络的命令: Centos6:禁用网卡:ifconfig 网卡名 down启用网卡:i…

    2017-09-07
  • 自制一个小型Linux(附带网络功能)

      我们这次讲述一下Linux启动的启动流程以及制作一个附带网络功能的mini linux 一、叙述 二、为什么要制作这么一个小型的系统 三、怎么制作 1、制作步骤 2、将虚拟机添加网络功能 一、叙述   在制作一个小型的Linux之前,首先你得明白Linux系统的启动过程,我们用一张图来进行说明  二、为什…

    Linux干货 2016-12-21