API (application programming interface)html
POSIX (portable OS)前端
代码打包过程:源代码-->预处理-->编译-->汇编-->连接linux
编译分为:共享编译(.so)和静态编译centos
ABI (application binary interface)缓存
系统级开发:C C++markdown
应用及开发:JAVA PHP Pythonapp
二进制应用程序的组成部分:二进制文件、库文件、配置文件、帮助文件ide
做用:提供方便快捷的程序包的安装、卸载、查询、升级、校验等管理操做。工具
Redhat的包管理器: rpm (Redhat Package Manager/RPM is Package Manager)url
源代码命名规则:包名-版本.tar.gz
RPM包命名规则:包名-版本-说明.rpm
版本包含:主版本号.次版本号.程序发行版本
说明包含:rpm包发行版本.系统版本.平台类型
举例:zlib-1.2.7-17.el7.x86_64
zlib是包名 1.1.7是程序版本 17是包版本 el7是系统版本 x86是平台类型
拆分程序包命名规则:
主包命名规则:主包名-version-arch.rpm
子包命名规则:主包名-子包名-version-arch.rpm
如:zlib-1.2.7-17.el7.x86_64 和 zlib-devel-1.2.7-17.el7.x86_64
rpm
yum
yum是什么:rpm包管理器的前端工具。
yum的做用:自动解决程序直接的依赖关系。
安装: rpm -i 包名
升级: rpm -U 包名 或者 rpm -F 包名
查询: rpm -q {包名|文件名}
卸载: rpm -e 包名
安装:yum install 包名
升级:yum update 包名
查询:yum list | grep 包名
卸载:yum remove 包名
yum配置文件
全局配置文件:/etc/yum.conf
仓库配置文件:/etc/yum.repos.d/*.repo
库配置文件格式
#仓库ID[base]#仓库名称name=CentOS-$releasever - Base - mirrors.aliyun.com#仓库地址baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ #是否启用nabled={1|0}#是否检查包完整性gpgcheck={1|0}#Key地址gpgkey=Key地址 #仓库地址为多个时,如何选择failovermethod={roundrobin|priority}
命令:ldd 二进制文件
举例:查看ls这个命令都依赖哪些库文件
[root@localhost ~]# ldd /usr/bin/ls linux-vdso.so.1 => (0x00007fffc5b49000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fd0969ab000) libcap.so.2 => /lib64/libcap.so.2 (0x00007fd0967a6000) libacl.so.1 => /lib64/libacl.so.1 (0x00007fd09659c000) libc.so.6 => /lib64/libc.so.6 (0x00007fd0961db000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fd095f79000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fd095d74000) /lib64/ld-linux-x86-64.so.2 (0x00007fd096bda000) libattr.so.1 => /lib64/libattr.so.1 (0x00007fd095b6f000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd095953000)
命令:ldconfig
举例:显示本机已经缓存的全部可用库文件以及映射关系
ldconfig -p
配置文件:/etc/ld.so.conf /etc/ld.so.conf.d/*.conf
缓存文件:/etc/ld.so.cache