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. Java之OO的特性与原则

    OO(Object-Oriented)面向对象     面向对象,有三个特性.五个原则之说. 特性 封装     顾名思义,封装就好比一个黑盒子,内部被隐藏,只有几个接口与外界相连.具体来说,所谓封装 ...

  2. VS 工具箱 Dev控件显示

    工具箱修复Dev控件显示 用VS2010新打开一个项目,居然发现工具箱里边没了Dev控件. 命令提示符定位到Dev控件的安装目录下的\Components\Tools文件夹下,执行如下命令 添加:To ...

  3. 多态 Java 2015/9/16

    多态:http://www.cnblogs.com/chenssy/p/3372798.html     多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定, ...

  4. 关于python机器学习常用算法的例子

    Home Installation Documentation  Examples     Previous An introduction ... This documentation is for ...

  5. 线性回归 Linear regression(1)线性回归的基本算法与求解

    本系列内容大部分来自Standford公开课machine learning中Andrew老师的讲解,附加自己的一些理解,编程实现和学习笔记. 第一章 Linear regression 1.线性回归 ...

  6. 转发 GSLB概要和实现原理

    What is GSLB Global Server Load Balancing 中文:全局负载均衡 SLB(Server load balancing)是对集群内物理主机的负载均衡,而GSLB是对 ...

  7. jq form表单自动赋值

    (function ($) { $.fn.extend({ initForm: function (options) { //默认参数 var defaults = { formdata: " ...

  8. java web 程序---在线时长

    思路:toLocalString()这个方法 <body> <% long t=session.getLastAccessedTime(); long t2=session.getC ...

  9. java代码----数据类型的转换-----int --->String

    总结:int ----->String package com.a.b; //测试..char--->int // int--->String public class Yue2 { ...

  10. Java-Runoob:Java StringBuffer 类

    ylbtech-Java-Runoob:Java StringBuffer 类 1.返回顶部 1. Java StringBuffer 和 StringBuilder 类 当对字符串进行修改的时候,需 ...