zoukankan      html  css  js  c++  java
  • linux初学者-软件安装与管理篇

     

    linux初学者-软件安装与管理篇

             在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系统中软件安装及管理的一些内容。

  • 相关阅读:
    json基础
    css语法以及css选择器
    HTML语义化标签
    CSS插入的四种方式
    Hibernate主键生成策略及选择
    HIbernate处理数据更新丢失
    数据库的四大特性以及事务的隔离级别
    MD5加密
    redis主从复制
    redis的持久化方案
  • 原文地址:https://www.cnblogs.com/davidshen/p/8145896.html
Copyright © 2011-2022 走看看