用程序的成部分: 制文件、文件、配置文件、帮助文件

                    bin  sbin \ lib64 \  etc \ share

  rpm不能解决依

  yum 解决包之的依  yumrpm的一个封装 、基于rpm 、前端件包管理器。

  /dev/sr0    cd /misc/cd

 

文件lib

看二进制程序所依赖的库文件 ldd /PATH/TO/BINARY_FILE

管理及看本机装文件

 ldconfig 载库文件

/sbin/ldconfig -p: 示本机已经缓存的所有可用库文件 名及文件路径映射关系

 

 ldconfig 尝试加载库文件   不知道所加载库文件的路径   在配置文件里定载库文件路径

配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

tree命令

[root@centos6 Packages]#cd /etc/ld.so.conf.d   在其下面建立以.conf尾文件

[root@centos6 ld.so.conf.d]#ls

kernel-2.6.32-696.el6.x86_64.conf  mysql-x86_64.conf  qt-x86_64.conf  xulrunner-64.conf

[root@centos6 ld.so.conf.d]#cat qt-x86_64.conf

/usr/lib64/qt-3.3/lib                          路径格式

[root@centos6 ld.so.conf.d]#vim tree.conf

/app/../../ 写入路径

[root@centos6 Packages]#ldconfig

软件包管理_第1张图片

rpm包管理器

程序包管理器功能:将编译好的用程序的各成文件打包一个或几个 程序包文件,从而方便快捷地实现程序包的安装、卸查询 和校等管理操作

rpm包文件相当于tar打包文件

包文件 (每个包独有) RPM包内的文件

RPM的元数据,如名称,版本,依性,描述等 安装或卸载时运行的脚本

 

rpm安装后,会在自/var/lib/rpm下生成数据,记录rpm包数据信息:

程序包名称及版本

关系

功能

 包安装后生成的各文件路径及校验码信息、

/var/lib/rpmrpm包很重要,不能误删除。

 

程序包的来源

 

 统发版的光或官方的服  CentOS

  第三方包建检查其合法性 来源合法性,程序包的完整性

 

rpm包管理

 

 rpm {-i|--install} [install-options] PACKAGE_FILE

 

rpm -ivh 安装

[root@centos7 Packages]#rpm -ivh tree-1.6.0-10.el7.x86_64.rpm   文件名

warning: tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY    检查包来源合法性

Preparing...                          ################################# [100%]

Updating / installing...

   1:tree-1.6.0-10.el7                ################################# [100%]

[root@centos7 Packages]#rpm -q tree    查询tree包是否已在  不用文件名 包名

tree-1.6.0-10.el7.x86_64

[root@centos7 Packages]#rpm -e tree     tree  

 

安装tree ,/var/lib/rpm记录tree包的数据信息,卸是就可以用包名,而不需要完整的文件名

 

[install-options]

 --test: 测试安装,但不真正执行安装,即dry run模式

[root@centos7 Packages]#rpm -ivh --test tree-1.6.0-10.el7.x86_64.rpm

warning: tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY

Preparing...                          ################################# [100%]

[root@centos7 Packages]#echo $?

0                                                         tree包可以安装

 --nodeps:忽略依关系          有依关系的包 忽略关系 安装后依然无法使用

 --replacepkgs | replacefiles          替代安装 解决已安装包  缺失文件如(除移)无法使用问题

--nosignature: 检查来源合法性

 --nodigest:不检查包完整性

--noscripts:不行程序包脚本

[root@centos7 Packages]#rpm -q --scripts bash  bash包的脚本   件包安装时查看程序包脚本 防止意脚本

--force: 强制安装

 

查询

rpm {-q|--query} [select-options] [query-options]  

v[select-options]

-a: 所有包  支持使用glob *, ?, [], [^]  查询有该包名的包

-f: 看指定的程序文件由哪个程序包安装生成  文件的路径  非包名

[root@centos6 ~]#which tree

/usr/bin/tree

[root@centos6 ~]#rpm -qf /usr/bin/tree

tree-1.5.3-3.el6.x86_64

 

 -p rpmfile针对尚未安装程序包文件查询操作  后跟rpm文件名

[root@centos6 Packages]#rpm -qpl tree-1.5.3-3.el6.x86_64.rpm

warning: tree-1.5.3-3.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

/usr/bin/tree

/usr/share/doc/tree-1.5.3

/usr/share/doc/tree-1.5.3/LICENSE

/usr/share/doc/tree-1.5.3/README

/usr/share/man/man1/tree.1.gz

 -l 详细显rpm包内的文件列表

软件包管理_第2张图片

--whatprovides CAPABILITY查询指定的CAPABILITY  功能由哪个包所提供

[root@centos6 Packages]#rpm -q --whatprovides bash

bash-4.1.2-48.el6.x86_64

 

 --whatrequires CAPABILITY查询指定的CAPABILITY 哪个包所依

[root@centos6 Packages]#rpm -q --whatrequires bash

initscripts-9.03.58-1.el6.centos.x86_64

dracut-004-409.el6_8.2.noarch

rsyslog-5.8.10-10.el6_6.x86_64

cronie-1.4.4-16.el6_8.2.x86_64

autofs-5.0.5-132.el6.x86_64

lvm2-2.02.143-12.el6.x86_64

以上包的rpm安装需要依bash包的安装 bash安装,如果bash包未安装,不能安装

 

vrpm2cpio 包文件|cpio itv 预览包内文件

vrpm2cpio 包文件|cpio id  *.conf 放包内文件

 

常用查询用法: -qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE -qpi PACKAGE_FILE, -qpl PACKAGE_FILE, ... -qa

 

包卸 rpm {-e|--erase} [--allmatches] [--nodeps] [-noscripts] [--notriggers] [--test] PACKAGE_NAME ...

 

--changelog查询rpm包的changelog 修改日志

-c: 查询程序的配置文件

-d: 查询程序的文档

-i: information

-l: 看指定的程序包安装后生成的所有文件

--scripts:程序包自的脚本

 --provides: 列出指定程序包所提供的CAPABILITY

 -R: 查询指定的程序包所依赖的CAPABILITY

软件包管理_第3张图片

包校

rpm -V 包名     包下文件是否生修改

 

rpm  -K      包的文件名  检查包的完整性

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  入公钥检查

 

如下:

在光下,入所需要的公

[root@centos7 ~]#cd /run/media/root/CentOS\ 7\ x86_64/

[root@centos7 CentOS 7 x86_64]#ll

total 1490

-r--r--r--. 1 root root      14 Dec 10  2015 CentOS_BuildTag

dr-xr-xr-x. 3 root root    2048 Dec 10  2015 EFI

-r--r--r--. 1 root root     215 Dec 10  2015 EULA

-r--r--r--. 1 root root   18009 Dec 10  2015 GPL

-r--r--r--. 1 root root    1690 Dec 10  2015 RPM-GPG-KEY-CentOS-7

-r--r--r--. 1 root root    1690 Dec 10  2015 RPM-GPG-KEY-CentOS-Testing-7

-r--r--r--. 1 root root    2883 Dec 10  2015 TRANS.TBL

[root@centos7 CentOS 7 x86_64]#rpm --import RPM-GPG-KEY-CentOS-7   入秘钥  检查签

[root@centos7 Packages]#rpm -ivh tree-1.6.0-10.el7.x86_64.rpm   安装

Preparing...                          ################################# [100%]

Updating / installing     不出warning

   1:tree-1.6.0-10.el7                ################################# [100%]

[root@centos7 Packages]#rpm -K tree-1.6.0-10.el7.x86_64.rpm   包的完整性

tree-1.6.0-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK    

[root@centos7 Packages]#rpm -V tree  文件是否生修改

软件包管理_第4张图片

yum

解决rpm包之的依关系

基于c/s安装 ,有客 有服 需要事先搭 将自己机器配置成客  

 yum server:    众多*.rpm的文件   yum记录rpm文件的元数据repodata

[root@centos6 CentOS_6.9_Final]#ls

CentOS_BuildTag  GPL       Packages                  RPM-GPG-KEY-CentOS-6           RPM-GPG-KEY-CentOS-Testing-6

EFI              images    RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Debug-6     TRANS.TBL

EULA             isolinux  repodata       yum元数据       

 

yum仓库路径: http://       https://    路径

                               ftp://    

                             file://            本地路径 

 

  baseurl 路径repodata的当前所在目的路径

 

yumrepo仓库路径配置文件中可用的变量:

 $releasever: 当前OS行版的主版本号

 $arch: 平台,i386,i486,i586,x86_64

$basearch:基平台;i386, x86_64

$YUM0-$YUM9:自定义变

 

 yum端配置文件:

 /etc/yum.conf所有仓库提供公共配置

/etc/yum.repos.d/*.repo为仓库的指向提供配置  配置文件下建立.repo文件

仓库指向的定义:

格式如下

 [repositoryID]

 name=Some name for this repository

baseurl=url://path/to/repository/

enabled={1|0}

gpgcheck={1|0}    yum安装会检查签

gpgkey=URL

enablegroups={1|0}

failovermethod={roundrobin|priority}

 

[root@centos6 CentOS_6.9_Final]#cd /etc/yum.repos.d

[root@centos6 yum.repos.d]#vim bash.repo

[root@centos6 yum.repos.d]#cat bash.repo

[centos7]

name=zhang

baseurl=file:///media/CentOS_6.9_Final/                             本地光的源       repodata的当前所在路径

gpgcheck=1

gpgkey=file:///media/CentOS_6.9_Final/RPM-GPG-KEY-CentOS-Security-$releasever  入公钥文件                   

 

 

[eqel]                                                                                       eqel

name=network

baseurl=http://mirrors.sohu.com/fedora-epel/$releasever/$basearch/                      repodata的当前所在目的路径

gpgcheck=0                                                                   检查

enabled=1      1使用 eqel                        断网,关源使用本地光 enabled=0         

 

yum命令的用法: yum [options] [command] [package 1]  [package 2] .

示仓库列表 yum repolist

示程序包: yum list   支持使用glob *, ?, [], [^]

[root@centos6 yum.repos.d]#yum list my*

示包信息

yum info tree

安装程序包:

 yum install package1 [package2] [...]  多个包安装

yum reinstall package1 [package2] [...]  (重新安装)

 搜索安装包:

 yum search tree

程序包:

 yum remove | erase package1 [package2] [...]

 

yum安装中,假如安装A  A包依B包) 安装会先安装B 再安装A

          载时,先卸A 不卸B B包可能存在别的依

 

 

清理本地存: yum clean all

 repo配置文件里仓库路径生更改yum访问还是以前的源地址 需要清理本地

 

yum务历

yum history

 yum history info 6

 yum history undo 6 销历史中第六条yum安装  相当于卸第六条安装rpm

 

日志 /var/log/yum.log

 

管理的相关命令

yum grouplist

yum groupinstall group1 [group2] [...]

yum groupremove group1 [group2] [...]

yum groupinfo group1 [...]

 组须""引号

[root@centos7 ~]#yum groupinfo "Compute Node"

 

yum-config-manager --disable 仓库禁用仓库

yum-config-manager --enable  仓库名” 启用仓库

 

 

yum的命令行选项

 --nogpgcheck:禁止gpg check

 -y: 回答yes

 -q:静默模式

软件包管理_第5张图片

yum安装记录日志 /var/log/yum.log