首页 > 代码库 > 软件管理
软件管理
基本概念
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包
软件管理