linux学习笔记之软件包管理
软件包组成
二进制程序
配置文件
单文件
将主配置文件切割成多个小文件,并放置于某个目录中。
/etc/profile ,/etc/profile.d/*
/etc/pam.conf , /etc/pam.d/*
单文件,在内部分割成多个片段。
[mysql] [mysqld]...
库文件: 二进制 可执行 函数(c程序都由函数组成) 共享模块
静态库
动态库
帮助文件
手册页
文档(/usr/share/doc)
/bin /sbin 系统启动使用
/usr/bin /usr/sbin 大多数软件
/usr/local/bin /usr/local/sbin 第三方软件
操作系统启动文件都在/上 redhat6以后/usr也不可独立分区.
为减小/bin /sbin 大小 部分系统启动文件也放在/usr/bin /usr/sbin上。
第三方软件比较多时可以独立分出/usr/local
库文件
/lib /lib64 /usr/lib
/etc/ld.so.conf.d/*.conf
系统找不到/usr/local下的库文件 /etc/ld.so.conf so shared object
在/usr/local/lib 下的库文件 在建立/etc/ld.so.conf.d/xxx.conf 存放
搜索路径。系统的则写入/etc/ld.so.conf
/etc/httpd/ httpd软件的
帮助文件:
/usr/share/man
/etc/man.conf 指定man到哪里找man文件 doc
/usr/share/doc
头文件;
/usr/include
kernel glibc app os三大组成部分
glibc c语言标准通用库
硬件架构:
x86 x64 poverpc sparc arm
二进制程序: 有格式 特定于硬件平台(编译器自身在软件编译时在特定平台上的运行进行优化)
name-version-release-.arch.rpm
version: 3.2.4
major minor release
32bit x86
i386 i486 i586 i686
64bit x86
x86_64
noarch.rpm 平台无关 平台文件
name-version:主包
name-subname-version:子包
name-devel-version: 库文件 头文件
循环依赖的需同时安装。
yum: yellowdog update modifier rpm前端
yum依赖于rpm 是其升级版。
dpkg -----> apt-get
rpm----->deb
rpm包 rpm yum
源码包 编译安装
制作好的二进制包压缩包,解压后配置使用。
mysql mongoDB
rpm install ---------------> rpm -i pkg1 pkg2 ...... // path
rpm eraser ---------------> rpm -e pkg1 ....
rpm update ---------------> rpm -U | -F pkg1....
rpm verify ---------------> rpm -V pkg1.....
rpm query ---------------> rpm -q ...
install:
rpm -i
-v verbose
-h # progress
--test
--nodeps 忽略依赖
--replacepkgs
--force 无视冲突。
before install pre
after install post 收尾
卸载之前 preun
卸载之后 postun
uninstall:
rpm -e pks1 被依赖不可卸载。
rpm -e php-cli
update :
F freshing 无old,则不new
U update 无old,则安装new
--oldpackages
内核不应该升级安装。 内核允许多版本并存。
query:
rpm -q
rpm -qi
签名:单向加密 提取数据的指纹信息 数据特征
如果原数据一样,结果数据一定一样
雪崩效应,原数据有一点点不同,结果大不同。
rpm 提取特征码,附加在软件包上。 官方使用自己的私钥。
私钥加密,公钥解密。
篡改则破坏特征码.私钥。
公钥解密得到官方提供的特征码,自己再使用同样的方法提取特征码
,并比较和解密出来的特征码是否一致。
rpm -ql pkg1 list 显示安装哪些文件
rpm -qf file 根据文件查rpm包
rpm -qc pkg 查看配置文件
rpm -qd pkg 查看文档 man readme install
rpm -a --scripts pkg1 执行安装的脚本 内置脚本
还未装则加 p 参数
rpm -V pkg1
rpm -K pkg1 检查签名
rpm --import key1 导入公钥 /etc/pki/rpm-gpg/xxx
没签名 sha1 md5 ok
sha1 md5 数据包完整校验
--nodigest 不检查单向加密 sh1 md5
--nosignature 不检验签名信息 gpg dsa
重建rpm数据库
/var/lib/rpm
*db* 锁文件
其它的是锁文件
rpm --initdb 被删除 或不存在 存在则不覆盖
rpm --rebuilddb 覆盖 重建
源码制作成rpm包
yum
route rpm包集合 xml文档 元数据文件
redhat5 包分开存放:
server 常用的基本软件
/repodata yum源信息 父目录即仓库
Cluster 集群
ClusterStore 集群存储相关
VT
yum源何在
下载到本地缓存 元数据缓存到本地
协议3种:
本地 file:///协议
远程服务器 ftp:// http://
yum仓库:
rpm包
repodata/目录 xml文件 只有包含此目录为其子目录的那个路径才可以用作yum源
repomd.xml 保存时间戳 看是否有变化
primary.xml.gz 当前yum仓库内每一个rpm包的名字及彼此之间的依赖关系:
此外还包含每一个rpm包能够安装生成的文件;
filelists.xml.gz: 所有rpm包包含的安装生成文件的文件列表。
other.xml.gz : 额外信息 主要包含rpm包的chnagelog;
rpm包包组的定义
yum 配置文件 子命令
/etc/yum.conf/*
/etc/yum.repos.d/*
/etc/yum/pluginconf.d/*
全局配置 分段配置
全局 /etc/yum.conf
yum
yum repolist
yum list { installed | available | updates | all }
yum clean { all | packages | metadata} // /var/cache/yum
yum grouplist
yum groupinfo "group_name"
yum info "PKG_NAME"
provides FILE
install -y
remove
update
groupinstall
localinstall
reinstall
check-update
install createrepo
createrepo dir
--nogpgcheck
createrepo
redhat6
Package
server
createrepo -g xxx
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。