C语言:源代码--编译(二进制格式)
脚本:解释器(二进制程序)
程序=指令+数据
程序的组成部分:
二进制程序(/bin /sbin)、库(共享库和自身的库/lib)、配置文件(/etc)、帮助文件(/usr/share/man)
软件包管理:
把二进制程序,库文件,配置文件,帮助文件,打包成一个文件并生成数据库,追踪所安装的每一个文件
软件包管理器的核心功能:1.制作软件包 2.安装、卸载、升级、查询、校验
RedHat、SUSE:rpm
Debian:dpt
依赖关系
前端工具:yum 和 apt-get:自动解决软件的依赖关系
后端工具:rpm 和 dpt
rpm包命名:例:zlib-1.2.3-29.el6.x86_64.rpm 和 zlib-devel-1.2.3-29.el6.x86_64.rpm
主包:zlib-1.2.3-29.el6.x86_64.rpm
子包:zlib-devel-1.2.3-29.el6.x86_64.rpm
命名格式:
包名(zlib或zlib-devel)-版本号(1.2.3)-发行号(29).平台架构(el6.x86_64)若平台架构为noarch就表示该软件无论用在哪个平台都可以
版本号(1.2.3):主版本号.次版本号.发行号
主版本号:有什么重要的改进
次版本号:某个子功能有改进
发行号:修正部分bug,调整了一下功能
注:在安装软时一定要注意平台架构的匹配 ,uname -a或-r 查看硬件架构
rpm命令:安装、查询、卸载、升级、校验、数据库的重建、验证数据包
1.安装:
-i 指定文件路径
-h 以#显示进度,每一个#代表2%
-v 显示详细过程
-vv 显示更详细的过程
一般都一起使用 :rpm -ivh /patn/
--nodeps 忽略依赖关系,但可能会导致软件无法运行
--force 强行安装可以实现重装或降级
2.查询:
-q 查询指定的软件是否已经安装(-q 后面跟软件名,不用加版本号及后面的)
-qa 查询已经安装的所有软件包
-qi 查询指定软件包的详细信息
-ql 查询指定软件包安装生成的文件列表
-qf 查询指定的文件是由那个rpm包生成的
3.升级:
-Uvh 升级指定的软件(有新版本就升级安装,没有就安装指定的软件)
-Fvh 升级指定软件(有新版本就升级安装,没有就不安装指定的软件)
-Uvh --oldpackage 降级安装
4.卸载:
-e 卸载指定软件名(但该软件不能被依赖)
--nodeps 忽略依赖关系强制卸载
5.校验:
-V 校验指定的软件名
6.重建数据库:
--rebuilddb 无论有没有数据库都重建
--initdb 初始化数据库(有就不重建,没有才建立)
7.检验来源合法性及软件完整性:
-K 软件包 (dsa、gpg:验证来源名的合法性及签名、--nosignature:略过此项 sha1、md5:验证软件包完整性 --nodigest:略过此项)
--import /etc/pki/rpm-gpg/RPM-GPG-KEY-readhat-release :导入密匙文件 (RH5)
yum 仓库中的元数据文件:
安装镜像文件中:
centos6:repodata文件里面
RedHat5:/server/repodata文件里面
***.primary.xml.gz 中记录了那些信息:
1.所有rpm包的列表
2.所有软件的依赖关系
3.每个rpm包安装生成的文件列表
***.filelists.xml.gz
1.当前仓库中的所有rpm包的所有文件列表
***.other.xml.gz
1.额外信息,rpm包的修改日志
***.repomod.xml
1.记录上面三个文件的时间戳和校验和
***.comps.xml
1.rpm包的分组信息
yum 命令:
list:yum仓库中rpm列表 还可以接相应参数 all全部 avai可用的 able没有安装的 installed已经安装的 updates可用升级的
clean:清理缓存
repolist:显示repo列表及简要信息 也可以跟相应的参数 all全部 enabled默认的 disabled禁用的
install:安装 后面直接跟软件名
updata:升级
updata to:修改为指定版本(可用于降级)
remove :卸载且将依赖的软件一起卸
info:软件包信息
provides:查看指定的文件是由哪个包安装生成的
还有一些yum组的命令:groupinfo grouplist groupinstall groupremove groupupdata
如何自定义一个yum创库:
配置文件夹:/etc/yum.repos.d/
1.首先在配置文件夹中创建一个*.repo结尾的文件
2. 在文件中编辑: [库名]
name=全名
baseusr=yum库的准确位置 一般有三种:ftp:// http:// file:///
enabled=1或0 一般为1
gpgcheck=1或0 一般为0
(这个选项可以不写)gpgkey= file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
3.yum makecache 刷新repos