软件包管理

简介:

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

                    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

Untitled picture.png

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包内的文件列表

Untitled picture.png

--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

Untitled picture.png

包校

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  文件是否生修改

Untitled picture.png

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:静默模式

未命名图片.png

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



本文转自 工运搬运维 51CTO博客,原文链接:http://blog.51cto.com/13157015/2044475,如需转载请自行联系原作者

相关文章
|
1月前
|
Ubuntu Java Linux
软件包管理篇
软件包管理篇
|
10月前
|
Linux 编译器 开发工具
【Linux环境基础开发工具】软件包管理器-yum
【Linux环境基础开发工具】软件包管理器-yum
141 0
|
10天前
|
弹性计算 运维 Shell
自动化软件包安装与管理
【4月更文挑战第30天】
7 0
|
3月前
|
缓存 Linux Shell
【Linux工具篇】软件包管理器yum
【Linux工具篇】软件包管理器yum
54 1
|
6月前
|
Linux API
DNF管理软件包
DNF管理软件包
|
9月前
|
Linux
RPM软件包管理
RPM软件包管理
171 0
|
11月前
|
Linux 编译器 开发工具
Linux基础开发工具之软件包管理器
Linux作为一款操作系统,其自然也和我们其他的操作系统一样需要安装对应得软件去满足我们的需求,因此为了更好的下载软件我们也就需要使用相应的软件包管理器。
111 0
|
缓存 Oracle 安全
YUM软件管理工具
YUM软件管理工具
166 0
|
Linux 安全 Ubuntu
改善Debian Linux软件包管理的七款工具
如果你运行Debian或它的衍生版本之一(比如Linux Mint或Ubuntu),迟早会遇到apt-get和dpkg,它们是主要的软件包管理命令。然而,这些只是最常见的Debian软件包工具。这些年来,Debian实际上陆续推出了几十款让安装和配置软件包更容易的脚本和工具。
1753 0