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






