学习日志---linuxの 程序包管理综述

Linux的程序包管理:

应用程序:

GPL:源码,

POSIX: Portable Operatin System

API: 兼容,意味开发库兼容,因此,源代码可跨平台

ABI:兼容,编译后的程序可以跨平台;

不同的平台可执行的二进制程序格式不同,因此编译后的相同程序在不同平台不一定都能运行

库:可执行程序,本身不能作为程序执行入口,但可以被调用

编译好的二进制格式

程序:预编译、编译、汇编、链接

静态:

动态链接:dll(windows),

在linux下,so(shared object),在lib和usr目录下

编译:源代码-->cpu指令集

操作系统的版本,例如操作系统支持x86的cpu,则操作系统只能安装在该cpu的机器上,需要符合硬件平台的要求;

例子:

有A和B两台机器,都是centos6,并且glibc都相同,在A机器上编译的程序,在B上也不一定跑的起来,因为如果A和B的cpu不同,则两者的cpu指令集也不会相同,编译后的程序也不同,即二进制执行程序的格式不同。编译就是把源程序翻译为cpu指令集,因此cpu的硬件平台不同,则编译后的程序无法跨平台!!

OS, CPU

注意:1、OS平台:应用程序必须为特定平台所支持的版本,调用的库相同才可跨。

2、硬件平台:应用程序必须为特定的CPU所支持,cpu架构相同才可跨。

例子:

CentOS 6.5 (amd 64bits) 64bits, 二进制程序

CentOS 6.5 (intel 64bits) 64bits,

以上两个都是X86架构的cpu,因此指令集相同,编译后的程序可以跨平台

因此在安装应用程序时,需要考虑os是否兼容,底层架构是否兼容

软件包的组成部分:

二进制程序一般位置:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

假如:安装nginx, /usr/local/nginx/

库:/lib, /usr/lib, /lib64, /usr/lib64, /usr/local/lib, /usr/local/lib64

假如:安装nginx, /usr/local/nginx/

ldd指令只会找前四个库

/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

配置文件:/etc

帮助文件:

man文件, info文件, README, INSTALL, ChangeLog

man COMMAND

到某路径下查找与命令名同名的通常以.gz结尾的压缩文件的名字

/usr/share/man/

man指令只会找上面这个路径下的文件

例如如果man一个/usr/local/nginx/下的指令,不能直接man到,可以修改man的manpath或者指定man访问的路径

总结:安装nginx程序在该路径下:

/usr/local/nginx/,那么下面的这些都在该路径下,内核是无法自动识别的

二进制程序:bin、sbin

库:lib

头文件:include

帮助文件:man

配置文件:etc/conf

函数名(参数), 头文件

ldd命令:

查看应用所依赖的共享库

ldd [options] FILE...

[[email protected] ~]# ldd /bin/vi

linux-gate.so.1 =>  (0x00a03000)

libm.so.6 => /lib/libm.so.6 (0x00f6c000)

libselinux.so.1 => /lib/libselinux.so.1 (0x00a96000)

#include stdio.h  头文件,里面存放了函数的名字,参数等,一般在include目录下有该类文件

应用程序管理器:

1、数据库:

软件名和版本

安装生成的各文件路径及校验码

依赖关系

提供功能性说明

2、提供程序组成格式:

文件清单

安装卸载时运行的脚本

应用程序:源代码  name-major.minor.release.tar.gz

依赖关系:X --> Y

循环依赖:

版本依赖:

程序管理工具:

Debian: .deb, dpkg

RedHat: .rpm, rpm (RedHat Package Manager)

rpm: RPM is Package Manager

包管理器的基本功能:

打包

安装

查询

升级

卸载

校验

数据库管理

依赖关系:X, Y, M,N, l,i,k

前端管理器:解决了依赖关系

apt-get

yum

总结:应用的安装方式

使用包管理器:便捷、易用

包管理器的前端工具:yum

源代码编译:源代码使用gcc编译后使用

简单打包的二进制格式:这种方式tar打包的,用tar解压后就可以使用

时间: 2024-08-02 17:05:52

学习日志---linuxの 程序包管理综述的相关文章

Linux学习37 Linux程序包管理介绍及应用

一.Linux程序包管理 1.API:Application Program Interface 2.ABI:Application Binary Interface :linux与unix的ABI是相同的但是与windows是不一样的 Unix-like ELF Windows: exe,msi 库级别的虚拟化: Linux:WinE模拟windows的运行环境 Windows:Cywin模拟linux的运行环境 3.系统级开发: C/C++ 4.应用级开发 java/Python/perl/

Linux程序包管理

Linux程序包管理 RPM包基础 RPM YUM 编译安装 概述 Linux上的程序包管理,是我们的必备技能,本文将从三个视角:rpm.yum.源码编译来浅析Linux的程序包管理.首先,我们来看下本文的主要内容: - 程序包的命名- RPM: 程序包管理器    安装.卸载.升级.查询.校验.数据库维护      - YUM: RPM的前端程序    yum的配置文件     yum的常规操作:升级.检查.卸载.查看.包组管理     使用光盘当作本地yum仓库     yum的命令行选项及

Linux程序包管理工具简介

一.Linux程序包管理器-RPM RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件.Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装.RPM 有五种操作模式,分别为:安装.卸载.升级.查询和验证. 1.RPM 安装操作 命令: rpm -i 需要安装的包文件名 例: rpm -i example.rpm 安装 example.rpm 包 rpm -iv example.rpm 安装

linux程序包管理rpm,yum和编译安装以及冒泡排序练习

linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码--> 预处理--> 编译--> 汇编--> 链接 静态编译: 共享编译:.so ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WIN

Linux程序包管理之rpm包管理

Linux程序包管理 软件包管理 功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序包的安装.升级.卸载.查询.校验.数据库维护. API:Application ProgramInterface应用程序接口: ABI:Application BinaryInterface应用二进制接口: Unix-like和linux在ABI层次是相同的 linux程序包:ELF格式: 但是与Windows相差甚远 windows程序包:exe,msi格式: API层次兼容不一定A

Linux程序包管理rpm与yum

Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个ls命令就是一个二进制程序. 库文件:程序的公用功能模块,比如A程序需要用一个打印机,B程序也需要一个打印机就可以公用这一个模块了.在window下库文件为.dll格式,linux下为/lib/*so格式的文件. 配置文件:通过设置配置文件来改变程序启动时的运行特征. 帮助手册:使用的帮助文档.  

Linux程序包管理及yum安装管理

Linux程序包管理: API:ApplicationProgramming Interface   应用编程接口 POSIX:Portable OS    遵循本协议的程序均可在不同系统间移植 程序编写完成后,执行所要经过的处理步骤: 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接 静态编译: 共享编译:直接调用.so共享对象实现 ABI:ApplicationBinary Interface  应用二进制接口 Windows与Linux所支持的可执行二进制

Linux程序包管理与初识磁盘

Linux 程序包管理 API:Application Binary Interface(应用程序的二进制接口) ABI:APPlication Program Inertface(应用程序的开发接口) Windows : exe,msi Windows与Linux不兼容 ELF:(Executale and Linkable Format):可执行可连接格式,linux运行格式 PE:(Portable  Executable)可移植可执格式Windows运行格式 库级别的虚拟化: 要想在Wi

Linux程序包管理总结

Linux程序包管理 相比于Windows系统,Linux的程序包的管理就没有那么简单了,当然在Linux系统中也有像Windows系统中EXE或者MSI安装包一样的安装包文件,可以直接实现进行程序包安装,但即是这样的程序包的安装也要比Windows复杂多了,当然,大家不要被我这两句话给唬到了,当你学过这课后,你会发现Linux的程序包管理其实也很简单的,同样你也会发现Linux的程序包管理比Windows的好玩儿多了. Linux中的程序包格式: .deb  源于debian系统的安装包格式