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. JS中如何将yyyy-MM-dd HH:mm:ss格式的字符串转成Date类型

    var deadline = '2019-04-11 13:11:00';   var result = new Date(deadline.replace(/-/g, '/'));

  2. 问题 F: 背包问题

    题目描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10):如果给你一个背包它能容纳的重量为m(10<=m<=20), ...

  3. webpack 项目接入Vite的通用方案介绍(上)

    愿景 希望通过本文,能给读者提供一个存/增量项目接入Vite的点子,起抛砖引玉的作用,减少这方面能力的建设成本 在阐述过程中同时也会逐渐完善webpack-vite-serve这个工具 读者可直接fo ...

  4. 团队作业3--需求改进&系统

    需求改进&系统设计 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 这个作业的目标 需求改进&系统设计 目录 需求改进&系统设计 需求&原型改进 针对课堂 ...

  5. 使用bs4中的方法爬取星巴克数据

    import urllib.request # 请求url url = 'https://www.starbucks.com.cn/menu/' # 模拟浏览器发出请求 response = urll ...

  6. [hdu6984]Tree Planting

    构造一个01矩阵,其中格子$(i,j)$​​​​​对应于第$ik+j$​​个​​​的位置(其中$0\le i<\lceil\frac{n}{k}\rceil,0\le j<k$​​​,位置 ...

  7. java配置方法

    1.新建一个Config文件夹 2.代码 package com.shao.config; import com.shao.pojo.User; import org.springframework. ...

  8. C/C++ Qt TreeWidget 单层树形组件应用

    TreeWidget 目录树组件,该组件适用于创建和管理目录树结构,在开发中我们经常会把它当作一个升级版的ListView组件使用,因为ListView每次只能显示一列数据集,而使用TableWidg ...

  9. redis序列化和反序列化的操作-(以前咋操作我都忘记了)

    //拿到数据,redis如果有则将现在有的传进去,如果没有则获取接口 ExWritPropertyVo ExWritPropertyVo = new ExWritPropertyVo(); ExWri ...

  10. DVWA总结

    Brute Force,即暴力(破解),是指黑客利用密码字典,使用穷举法猜解出用户口令,是现在最为广泛使用的攻击手法之一,如2014年轰动全国的12306"撞库"事件,实质就是暴力 ...