码迷,mamicode.com
首页 > 系统相关 > 详细

linux软件包安装

时间:2016-11-04 17:40:52      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:软件安装   提取文件   rpm2cpio   rpm   


在Linux中分为rpm包和二进制包安装,yum安装也属于rpm包安装的一种。


rpm包名原则

技术分享

rpm包依赖性

树形依赖:a -> b -> c

环形依赖:a -> b-> c -> a

模块依赖:查询网站 www.rpmfind.net


模块依赖的实例报错:(实验机器为 Centos6.3 x64)

通过挂载第一张光盘后,进入光盘中的Package目录,安装 mysql-connector-odbc 这个包,报错如下

报错中说的很清楚,缺少libltdl.so.7这个软件包。

先解释一下libltdl.so.7 这个是啥?在linux中以 ".so.数字" 结尾的文件都是软件包组,这是某一个软件包中的一个软件,如要解决这个依赖,

需要在 www.rpmfind.net 中查找对应的软件包安装。

技术分享


在命令行模式中,rpm包还有包名包全名之分,在不同的情况下用不同的名字。

包名:以最上面的rpm包名原则那张图为例:包名就是 httpd

包全名:从头到尾就是包全名了~

当操作对象为已安装的软件那么接包名,若操作对象为未安装软件时则需要接包全名,除了安装和升级是需要用包全名,大多数时候使用包名即可。


rpm安装

# rpm   ivh 包全名

选项:  -i (install)     安装

             -v (verbose) 显示详细信息

             -h(hash)       显示进度

             --nodeps            不检测依赖性

rpm包升级

# rpm   Uvh  包全名

选项: -U  (upgrade)    升级

rpm卸载

# rpm   e  包名

选项:-e  (erase)    卸载

查询是否安装rpm包

# rpm  q   包名       查询该包是否安装

# rpm   -qa  包名       查询所有已经安装的RPM包

            -q         查询

            -a          所有

查询软件包详细信息

# rpm  qi  包名

选项:  -i   查询软件信息

              -l    列表(查询软件包的安装位置)

              -p  查新未安装包信息

# rpm -qip zip-3.0-1.el6.x86_64.rpm 查询未安装软件的软件包的详细信息,因为操作对象是未安装的软件,所以接包全名

# rpm -qlp zlib-devel-1.2.3-27.el6.x86_64.rpm        查询未安装软件准备安装的位置

查询系统文件属于哪个rpm包

# rpm   qf   系统文件名

选项:  -f   查询系统文件属于哪个软件包

查询软件包的依赖性

# rpm  qf   系统文件名

选项:-R  查询软件包的依赖性

         -p  查询未安装包信息

RPM包校验

# rpm V 已安装的包名

选项:-V  校验指定RPM包中的文件


RPM包中文件提取

# rpm2cpio 包全名 | cpio idv   .文件绝对路径

rpm2cpio   将rpm包转换为cpio格式的命令

cpio是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件


提取文件实例

[root@nfs-server ~]# rpm -qf /bin/ls       首先查看 ls 命令属于哪个软件包

coreutils-8.4-19.el6.x86_64

[root@nfs-server ~]# mv /bin/ls /tmp       造成ls命令误删除

[root@nfs-server ~]# ls           ls命令失效

-bash: /bin/ls: No such file or directory

[root@nfs-server ~]# rpm2cpio /mnt/Packages/coreutils-8.4-19.el6.x86_64.rpm  | cpio -idv ./bin/ls    

./bin/ls                  提取RPM包中ls命令到当前目录的 /bin/ls下

25190 blocks

[root@nfs-server ~]# cp /root/bin/ls /bin    把ls命令复制到 /bin/ls 目录,修复文件丢失

[root@nfs-server ~]# ls       ls命令恢复

anaconda-ks.cfg  bin  install.log  install.log.syslog


本文出自 “LULU” 博客,请务必保留此出处http://aby028.blog.51cto.com/5371905/1869390

linux软件包安装

标签:软件安装   提取文件   rpm2cpio   rpm   

原文地址:http://aby028.blog.51cto.com/5371905/1869390

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!