linux和unix中tarball软件基础知识及升级
[table=98%]
[size=14px]一、软件的由来
GNU等
系统功能模块化
1.为什么要安装软件
机器上没有
2.为什么要更新软件
该软件有新的功能
该软件有安全问题,需要更新
该软件性能有问题
3.安装方法
编译源码进行安装(侦测、编译、安装、配制、验证)tarball方式
通过编译好的二进制文件进行安装升级(一般是发行商操作,所谓的rpm包)rpm、yum方式
4.安装思路
第一种,备份原版本软件,安装新软件,替换文件或者链接文件,系统运行新软件。
第二种,删除旧软件,直接安装新软件。最好做好备份,缩短回退时间。
通常,linux发行商会把软件放到/usr目录下,用户自行安装的文件放在/usr/local/下,为了便于系统管理员的管理。
二、内核、外部软件、调用
为了升级某软件,需要升级内核?由于各种内核自带的动态函数库不同,升级内核可能导致原本正常使用的软件不能使用。
三、源代码、编译、可执行文件
源码、configure、make、make clean、make install
1.源代码:由开发人员编写的具有特定功能的一段或者超大型的代码文件和代码集合,人类可读懂。
2.编译:人类识别源码,机器识别二进制,通过编译(翻译),可把文本文件转换为二进制文件。linux中一般通过文件编辑器编写C语言代码(常见为vi),通过gcc编译器
3.可执行文件:机器可识别并可以执行的进进制文件,bash shell不属于,只是一组命令的组合和具有判断功能和自动化的ASCII码文件。
4.make 编译。通过makefile定制内容编译源代码为若干个二进制文件。
make clean 清除上次编译的文件,重新编译。
5.makefile 由configure侦测程序主生的,相当于make程序的配制文件。
6.configure和config 侦测程序。侦测系统核心版本、合适的编译器、软件依赖关系、定制软件附加功能(如pam、ssl、zlib)等。
7.不同的核心 开发者不是针对linux做开发,而是针对unix-like。不同核心,软件默认安装不同,函数库的文件不同和放置的位置不同、软件对其是否支持等。
8.tarball软件管理 源码集通过tar打包、gzip压缩生成一个文件,体积小,易于软件版本区分和管理。常见为.tar.gz格式,目前bzip2和xz压缩率较高,逐渐取代gzip压缩方案。
通常解压完一个软件安装tarball后,会有以下文件:
源代码;
侦测程序 configure或者config;
简易说明和安装说明 INSTALL或README(通常参考这两个文件后,安装软件是很容易的)
四、函数库()
1.分类:静态函数库和动态函数库
静态函数库 由其它软件调用并确定其固定位置的函数库,此方法经编译后,生成的可执行文件偏大。以.a结尾。
动态函数库 动态提供给其它程序使用,最大的好处是,此库发生升级改变,不需要依赖软件的重新编译。此方法常用。以.so结尾。由于频繁调用,出现性能问题,所以有缓存这一说。
2.函数库的操作
ldconfig 扫描配置目录并刷新动态库
ldconfig -v |grep xxx 显示缓存中指定的函数库
/etc/ld.so.conf 配制文件
/etc/ld.so.cache 缓存文件
ldconfig -p 列出所有缓存中函数库数据内容
ldd 程序的动态函数库解析
ldd /目录/程序名 显示这个程序的函数库信息
ldd -v /目录/函数名 显示与此函数的依赖关系包名
五、安装过程
1.检查系统环境,包括系统内核版本、32位或64位、硬盘空间、软件改变对生产业务的影响和回退、源和目标软件版本、依赖软件是否安装和现有版本;
原程序含有的动态函数库有哪些ldd;
2.阅读INSTALL和README,并编写升级步骤;
3.备份各个软件并记录,回退时使用; 注意软件的各个安装位置并做记录。
4.按照步骤实施升级;记录crt日志,以便出现问题时排查;
5.验证依赖软件和主软件的成功性;
6.软件安装成功后,测试软件功能。
【注】如果安装中出现种种问题,回退不回去的时候,可以挂载系统镜像或者高一点的版本,强制升级回复所有软件
rpm -Fvh *.rpm --nodeps --force 请慎用!
五、zlib,PAM,openssl,openssh,ntp,samba等软件结构和升级
六、不同操作系统的软件升级
linux(rhel、redhat、suse等)
unix(hpux、aix)