在linux的学习和工作中需要安装许多的软件。在redhat的linux操作系统下,软件一般都是rpm格式的。以下将介绍一些软件安装和管理的内容。

1、软件名称

在安装软件时,最基本的是软件名称的识别,以"firefox"软件为例,此软件为:

firefox  |  -  |  38.3.0-2  |  .  |  el7_1  | .  |   x86_64

其中"firefox"为软件名称,"38.3.0-2"为软件版本,"el7_1"为软件适用系统,"x86_64"表示为64位软件。

2、软件安装

2.1、rpm

"rpm"是一种常用的软件安装和查询命令,其中的参数在软件管理方面有很大的应用。

参数"-ivh"是安装软件的参数,安装软件,"-v"显示过程,"-h"指定加密方式为"hash"。例如安装软件"firefox-24.5.0-1.el7.x86_64.rpm"。

参数"-ivh"在软件名字后加"--force"可以强制安装软件。例如不小心删除"/usr/bin/firefox",则会出现下图情况,并且普通的安装会提示已安装过,此时就需要用到强制安装。

参数"-q | -qa"可以查看软件是否安装,例如查询刚才安装的"firefox"软件,有下图的三种方式。

参数"-ql"可以查看软件安装后生成的文件,如下图是"firefox"在安装后生成的文件。

参数"-qlp"可以在软件安装前查询软件安装后将会生成什么文件,如查询"firefox"在安装前查询将会生成的文件,但是,此参数后面应该加软件全名,即有".rpm"。

参数"-e"可以卸载安装的软件。如图卸载"firefox"软件。

参数"-Kv"可以检测软件包是否被篡改,例如,对比下面前后两图,软件修改后会出现"BAD"。

参数"-qp"可以查询软件安装包安装后的名字,但是软件的名字必须为全名。如图所示,显示"firefox"软件的名字。

如果在参数"-qp"后的软件名字后面加入"--scripts",则可以检测软件在安装或卸载过程中执行的动作。在软件安装前,用此参数检测软件非常有必要,例如,现有"FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm"和"FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm"两个软件,现用参数"-Kv"检测这两个软件,如下图,发现这两个软件都未被篡改。

但是,如果使用"--scripts"后会发现,"FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm"软件在卸载过程时会删除根下所有目录导致系统崩溃,所以在软件安装前使用"-Kv"和"--scripts"很有必要。

参数"-qi"可以查看软件的信息。例如输入"rpm -qi firefox"查询软件"firefox"的信息。

如果知道一个文件,但是不知道它是属于哪个软件安装包在安装时生成的,可以使用参数"-qf"查询。

2.2、yum

"yum"是在软件安装和管理中的另一个常用命令。其中也有很多功能需要通过加入参数来实现。

"install"是安装软件的参数,例如安装软件"gcc"。如果加入"-y"可以让软件自动安装而不用询问是否确定安装。

"repolist"可以列出设定的yum源信息,列入下图,可以看出该yum源总共拥有4305个软件。

"remove"是软件卸载的参数。

"list"可以查看软件源中是否有此软件,例如下图查看是否安装"gcc"。

"list all"是列出所有软件名称的参数,可以看到该yum源下所有的软件。

"list installd"可以列出所有已经安装的软件。

"list available"可以列出尚未安装,但是可以安装的软件名称。

"clean all"是清空yum缓存的参数。

在需要安装软件时,有时并不知道需要安装什么软件,只知道软件的用途等信息,则可以用参数"search"来查看,例如下图,可以来查看check message可以使用哪些软件。该参数也可根据软件名称信息找到软件全名。

和"rpm -qf"类似,参数"whatprovides"也可以根据文件名查找yum源中的软件。

参数"update"可以用来更新软件,"reinstall"可以用来重新安装软件,作用与"rpm -ivh --force"的用途类似。

参数"history"可以软件系统的改变历史。

参数"info"可以显示软件信息。

软件不仅仅单独以一个软件的形式存在,同时在存在着许多的软件组,软件组可以使用以下参数来管理。

"groups list"可以查看软件组中包含的软件。

"groups info"可以查看软件组信息。

"groups install"可以安装软件组,  "groups remove"可以卸载软件组,与安装单个软件一致。

3、yum源

虽然在软件的安装过程中有"rpm"和"yum"两种,但是有许多软件有依赖关系,即此软件的安装是需要以其他软件的安装为前提的,这种问题"rpm"并不能解决,但是"yum"可以,所以安装软件多用"yum","rpm"是以查询为主。

"yum"能够投入使用的前提是必须要有yum源,以及配置源的指向文件。一般的yum源有client源端即本地端和server源端即网络端。以下将会介绍这两种不同的源端配置方法。

不管是client源端还是server源端,配置之前都要从网上下载与本机系统版本匹配的iso镜像文件,为了方便,本文中的镜像文件存放在/iso目录中。

3.1、client源端

client源端是将镜像文件挂载在本机目录中配置的yum源,该yum源只能本机使用。client源端的配置步骤如下所示。

a."mkdir /rhel7.2"在根目录下建立一个"rhel7.2"目录,该目录名字位置可以自行选择。

b."mount /iso/rhel-server-7.2-x86_64-dvd.iso /rhel7.2"将下载好的镜像文件挂载在/rhel7.2目录下。通过"ls /rhel7.2"查看是否出现文件。

c."rm -fr /etc/yum.repos.d/*"删除目录/etc/yum.repos.d/下的所有文件。

d."vim /etc/yum.repos.d/rhel7.2.repo"在目录/etc/yum.repos.d/下建立一个文件,名字可以自起但是必须以.repo结尾,并在文件中写入

[rhel7.2]

name=rhel7.2

baseurl=file:///rhel7.2

gpgcheck=0

e."yum clean all"清空yum缓存识别新配置。总步骤图如下。

以上即是yum源client源端的配置过程,配置成功后,即可利用"yum"命令安装软件,并会自动解决软件的依赖关系问题。

3.2、server源端

server源端是建立共享目录,并挂在镜像文件到共享目录上的yum源,该yum源不仅可以本机使用,也可以其他主机使用。配置yum源之前需要安装httpd服务,并且输入"systemctl stop firewalld"关闭防火墙,防火墙会导致数据传输出现问题。server源端与client源端配置方式基本相同,其中有些区别如下。

a."mkdir /var/www/html/rhel7.2"在此目录下建立目录,httpd可以将此目录共享出去。

b."mount /iso/rhel-server-7.2-x86_64-dvd.iso /var/www/html/rhel7.2"将镜像挂载在/var/www/html/rhel7.2目录下。

后面内容与client源端的c.d.e步骤一致,但是在配置/etc/yum.repos.d/rhel7.2.repo文件时,需要将其中的"baseurl=file:///rhel7.2"改为"baseurl=http://本机ip/rhel7.2"。如下图所示。

在server源端配置完成后,可以在浏览器中输入:"http://本机ip/rhel7.2",则可以看到镜像中的内容。总步骤图如下。

3.3、自动挂载

在上述的方法中,将iso镜像文件直接挂载在目录下,但是在重启主机后挂载的目录会自动解除挂载,就需要重新挂载才可以使用yum源。这在学习工作中无疑加大了工作量,所以一般可以采取开机自动挂载iso镜像文件的方法来避免此类情况,具体步骤如下:

输入"vim /etc/rc.d/rc.local",如下图所示,以client源端挂载为例,在下方输入"mount /iso/rhel-server-7.2-x86_64-dvd.iso /rhel7.2"。

保存并退出后输入"chmod +x /etc/rc.d/rc.local"以给此文件可执行权限。如此设定即可使开机时自动挂载iso镜像文件至"/rhel7.2"目录下。同理也可在server源端配置时使用。

3.4、搭建第三方软件仓库

yum源配置成功后即可使用镜像文件中的软件,但是镜像中的软件并不是全部,如果需要用yum安装第三方软件并解决软件依赖问题,那么就需要搭建第三方软件仓库了,其本质就是将第三方软件放入yum源中。其搭建步骤如下:

a."mkdir /software",建立一个目录并且把所有的第三方rpm软件包放到一个目录中,这个目录只能放入rpm文件,目录名称或路径可自行设置。

b."createrepo -v /software",使用此命令可在目录下生成一个"repodata"文件,在使用yum时会读取里面的文件。

c."vim /etc/yum.repos.d/rhel7.2.repo",在之前配置的"rhel7.2.repo"文件后加入,如下图所示。

[software]

name=software

baseurl=file:///software

gpgcheck=0

完成后输入"yum clean all"加载配置,即可使用第三方软件的yum命令。第三方软件仓库搭建完成。

4、rpm、yum的其他用法

4.1、rpm安装包的拆解

在之前说过如果不小心删除了软件中的某个文件,需要通过强行再次安装软件在恢复,这样有时会显得比较麻烦。如果可以将软件安装包拆解,将其中删除的文件重新复制到原目录,将会方便很多,软件安装包的拆解命令为"rpm2cpio  xxxxx.rpm | cpio -id",其中的"xxxxx.rpm"需要加入软件包所在位置。

例如下图中,不小心删除了"/usr/bin/wps"文件,使得"wps"命令无法使用,就可以拆解生成"wps"命令的软件包,并将其中的"/usr/bin/wps"文件复制回原目录,即可解决这个问题。

4.2、yum的软件屏蔽

查看和使用yum源下的软件包时,有时候需要屏蔽一些或者一类软件,使得在执行"yum"命令时自动忽略这类软件,则需要用到软件屏蔽。

例如,在用"yum list available"查看软件列表时,想要自动忽略64位的软件,只显示32的软件,需要输入"vim /etc/yum.conf",并在其中输入"exclude=*.x86_64",如下图所示。

保存退出后,再次使用"yum list available"查看软件列表,就会屏蔽掉未安装的64位软件。

以上就是redhat的linux系统中软件安装及管理的一些内容。

linux初学者-软件安装与管理篇的更多相关文章

  1. Linux下软件安装方法即路径设置

    Linux下软件安装方法即路径设置 http://www.cnblogs.com/edward259/archive/2010/07/02/1770066.html

  2. (大数据工程师学习路径)第一步 Linux 基础入门----Linux 下软件安装

    介绍 介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用. 一.Linux 上的软件安装 通常 Linux 上的软件安装主要有三种方式: 在线安装 从磁盘安装deb软件包 从二 ...

  3. linux下软件安装的几种方式

    linux下软件安装的几种方式(主要有源码安装, rpm安装, yum安装). 一:源码安装 几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式发放,只需要Linux安装了gcc. ...

  4. Linux入门基础教程之Linux下软件安装

    Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...

  5. Linux 下软件安装

    Linux 下软件安装 一.Linux 上的软件安装 通常 Linux 上的软件安装主要有三种方式: 在线安装 从磁盘安装deb软件包 从二进制软件包安装 从源代码编译安装 这几种安装方式各有优劣,而 ...

  6. Linux 的软件安装目录

    Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32. / ...

  7. Linux课程---11、Linux中软件安装和调试

    Linux课程---11.Linux中软件安装和调试 一.总结 一句话总结: 启动过程:1.安装软件,2.修改配置文件,3.启动服务 查看过程:4.查看进程,5.查看端口 关闭过程:6.关闭软件,7. ...

  8. linux中软件安装方式

    通常Linux应用软件的安装包有三种: tar包,如software-1.2.3-1.tar.gz.它是使用UNIX系统的打包工具tar打包的. rpm包,如software-1.2.3-1.i386 ...

  9. 2019-9-16:渗透测试,基础学习,Linux下软件安装,环境搭建,笔记

    Centos linux下软件安装yum 通过分析rpm包头数据后,自动解决依赖关系,直接云端下载软件,根据不同版本系统获取不同软件信息,按顺序下载rpm包,安装软件yum search 软件名:搜索 ...

随机推荐

  1. 第一个SpringBoot测试实例

    1.SpringBoot项目构建:http://start-spring.io   自动化构建SpringBoot项目,保存在本地并解压 2.安装gradle并配置gradle环境 3.配置阿里云ma ...

  2. 11 CSS的三种引入方式和基本选择器

    <!-- 整体说明: 1.CSS的三种引入方式 (1)行内样式 (2)内接样式 (3)外接样式 2.CSS的基本选择器 (1)id选择器 (引用方式:#id) (2)标签选择器(引用方式:标签名 ...

  3. C++几个细节(1)

    标签: C++ 1. 类的初始化 几种不同初始化的区别: A a;和A *a=new A()的区别,示例程序如下: #include <stdio.h> #include <stri ...

  4. spring 5.x 系列第6篇 —— 整合 mybatis + druid 连接池 (代码配置方式)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 项目目录结构 1.创建maven工程,除了Spring基本依赖外,还需要导 ...

  5. yii后台模板标签

    yii模板中的label标签 <?php echo $form->labelEx($model,'name'); ?> 编译后: <label for="Projec ...

  6. Codeforces Round #567 (Div. 2)A

    A. Chunga-Changa 题目链接:http://codeforces.com/contest/1181/problem/A 题目 Soon after the Chunga-Changa i ...

  7. node中websocket的使用

    web Socket和Socket.IO框架 http协议是无状态的,就是说客户端可以给服务器提交请求,但是服务器不能向客户端提交请求,但是我们实际项目中会要求客户和服务器双方是类似电话那种关系, 一 ...

  8. 7天入门Linux

    经过一个星期学习,Linux终于入门了,在这里小记下~ =====================分割线============================= Ubuntu常用命令: ctrl+s ...

  9. Appium+python自动化(十五)- Android 这些基础知识,你知多少???(超详解)

    简介 前边具体操作和实战已经讲解和分享了很多了,但是一些android的一些基础知识,你又知道多少了,你都掌握了吗?这篇就由宏哥给小伙伴们既是一个分享,又是对前边的一次总结.为什么要对这些做一个简单的 ...

  10. HDU 6019:MG loves gold(暴力set)

    http://acm.hdu.edu.cn/showproblem.php?pid=6019 题意:给出n个颜色的物品,你每次取只能取连续的不同颜色的物品,问最少要取多少次. 思路:从头往后扫,用se ...