第十六天

软件包管理
应用程序
程序,Architecture
C语言:源代码->(编译)二进制格式
脚本:解释器(二进制程序)


源代码->编译->链接->运行
    程序:

  静态
  动态


  静态链接
  动态链接
共享库
配置文件:
dir=/PATH/TO/SOMEFILE


程序组成部分:
二进制程序

配置文件
帮助文件


/boot
/etc
/usr
/var
/dev
/lib
/tmp
/bin
/sbin
/proc
/sys
/mnt
/media
/home
/root
/misc
/opt
/srv








/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, ext3, xfs)-->内核




程序:指令+数据
指令:芯片
CPU: 普通指令,特权指令
指令集

C语言:
Powerpc: 二进制格式 


x86:




x86: 汇编
powerpc: 汇编


高级语言:
C:


软件包管理器的核心功能:
1、制作软件包;
2、安装、卸载、升级、查询、校验;


Redhat, SUSE, Debian


Redhat, SUSE: RPM
Redhat Package Manager
PRM is Package Manager
Debian: dpt


依赖关系:
X-->Y-->Z

X-->Y-->Z

前端工具:yum, apt-get
后端工具:RPM, dpt


yum: Yellowdog Update Modifier
yum




rpm命令:
rpm:
数据库:/var/lib/rpm
rpmbuild:

安装、查询、卸载、升级、校验、数据库的重建、验正数据包等工作;


rpm命名:
包:组成部分
主包:
bind-9.7.1-1.el5.i586.rpm
子包:
bind-libs-9.7.1-1.el5.i586.rpm
bind-utils-9.7.1-1.el5.i586.rpm
包名格式:
name-version-release.arch.rpm
bind-major.minor.release-release.arch.rpm


主版本号:重大改进
次版本号:某个子功能发生重大变化
发行号:修正了部分bug,调整了一点功能


bind-9.7.1.tar.gz


rpm包:
二进制格式
rpm包作者下载源程序,编译配置完成后,制作成rpm包
bind-9.7.1-1.noarch.rpm
bind-9.7.1-1.ppc.rpm


rpm:


1、安装
rpm -i /PATH/TO/PACKAGE_FILE
-h: 以#显示进度;每个#表示2%; 
-v: 显示详细过程
-vv: 更详细的过程

rpm -ivh /PATH/TO/PACKAGE_FILE


--nodeps: 忽略依赖关系;
--replacepkgs: 重新安装,替换原有安装;
--force: 强行安装,可以实现重装或降级;

2、查询
rpm -q PACKAGE_NAME: 查询指定的包是否已经安装
rpm -qa : 查询已经安装的所有包


rpm -qi PACKAGE_NAME: 查询指定包的说明信息;
rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表;
rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;
rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;


rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本

rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;

如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;
rpm -qpi /PATH/TO/PACKAGE_FILE
rpm -qpl 


3、升级
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;
--oldpackage: 降级

4、卸载
rpm -e PACKAGE_NAME
--nodeps

5、校验
rpm -V PACKAGE_NAME

6、重建数据库
rpm 
--rebuilddb: 重建数据库,一定会重新建立;
--initdb:初始化数据库,没有才建立,有就不用建立;




7、检验来源合法性,及软件包完整性;
加密类型:
对称:加密解密使用同一个密钥
公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;

单向:


# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-redhat-release

rpm -K /PAPT/TO/PACKAGE_FILE
dsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项
sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项




rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值