linux软件包管理分为两种:RPM包管理和源码包管理,其中RPM包管理又有两种方式:①RPM命令管理,②YUM在线命令管理。

RPM包依赖关系:

1、树形依赖

2、环形依赖 (用一条命令同时装来解决)

3、模块依赖,模块依赖查询网址www.rpmfind.net。例如,安装某个rpm包的时候需要依赖模块libodbcinst.so.2,解决步骤:在rpmfind网址上查找到模块所在的rpm包,然后安装该包即可。

区别“包全名”与“包名”

1、包全名:mysql-5.1.73-7.el6.x86_64.rpm,对应的包名:mysql

2、使用包全名:操作的包还没有安装,使用包全名。如,安装和升级操作。

3、使用包名:操作的包已经安装完成,使用包名即可,其会搜索/var/lib/rpm/中的数据库。如,查询和卸载操作。

一、RPM包管理——rpm命令管理:

安装:rpm  -ivh  包全名

选项:

  -i   安装(install)

  -v   显示详细信息(verbose)

  -h   显示进度(hash)

  --nodeps 不检查依赖性(导致功能缺失)

升级:rpm  -Uvh  包全名

选项:

  -U 升级(upgrade)

卸载:rpm  -e   包名

选项:

  -e   卸载(erase)

  --nodeps 不检查依赖性

查询: rpm -qa       //查询出所有已经安装的rpm包

    rpm -q  包名     //查询包是否安装

    rpm -qi  包名     //查询已经安装的软件信息

    rpm -qip 包全名    //查询未安装包信息

    rpm -ql  包名     //查询软件包文件安装位置

    rpm -qlp 包全名    //查询rpm包准备把文件安装到哪些位置

    rpm -qf 系统文件名   //查询系统文件属于哪个rpm包

    rpm -qRp 包全名   //查询软件包的依赖性

选项:

  -q   查询(query)

  -a   所有(all)

  -i  软件信息(information)

  -p  未安装包(package)

  -l   软件包文件安装位置列表(list)

  -f  系统文件属于哪个软件包(file)

  -R  软件包的依赖性(Requires)

校验:rpm  -V   已安装的包名

选项:

  -V   校验指定RPM包中的文件(Verify)

校验输出8个信息位,如果对应项的改变,则用点显示:

  S 文件大小是否改变

  M 文件的类型或文件的权限(rwx)是否改变

  5 文件的md5校验和是否被改变

  D 设备

  L 文件路径是否改变

  U 文件的所有者是否改变

  G 文件的所属组是否改变

  T 文件的修改时间是否改变

文件类型:

  c  配置文件(config file)

  d  普通文件(documentation)

  g  “鬼”文件(ghost file),很少见,就是该文件不应该被这个rpm包所包含

  l  授权文件(license file)

  r  描述文件(read me)

文件提取:rpm2cpio  包全名 | cpio -idv .文件的绝对路径        //注意这里的点“.”将rpm包中文件提取到当前目录中

说明:

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

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

cpio  选项 <  [文件|设备]

选项:

  -i:  copy-in模式,还原

  -d:  还原时自动新建目录

  -v:  显示还原过程

文件提取命令使用例子:加入我把系统中的/bin/ls命令误删除了,如何还原?

①rpm  -qf  /bin/ls      //查询ls命令属于哪个软件包(别的机器,或网上)

②rpm2cpio  coreutils-8.22-15.el7.x86_64.rpm  |  cpio  -idv  ./bin/ls  //将ls提取到当前目录下

③cp  ./ls  /bin/       //把提取到的ls文件复制到/bin/目录下

二、RPM包管理——yum命令管理:

网络yum源配置文件(默认使用):/etc/yum.repos.d/CentOS-Base.repo

[base]     容器名称,一定要放在[]中

name      容器说明,可以自己随便写

mirrolist      镜像站点,这个可以注释掉

baseurl yum  源服务器地址。默认是CentOS官方的yum源服务器,可以更换成其他的yum源

enabled    此容器是否生效,如果不写或写成“enable=1”都生效,写成“enable=0”就不生效

gpgcheck     1指定RPM的数字证书生效,0则不生效

gpgkey     数字证书的公钥文件保存位置。不用修改。

查询:yum  list         //到网络服务器中查询所有可用rpm资源

   yum  search  关键字    //搜索服务器上所有和关键字相关的包

安装:yum  -y  install  包名   //安装,自动回答yes

升级:yum  -y  update  包名   //注意:如果没有包名,则会升级所有软件,包括内核。慎用升级所有。

卸载:yum  -y  remove  包名   //卸载。注意:yum会卸载所有依赖包,极有可能卸载掉共同依赖包,甚至是系统依赖包。服务器安装原则,最小化安装,不安装多余软件,不用yum卸载。

yum软件组管理:

查询组:yum  grouplist     //列出所有可用的组

安装组:yum  -y  groupinstall  “软件组名”     //安装组

卸载组:yum  -y  groupremove  “软件组名”     //卸载指定软件组

光盘yum源搭建步骤:

①挂载光盘

mount  /dev/cdrom  /mnt/cdrom/

②让网络yum源文件失效(enable=0,方便的做法是“改名”,yum源是靠检测“.repo”后缀来读取配置文件的)

cd    /etc/yum.repos.d/

mv  CentOS-Base.repo  CentOS-Base.repo.bak

mv  CentOS-Debuginfo.repo  CentOS-Debuginfo.repo.bak

mv  CentOS-Vault.repo  CentOS-Vault.repo.bak

③修改光盘yum源文件(注意,配置文件要严格准守默认格式)

配置baseurl=file://绝对路径     //如:file:///mnt/cdrom

使用enable=1,让文件生效

三、源码包管理:

一般来讲,包括“配置”“编译”“安装”,拿到一个源码包以后,一般打开其“INSTALL”或“README”文件,里面会有相关的编译安装说明。

1、linux软件包管理的更多相关文章

  1. Linux软件包管理

    Linux软件包管理 Linux软件包管理主要有2类:是二进制包管理.源码包管理 二进制包管理 主要有RPM和YUM两种 RPM包管理 安装 --ivh:-v ,-vv,-vvv显示的安装信息依次详细 ...

  2. Linux 软件包管理

    简介: linux中软件包的管理随着linux版本的不同而不同,一般RPM和DPKG是最常见的两类软件包管理工具.分别应用基于rpm软件包的linux发行版本和基于deb软件包的linux发行版本. ...

  3. linux软件包管理(下)

    在vi配置文件的编写的时候我们发现#并不能注释掉一行的信息 那什么才是linux标准的注释信息呢 查看软件对应的软件包命令 rpm –ap| grep vim 大多example是需要的事例文档  双 ...

  4. linux软件包管理(上)

    1.二进制包管理(RPM,yum) 2.源代码包的安装 3.脚本安装(shell或java) 4.Debian系列的linux软件包管理简介 在下载rmp包的时候注意检查硬件平台是否正确,如果硬件平台 ...

  5. Linux系列教程(十三)——Linux软件包管理之源码包、脚本安装包

    上篇博客我们讲解了网络yum源和光盘yum源的搭建步骤,然后详细介绍了相关的yum命令,yum 最重要是解决了软件包依赖性问题.在安装软件时,我们使用yum命令将会简单方便很多.我们知道yum命令只能 ...

  6. Linux软件包管理之源码包、脚本安装包

    目录 1.源码包和RPM包的区别 RPM包和源码包默认安装位置: 由于安装位置不同带来的影响 2.源码包安装 ①.安装准备 ②.安装注意事项 ③.安装源码包 3.源码包卸载 4.脚本安装包 5.总结 ...

  7. Linux(3)- 用户管理、文件与目录权限、常用命令、Linux软件包管理

    一.用户管理 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户 ...

  8. linux笔记:linux软件包管理,软件安装位置

    linux软件包简介 软件包分类:1.源码包(用C语言等编写的源代码,没有进行编译):脚本安装包(对源码包进行了安装优化的源码包)优点:开源,可修改可以自由选择所需的功能编译安装,更适合自己的系统,稳 ...

  9. Linux系列教程(十一)——Linux软件包管理之RPM命令

    前面我们介绍了Linux系统的常用命令介绍和文本编辑器vim命令的介绍.那么从这篇博客开始,我们会正式的讲解Linux的系统管理,首先要讲的是Linux的软件包管理. 1.Linux软件包分类 一.源 ...

随机推荐

  1. 機器學習基石 机器学习基石(Machine Learning Foundations) 作业1 习题解答 (续)

    这里写的是  习题1 中的    18 , 19, 20 题的解答. Packet 方法,我这里是这样认为的,它所指的贪心算法是不管权重更新是否会对train data有改进都进行修正,因为这里面没有 ...

  2. windows 按时自动化任务

    参考文章: 1. 巧用Windows 7计划任务设置定时提醒 http://jingyan.baidu.com/article/acf728fd279fe5f8e510a333.html 2. cmd ...

  3. bzoj 4447 小凸解密码

    bzoj 4447 小凸解密码 先将原始状态的 \(B\) 处理出来,可以发现,若不修改,则每次指定的起始位置不同,对这个环 \(B\) 带来的影响只有 \(B_0\) 不同,即每次 \(B_0=A_ ...

  4. BZOJ2821 作诗(Poetize) 【分块】

    BZOJ2821 作诗(Poetize) Description 神犇SJY虐完HEOI之后给傻×LYD出了一题: SHY是T国的公主,平时的一大爱好是作诗. 由于时间紧迫,SHY作完诗之后还要虐OI ...

  5. hadoop常见错误汇总及解决办法一

    我们经常会遇到一些问题,而且可能会重复性遇到,这些方案可以收藏为以后备用.我们经常遇到如下问题:1.两次以上格式化造成NameNode 和 DataNode namespaceID 不一致,有几种解决 ...

  6. Python中实现远程调用(RPC、RMI)简单例子

    说白了,远程调用就是将对象名.函数名.参数等传递给远程服务器,服务器将处理结果返回给客户端   远程调用使得调用远程服务器的对象.方法的方式就和调用本地对象.方法的方式差不多,因为我们通过网络编程把这 ...

  7. log4j打印mybatis执行sql,将占位符换成真实的参数输出

    背景: 在我日常码代码的时候,由于对mybatis的动态sql,比较依赖,并且有时候需求复杂,导致sql较长,而且参数众多,当出现问题是,需要将sql,放到navicat里面去执行查看结果,但是对于复 ...

  8. FastAdmin 关于跨域问题解决

    FastAdmin 关于跨域问题解决 之前很久之前收集到社区的问题. https://forum.fastadmin.net/thread/277 今天又有人问到,无法打开,估计是网络问题. 以下为完 ...

  9. bzoj2442[Usaco2011 Open]修剪草坪——单调队列优化

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2442 考虑记录前 i 个.末尾 j 个连续选上的最大值.发现时空会爆. 又发现大量的转移形如 ...

  10. MyEclipse中将普通Java项目convert(转化)为Maven项目

    在MyEclipse10中将Maven项目转成普通Java项目后,想将Java项目转成Maven项目,结果一下子傻眼了.根本就没有攻略中提到的config标签.仔细一看,喵咪的,人家用的是Eclips ...