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