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) 自动动手,丰衣足食
         
        建议:检查其合法性
            来源合法性;
            程序包的完整性

【Linux】【Services】【Package】Basic的更多相关文章

  1. 【Linux&Unix--open/close/write/read系统调用】

    个人学习整理.如有不足之处,请不吝不吝赐教. 转载请注明:@CSU-Max 系列博文:      Linux&Unix学习第一弹 -- 文件描写叙述符与权限  Linux&Unix学习 ...

  2. 【linux之设备,分区,文件系统】

    一.设备 IDE磁盘的设备文件采用/dev/hdx来命名,分区则采用/dev/hdxy来命名,其中x表示磁盘(a是第一块磁盘,b是第二块磁盘,以此类推), y代表分区的号码(由1开始,..3以此类推) ...

  3. 【linux之挂载,Raid,LVM】

    一.挂载,卸载 挂载:将新的文件系统关联至当前根文件系统卸载:将某文件系统与当前根文件系统的关联关系移除 cat /etc/mtab 存储着已经挂载的文件系统 (跟 mount 一样) mount:显 ...

  4. 【linux之进程管理,系统监控】

    一.进程管理 前台进程:一般是指占据着标准输入和/或标准输出的进程后台进程:不占据默认开启的进程都是前台进程ctrl+C 中断ctrl+z 从前台转入后台bg 后台进程编号 让其在后台运行ls -R ...

  5. 【Linux磁盘优化管理--RAID和LVM】

    在现阶段的企业环境中,为了数据的安全性及完整性必须要有一个合理的存储方案.面对着每秒可能产生超过几TB的数据,考虑到磁盘能不能实现 热冗余,及扩容,缩容.Linux给出了RAID(磁盘阵列)以及LVM ...

  6. 【Linux 内核网络协议栈源码剖析】网络栈主要结构介绍(socket、sock、sk_buff,etc)

    原文:http://blog.csdn.net/wenqian1991/article/details/46700177 通过前面的分析,可以发现,网络协议栈中的数据处理,都是基于各类结构体,所有有关 ...

  7. 【linux之链接,函数,随机数】

    一.链接 硬链接(hard link):同一个文件使用了多个别名.新建文件是已经存在的一个别名,,当原文件删除时,新建的文件仍然可以使用.硬链接和原来的文件没有什么区别,而且共享一个inode号.通过 ...

  8. 【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

    额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepal ...

  9. 5.2【Linux 内核网络协议栈源码剖析】socket 函数剖析 ☆☆☆

    深度剖析网络协议栈中的 socket 函数,可以说是把前面介绍的串联起来,将网络协议栈各层关联起来. 应用层 FTP SMTP HTTP ... 传输层 TCP UDP 网络层 IP ICMP ARP ...

  10. 【Linux下安装使用virtualenv与virtualenvwrapper】

    virtualenv virtualenv是一个可以帮助我们管理不同Python环境的绝好工具. virtualenv是一个可以在系统中建立多个不同且相互不干扰的虚拟环境. 下面的步骤将创建两个独立的 ...

随机推荐

  1. Sonar规范扫描Java代码暴露的问题

    字符串和封装类型应使用 equals()进行比较 例如java.lang.Integer使用引用等于==或!=,因为它不是比较实际值,而是比较内存中的位置. String firstName = ge ...

  2. FZU_DS_2019_SequenceList

    单选题 2-1   数组A[1..5,1..6]每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为:  A.1120      B.1125   ...

  3. SpringCloud远程服务调用

    笔记 在微服务中,若想要使用远程调用,需要引入spring-cloud-starter-openfeign(在使用注册中心的环境下) <dependency> <groupId> ...

  4. RocketMQ源码详解 | Broker篇 · 其四:事务消息、批量消息、延迟消息

    概述 在上文中,我们讨论了消费者对于消息拉取的实现,对于 RocketMQ 这个黑盒的心脏部分,我们顺着消息的发送流程已经将其剖析了大半部分.本章我们不妨乘胜追击,接着讨论各种不同的消息的原理与实现. ...

  5. [cf1305G]Kuroni and Antihype

    对整个过程构造一张有向图,其中$(x,y)\in E$当且仅当$x$把$y$加入,且边权为$a_{x}$ 显然这是一棵外向树森林,并再做如下两个构造: 1.新建一个点$a_{0}=0$,将其向所有入度 ...

  6. 【Tool】JDK8 安装

    JDK8 2019-07-26  14:05:21  by冲冲 1. 下载 通常前往官网 https://www.oracle.com/technetwork/java/javase/download ...

  7. idea反编译失败 /* compiled code */的解决方法

    最近在研究源码,但是我的idea有点奇怪,有的文件可以反编译,但有的文件反编译后方法内容是 /* compiled code */,查了下说是反编译失败了,都说是插件的原因. 然后我看了下idea的插 ...

  8. 力扣 - 剑指 Offer 10- I. 斐波那契数列

    题目 剑指 Offer 10- I. 斐波那契数列 思路1(递归 / 自顶向下) 这题是很常见的一道入门递归题,可以采用自顶向下的递归方法,比如我们要求第n个位置的值,根据斐波那契数列的定义fib(n ...

  9. git新手配置(windows环境)

    windows环境,初步了解git是个什么东西,使用过svn相关软件最佳,否则可以先补一下git的相关概念和用处,相关教程:https://www.liaoxuefeng.com/wiki/89604 ...

  10. 目前国内UI设计师的发展现状如何?

    在分析这个问题之前,我们先来说说如何优秀的UI设计师所需要具备的素质是什么,只有做到了以下几点,才有资格在这个行业生存下去的能力,也才有机会展望行业的未来前景. 一位合格的UI设计师必须做到以下3点: ...