首页 > 代码库 > 软件管理

软件管理

基本概念

1.程序:可执行的二进制文件,由指令和数据组成

2.链接库:二进制文件,不可执行(无执行入口),可被程序调用。

3.脚本:可执行文本文件,执行时由解释器转义成CPU可以执行的机器码。

4.编译:高级编程语言编写的代码,经过编译过程转译成CPU可识别的机器码(0、1)

5.编译过程:

   1)检查程序语法

   2)把程序代码转换成机器码

   3)程序代码中若有使用其他链接库的机器码,则将其链接。

   4)产生OS的相关信息;

   5)存储为可执行文件

6.链接:将存储在链接库中的机器码存储到程序中

 1)静态链接:执行期间,将机器码复制到执行文件中。

  优点:可独立使用;缺点:执行时需较多的内存空间、文件变大。

 2)动态链接:只存储需要链接库的名称、版本及函数的符号等信息。执行时,根据链接信息,加载所需的链接库及机器码。

      优点:体积小、占用内存小;缺点:无法独立使用,当程序移动到另一主机时,需保证另一主机有相同的链接库。

备注:linux基本使用动态链接库。

7.查询链接库:ldd

#ldd /bin/ls            #当程序采用动态链接时,查询程序执行时,需用到哪些链接库。

linux-gate.so.1 => (0x003b3000)
librt.so.1 => /lib/librt.so.1 (0x00518000)

显示格式:链接库名称 => 链接库的文件名(链接库加载到到内存的地址)

8.软件的依赖性

  即软件执行时需要用到其他的组件(可能是程序、链接库或普通文件)

9.常用软件包类型

   rpm包:.rpm格式,可使用rpm工具直接安装

   源码包:gzip与bzip2压缩包,需使用源码编译安装

RPM软件包管理

    RPM是RedHat Package Manager的缩写,也即使红帽软件包工具。提供一种可升级、具有强大查询功能、

支持安全验证的通用型linux软件包管理工具。

包格式:PACKAGE-VERSION-RELEASE.TYPE.rpm

1.安装RPM包

rpm -i [-v] [-h] FILES...

    -v:显示信息信息

    -h:显示进度

    FILES:RPM文件的名称,支持URL形式:

    ftp://HOSTNAME/PATH/FILE   #FILE可使用通配

    http://HOSTNAME/PATH/FILE  #FILE不支持通配

2.升级与更新RPM包

1.升级:升级时,会自动删除旧版本,再安装新版本

 #rpm -U [-v] [-h]  FILES...

2.更新:新版本覆盖旧版本上的文件。

#rpm -F [-v] [-h] FILES...

3.卸载软件包

#rpm -e PACKAGES...

3.查询软件包

rpm -q  包名     #查看指定软件包是否已经安装

rpm -qa           #查看系统中已安装的所有软件

rpm -qi 包名    #查询已安装软件包的详细信息

rpm -ql  软件名  #查找已安装软件的安装路径与文件列表

rpm -qc 软件名   #查询已安装软件的配置文件

rpm -qf 文件名   #查询指定文件为哪个软件所安装

3.安全验证

rpm -V   PACKAGES...      #检查软件包从安装到现在,是否有被异动过。

返回值及含义:

5      MD5hash值已经改变

S     文件大小已经改变

M     文件模板已经改变,包括:权限、类型等

D  设备文件的主/次设备号改变

L  链接文件的源已经改变

U 文件拥有者已改变

G 文件拥有组已改变

T 文件最后修改时间已改变

rpm -V --all 查询所有软件包的状态

YUM

yum是改进版的RPM软件管理器,YUM可以很好的解决RPM所面临的软件包依赖关系,在安装、更新或删除软件时,

YUM会自动帮你解决依赖关系。使用YUM安装软件时至少需要一个YUM源(用于存放RPM软件包的目录),用户可以

通过HTTP、FTP或本地目录的方式访问YUM源。

1.创建YUM源

前提:创建将所有RPM包

 

软件管理