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 21:18
下一篇 2016-12-30 22:49

相关推荐

  • 网络配置

    Internet 协议特征  运行于OSI 网络层  面向无连接的协议  独立处理数据包  分层编址  尽力而为传输  无数据恢复功能     IP地址 它们可唯一标识IP 网络中的每台设备 每台主机(计算机、网络设备、外围设备)必须具有唯一的地址&…

    Linux干货 2016-09-06
  • 马哥教育网络班21期+第9周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash     #     nolog=`awk -F: '$…

    Linux干货 2016-09-19
  • bind-9.9.5编译安装

    bind-9.9.5编译安装 §·bind-9.9.5编译安装大概步骤 步骤一 :下载源码包bind-9.9.5 ; 步骤二 :按需求选择模块或功能 ./configure ;  # ./configure  –prefix=/usr/local/bind9  –sysconfdir=…

    Linux干货 2016-10-09
  • MongoDB复制集及数据分片详解

    前言 MongoDB是一个由C++语言编写的基于分布式文件存储的数据库,是当前NoSQL数据库中比较热门的一种,旨在为Web应用提供可扩展的高性能数据存储解决方案。本文介绍MongoDB复制集及数据分片。 MongoDB 简介 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,…

    Linux干货 2015-07-15
  • 实战自制Linux操作系统

    实战自制Linux操作系统 自制linux系统 步骤概述: 1、新建一个硬盘2、在该新硬盘上新建两个分区,一个当boot分区,一个当/分区3、格式化并且挂载两个分区4、安装grub至目标磁盘5、为grub提供配置文件6、复制内核文件和initrd文件7、创建目标主机根文件系统8、移植bash命令和其库文件到根文件系统9、装载模块,实现网络功能10、启动测试 …

    Linux干货 2016-09-19
  • linux基础知识:计算机的组成及其功能

    摘要:
    1. 描述计算机的组成及其功能。
    2. 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3. 描述Linux的哲学思想,按照自己的理解对其解释性描述。
    4. 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、……等命令使用,配合相应实例阐述。
    5. 如何获取帮助信息,描述man文档章节划分。
    6. 罗列发行版基础目录名称命名法则及功用规定。

    2017-12-03