软件包管理
应用程序 程序:Architecture
c语言:源代码-->(编译)二进制格式 脚本:解释器(二进制程序)
源代码-->编译--连接-->运行
程序: 库 静态库 动态库 共享库 配置信息 dir=/path/to/somewhere
程序组成部分 二进制程序 库 配置文件 帮助文件
glibc: gnu的c库
/boot /etc /usr /var 可以单独分区 /dev /lib /tmp /bin /sbin /proc /sys /mnt /media /home账号用户数据,单独分区 /root不能单独分区 /misc /opt /srv不能单独分区
新安装程序的库会放在 /lib,/usr/lib的中
/usr/share/man
/etc,/bin,/sbin,/lib 系统启动需要用到的程序,这些目路不能挂载到额外的分区上,必须在/上 (根目录下)
/usr/ bin sbin lib 操作系统的核心功能 ,可以单独分区
/usr/local bin sbin lib etc man /opt 第三方软件
/proc /sys 不能单独分区,默认为空
/dev:设备,不能单独分区: udev内核根据驱动,自动创建设备文件
/root:不能单独分区 /var:建议单独分区 /boot:内核,initrd(initramfs) 操作系统启动过程 内核: 一般要单独分区,做成基本分区
POST-->BIOS(HD)-->(MBR)bootloader(文件系统结构,ext2,txt3,xfs)-->加载内核
程序:指令+数据
指令:芯片 CPU:普通指令,特权指令 指令集
c语言: powerpc:二进制格式 x86:
软件包管理器: 打包成一文件:二进制程序,库文件,配置文件,帮助文件 生成数据库,追踪所安装的每一个文件
软件包管理器的核心功能: 1,制作软件包 2,安装,卸载,升级,查询,校验
Redhat,SUSE:RPM Redhat Package Manager RPM is Package Manager
Debian:dpt
依赖关系: x-->y-->z
前端工具:yum,apt-get 后端工具:RPM,dpt
yum:Yellowdog Update Modifier
rpm命令: rpm: 数据库文件: /var/lib/rpm rpmbuild
安装、查询、卸载、升级、校验、数据库的重建、验证数据包等工作
rpm命名: 包:组成部分 主包:bind-9.7.1-1.i586.el5.rpm 子包:bind-libs_9.7.1-1.i586.el5.rpm
包名格式: name-version-release.arch.rpm bind-major.minor.release
主版本号:重大改进 次版本号:某个子功能发生重大变化 发行号:修正bug,调整一点功能
bind-9.7.1.tar.gz
rpm包: 二进制格式 rpm包作者下载源程序,编译配置完成后,制作成rpm包 bind-9.7.1-1.el5.rpm el5代表红帽企业版5 bind-9.7.1.noarch.rpm noarch代表无平台相关性
源码格式
rpm 1、安装 rpm -i /path/to/package_file -h:以#显示进度,每个#标识2% -v:显示详细过程 -vv:更详细的过程
rpm -ivh 文件 --nodeps:忽略依赖关系 --replacepkgs:重新安装,替换原有安装 --force:强行安装,可以实现重装或降级
2、查询 rpm -q package_name 查询指定表是否已经安装 rpm -qa 查询已经安装的所有包
rpm -qi package_name:查询某软件包的说明信息 rpm -ql package_name 查询指定软件包安装后生成的文件列表 rpm -qc package_name 查询指定安装包的配置文件 rpm -qd package_name 查询指定包的帮助文件 rpm -q --script pacage_name:查询指定安装中包含的脚本
rpm -qf /path/to/somefile 查询指定的文件是由哪个rpm安装包生成的
3、升级 rpm -Uvh /path/to/new_package_file:如果装有老版本,则升级;否则,则安装 rpm -Fvh /path/to/new_package_file:如果装有老版本,则升级;否则,退出
4,卸载 rpm -e package_name --nodeps 强行卸载
5,校验 rpm -V package_name
6、重建数据库
rpm --rebuilddb 重建数据库,一定会重新建立 --initdb 初始化数据库,没有才建立,有就不用建立
7、校验来源合法性,及软件完整性 加密类型: 对称:加密解密使用同一密钥 公钥:一对密钥,公钥,私钥:公钥隐含余私钥中,可以提取出来,并公开出去