软件管理
源码—编译—可执行程序
编译
将程序的源码转换成硬件所支持的汇编语言
每个硬件厂家都有自己的一套汇编语言
可夸平台
在A主机上开发并且可正常运行的程序在B主机也可以允许
源码可夸平台
库
动态库
位置在:/lib /lib64
程序员在开发程序的时候,程序源码中只有程序的基本功能,而所有的库文件都是以独立文件方式存放的
缺点:
移植过程麻烦
优点:
移植方便
静态库
程序员在开发程序的时候,将程序依赖的库文件都集成在程序源码中
缺点:
程序源代码体积会较大
优点:
移植方便
安装源码程序的流程
1. 预编译
处理源码中所有以#开头的行
删除各种注释行
添加行号
编译
使用编译工具,gcc(Gnu C Complier)
按照汇编语言语法格式进行编译,生成汇编语言汇编
将汇编语言转换成机器语言创建连接
指向所依赖的库文件的位置
面试题:A主机上开发的软件a.soft,在B主机是否可以运行?(centos6)
不一定
1)两个主机的cpu架构不确定是否相同(32位 64位)
2)要考虑a.soft的库是动态库还是静态库,如果是基于动态库开发的,那么在B主机上就必须有其依赖的库文件
面试题:A(6.5 64位 intel cpu)主机上开发的软件a.soft,在B(6.5 64位 amd cpu)主机是否可以运行?
只要有依赖的库文件,就可以正常运行,因为intel 和 amd 用的都是X86架构的cpu
程序的构成
程序的命令
由环境变量 PATH
通常放在:/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
如果程序的路径不在以上位置,那么有两种解决方式
方式1:在执行这个程序的命令的时候,用绝对路径
方式2:修改环境变量
# vim /etc/profile.d/soft1.sh
PAHT=$PATH:/home/soft1/bin
export PATH
# source /etc/profile
头文件
/usr/include
如果程序的头文件不在以上位置,那么有两种解决方式
方式1:将这个程序的头文件复制到这个目录下
方式2:将这个程序存放头文件的目录软连接到/usr/include下,并取一个方便记忆的名字
# ln -sv /home/soft1/include /usr/include/soft1
库文件
默认位置:/lib /lib64 /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64
如果程序的库文件不在以上位置,解决方式是修改系统查找库文件的路径,如下
# vim /etc/ld.so.conf.d/soft1.conf
/home/soft1/lib
帮助文档
/usr/share/man/man1 2 3 4 5 6 7 8
如果程序的帮助文件不在以上位置,解决方式有两种
方式1:将该程序的帮助文件复制到系统帮助文件所在位置下
方式2:修改man的配置文件(/etc/man.config)
配置文件
特点:主+子配置文件
主配置文件:soft1.conf
子配置文件目录:soft1.conf.d
子配置文件:soft1.conf.d/*