zoukankan      html  css  js  c++  java
  • 【Linux】【Services】【Package】Basic

    Linux程序包管理
         
        概述
            API:Application Program Interface
            ABI:Application Binary Interface
                Unix-like,
                    ELF
                Windows
                    exe, msi
                         
                库级别的虚拟化:
                    Linux: WinE
                    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)
                     
            C/C++程序格式:
                源代码:文本格式的程序代码;
                    编译开发环境:编译器、头文件、开发库
                二进制格式:文本格式的程序代码 --> 编译器 --> 二进制格式(二进制程序、库文件、配置文件、帮助文件)
                 
            java/python程序格式:
                源代码:编译成能够在其虚拟机(jvm/pvm)运行的格式;
                    开发环境:编译器、开发库
                二进制
                 
            项目构建工具:
                c/c++: make
                java: maven
                 
        程序包管理器:
            源代码  --> 目标二进制格式(二进制程序、库文件、配置文件、帮助文件) --> 组织成为一个或有限几个“包”文件;
                安装、升级、卸载、查询、校验
                 
            程序包管理器:
                debian:dpt, dpkg, ".deb"
                redhat:redhat package manager, rpm, ".rpm"; rpm is package manager;
                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
                        archetecture:i386, x64(amd64), ppc, noarch
                         
                    redis-3.0.2.targz --> redis-3.0.2-1.centos7.x64.rpm
                 
                拆包:主包和支包
                    主包: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.com,
                http://mirrors.163.com
            (2) 项目的官方站点
            (3) 第三方组织:
                (a) EPEL
                (b) 搜索引擎
                    http://pkgs.org
                    http://rpmfind.net
                    http://rpm.pbone.net
            (4) 自动动手,丰衣足食
             
            建议:检查其合法性
                来源合法性;
                程序包的完整性
  • 相关阅读:
    dom4j操作xml
    iOS 导航栏的那些事儿
    iOS--定时器(几种定时器的对比)
    iOS--优秀博客记录
    iOS--基础--文件操作
    iOS--动画--GitHub前50名的Objective-C动画相关库
    iOS--资料--类目Category收集
    iOS--资料--开源收集
    iOS--资料--开源项目及库
    ios--控件--自定义封装一个控件
  • 原文地址:https://www.cnblogs.com/demonzk/p/6296977.html
Copyright © 2011-2022 走看看