一、程序:
1、编译过程:预编译、编译、汇编、链接。
编辑:将源代码翻译成CPU指令集。
2、API:Application Programming Interface,应用程序编程接口。
3、ABI:Application Binary Interface,应用二进制接口(二进制文件即可运行文件)。
二、软件包的组成部分:
1、二进制程序:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
通过环境变量配置。
2、库文件:供二次开发用,如目前的浏览器。
/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
库文件配置文件:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf
头文件/etc/include
#ldd命令:用来查看应用程序所依赖的共享库。
如:#ldd `which cat`
3、配置文件:/etc
4、帮助文件:/usr/share/man
注意:如果将程序安装到特定指定的路径下如:/usr/local/nginx,
那么,二进制程序、库文件、配置文件、帮助文件的路径分别为:
二进制程序:/usr/local/nginx/bin,/usr/local/nginx/sbin
库:/usr/local/nginx/lib,/usr/local/nginx/lib64
头文件:/usr/local/nginx/include
配置文件:/usr/local/nginx/etc或者/usr/local/nginx/conf
帮助文件:/usr/local/nginx/man
三、man命令自身的配置文件:/etc/man.config
四、rpm包:
1、rpm包的名称格式:
源程序:name-version.tar.{gz|bz2|xz}
version:major.minor.release
rpm包:name-version-release.arch.rpm
release:为发行商的发型号
arch:使用的平台32位/64位
x86_64,i386,i586,i686,noarch
如:bash-4.3.3-2.el6.x86_64.rpm
el6:redhad enterprise linux 6
如:bash-4.3.3-2.centos5.x86_64.rpm
centos5:CenterOS5
2、包管理器的基本功能:
打包
安装
查询
升级
卸载
校验
数据库管理
3、来源合法性验证:
源程序:通过md5或sha1校验码验证。
rpm包:发行商提供的合法性是可信的。
验证包完整性:校验码
验证来源合法:公钥
4、获取rpm包的路径:
A、发行商的光盘或者站点
以CentOS为例:
http://mirrors.163.com
http://mirrors.sohu.com
B、http://rpmfind.net
C、http://rpm.pbone.net
5、rpm包的安装:
A、#rpm -ivh ***.rpm
-i:install
-v:安装信息
-h:进度条,以#显示
B:#rpm -ivh --test ***.rpm
--test:仅测试,不真正执行安装过程。
C、安装时,怎么解决依赖关系?
忽略依赖关系:--nodeps(注意可能会安装完毕,不能使用)
#rpm -ivh --nodeps ***.rpm
尝试将依赖的都安装上,这个比较繁琐。
D、重新安装:#rpm -ivh --replacepkgs ***.rpm
6、rpm包的卸载:
A、#rpm -e,--erase package_name
B、如果卸载时,被其他程序所依赖的解决办法:
把所依赖者一同卸载;
忽略依赖关系;--nodeps
7、rpm包的查询:
A、#rpm -q(query) package_name:查询某包是否安装。
B、查询所有已安装的包:
#rpm -qa
-a:all
C、查询包的描述信息:
#rpm -qi package_name
-i:info
如:#rpm -qi bash
D、查询包安装后生成的文件列表:
#rpm -ql package_name
-l:list
如:#rpm -ql bash
E、查询包安装后生成的配置文件:
#rpm -qc package_name
-c:conf
F、查询某文件是哪个安装包生成的:
#rpm -qf /path/to/somefile
G:查询包相关的脚本:
#rpm -q --scripts package_name
脚本有四类:
安装前脚本:preinstall
安装后脚本:postinstall
卸载前脚本:preuninstall
卸载后脚本:postuninstall
H:查询包安装后生成的帮助文档:
#rpm -qd package_name
-d:documents
I、-p选项:查询尚未安装的rpm包文件的相关信息,常用的如下:
查询安装后生成的文件列表:
#rpm -qpl /path/to/package_file
查询其简单描述信息:
#rpm -qpi /path/to/package_file
8、rpm包升级:
#rpm -U :升级或安装
#rpm -F:升级
格式:#rpm {-Uvh|-Fvh } /path/to/package_file
--nodeps:忽略依赖
--force:强行安装
注意:不要对内核进行升级操作。
多版本内核可并存,因此对内核建议执行安装操作。
9、rpm包校验:检查包安装后生成的文件是否被修改过.
#rpm -V package_name
-V:verify
如:rpm -V zsh,没有消息说明没改变。
10、rpm包检验来源合法性和软件包完整性。
A、包完整性:通常单向加密机制(md5|sha1)
B、来源合法性:公钥加密机制(RSA)
#rpm -K /path/to/package_file
注意执行前,要先导入制作者的公钥,CentOS发行版的公钥在iso文件中
导入命令:#rpm --import /path/to/gpg-key-file
如:
#rpm --import RPM-GPG-KEY-CentOS-6
#rpm -K zsh-4.3.10-7.el6.x86_64.rpm
10、rpm包数据库重建:
A、数据库位置:/var/lib/rpm
B、#rpm --initdb:初始化,如果事先不存在,则新建;如果存在,则不覆盖。
#rpm --rebuilddb:重建,直接重建数据库,覆盖原有库。
综述:用rpm包安装应用程序,最大的问题就是依赖关系。