Linux软件包管理——rpm
/etc, /bin, /sbin, /lib:系统启动就需要用到的程序,这些目录不能挂载在额外的分区,必须在根文件系统分区上
/usr/
bin
sbin
lib
操作系统核心功能,可以单独分区
/usr/local 建议单独分区
bin
sbin
lib
etc
man
/opt:第三方默认安装位置,现在大多数为/usr/local目录下
/proc:不能单独分区,默认为空
/sys:不能单独分区,默认为空
/dev:设备,不能单独分区
/var:应该单独分区
/home:应该单独分区
/root:不能单独分区
/boot:内核,initrd(initramfs),可以单独分区
内核:
POST-->BIOS(HD)-->(MBR)bootloader(文件系统结构,ext2,ext3...)-->内核
Linux软件包管理器
1. 打包成一个文件:二进制程序、库文件、配置文件、帮助文件
2. 生成数据库,追踪所安装的每一个文件
软件包管理器的核心功能:
1. 制作软件包;
2. 安装、卸载、升级、查询、校验;
RedHat、SUSE、Debian
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.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包
bind-9.7.1-1.[el5.][x86|x64|x86_64|i686|noarch].rpm
源码格式
rpm:
1. 安装:
rpm -i /PATH/TO/PACKAGE_FILE
-h:以#显示进度,每个#号表示2%的进度;
-v:显示纤细过程
-vv:更详细的过程
rpm -ivh /PATH/TO/PACKAGE_FILE
--nodeps:忽略依赖关系;
--replacepkgs:重新安装,替换原有安装;
--replacefiles:替换文件
--oldpackage:降级
--force:强行安装,可以实现重装或降级
--test:
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 --scripts PACKAGE_NAME:查询指定包中包含的脚本
rpm -qf /PATH/TO/SOMEFILE:查询指定文件是由哪个rpm包安装生成的;
如果某个rpm包尚未安装,我们需要查询其说明信息、安装以后会生成的文件;
rpm -qpi /PATH/TO/PACKAGE_FILE
rpm -qpl /PATH/TO/PACKAGE_FILE:查看由哪些文件构成
3. 升级
rpm -Uvh /PATH/TO/NEW_PACKAGE_NAME:如果装有老版本的,则升级;否则,则安装;
rpm -Fvh /PATH/TO/NEW_PACKAGE_NAME:如果装有老版本的,则升级;否则,则退出;
--oldpaclages:降级
4. 卸载
rpm -e PACKAGE_NAME
--nodeps
5. 校验
rpm -V PACKAGE_NAME
6. 重建数据库
rpm
--rebuilddb:重建数据库,不管有没有都会从头重建数据库
--initdb:初始化数据库,没有猜建立,有就不用建立;
7. 检验来源合法性,及软件包完整性
加密类型:
对称:加密解密使用同一个密钥;
公钥:一对密钥,公钥,私钥;
单向:
ls /etc/pki/rpm-gpg/
rpm -K /PATH/TO/PACKAGE_FILE
dsa,gpg:验证来源合法性,也即验证签名;可以使用--nosignature,略过此项
sha1,md5:验证软件包完整性,可以使用--nodigest,略过此项
rpm --import /etc/pki/gpm-gpg/RPM-GPG-KEY-redhat-release:导入密钥文件
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。