概述:用rpm安装和管理软件(rpm解决依赖性),用yum安装与管理软件(yum解决依赖性)。

1.linux的软件

linux能够说是一款改变时代的操作系统,可是一个操作系统再优秀假设没有好用的应用跑在上面,也不会流行起来,严格意义上讲操作系统也是软件,是系统软件。1991年linux系统诞生了,可是在他诞生之前有非常多优秀的程序猿參加了GNU计划,编写了非常多“自由”软件。

GNU计划。又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套全然自由的操作系统。

Richard Stallman最早是在net.unix-wizards新闻组上发布该消息,并附带《GNU宣言》等解释为何发起该计划的文章。当中一个理由就是要“重现当年软件界合作互助的团结精神”。为保证GNU软件能够自由地“使用、复制、改动和发布”,全部GNU软件都有一份在禁止其它人加入不论什么限制的情况下授权全部权利给不论什么人的协议条款,GNU通用公共许可证(GNU General Public License。GPL)。

即“反版权”(或称Copyleft)概念。(此段摘抄自百度文库)

我们如今所熟知的linux发行版都是基于GNU计划的。也就是说Linux也是一款GNU计划的软件,仅仅是他比較特殊,是全部GNU软件的执行平台,所以也把Linux称为GNU/Linux。

2.软件名称

[google-chrome-stable]-[21.0.1180.89]-[154005].[x86_64].[rpm]
<span style="white-space:pre">    </span>(1)<span style="white-space:pre">     </span>     (2)<span style="white-space:pre">    </span> (3)<span style="white-space:pre">    </span> (4)<span style="white-space:pre">    </span> (5)

(1)软件的名称

(2)软件的版本号

(3)软件公布的次数

(4)适合的硬件平台。能够通过arch命令查询

(5)rpm格式表示红帽的软件包。全称为red hat Package Manager。假设是debian系列的系统软件包的后缀名为deb。

3.rpm命令的解说

1)rpm命令

rpm -ivh name.rpm##-i表示安装,-v显示过程,-h指定加密方式为hash加密
rpm -e softname##卸载

rpm -ql softname##查询这个软件产生的文件

[root@localhost yum]# rpm -ql net-tools
/bin/netstat
/sbin/arp
/sbin/ether-wake
/sbin/ifconfig
/sbin/ipmaddr
/sbin/iptunnel
/sbin/mii-diag
/sbin/mii-tool
/sbin/nameif
。。

。(省略过多的文件)

rpm -qlp name.rpm##系统安装这个包后会产生哪些文件(显示结果同上一个命令)

rpm -qa ##查询系统中安装的全部软件的名称(是软件不是软件包)

lzo-2.06-6.el7_0.2.x86_64
perl-Socket-2.010-3.el7.x86_64
ethtool-3.15-2.el7.x86_64
perl-Time-HiRes-1.9725-3.el7.x86_64
hostname-3.13-3.el7.x86_64
perl-Scalar-List-Utils-1.27-248.el7.x86_64
keyutils-libs-1.5.8-3.el7.x86_64
perl-Pod-Simple-3.28-4.el7.noarch
p11-kit-trust-0.20.7-3.el7.x86_64
perl-File-Path-2.09-2.el7.noarch
gettext-libs-0.18.2.1-4.el7.x86_64
。。

。(省略过多的文件)

rpm -qa | grep name  ##查询软件是否安装

比方我想查询我有没安装httpserver这个软件

[root@localhost yum]# rpm -qa | grep httpd
<span style="color:#ff0000;">httpd</span>-tools-2.4.6-31.el7.x86_64
<span style="color:#ff0000;">httpd</span>-2.4.6-31.el7.x86_64

依据结果我确实安装了这个软件
rpm -q##查询这个软件是否安装

rpm -qp name.rpm##查询软件包安装后软件的名字
-qf    ##查看filename属于哪个安装包

<span style="font-size:18px;">[root@localhost yum]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
[root@localhost yum]# rpm -qf /usr/bin/ls
coreutils-8.22-11.el7.x86_64
</span>

-ivh name.rpm --forece   ##强制安装
-qi ##查询软件的信息
-Kv name.rpm ##检測软件包是否被篡改(比方你在网上找到了一个第三方软件包。一定要先检測一下,是否被人篡改过)

-qp name.rpm --scripts##检測软件在安装或卸载过程中运行的动作(检測这个软件包是否被篡改还放心的话,能够运行这个个參数,看下在安装和卸载这个文件后,他所运行的脚本是否有害)

-qc ##查看这个软件的配置文件

-qd ##查看这个软件的全部说明文件

2)rpm的缺陷

事实上也不能说是rpm的缺陷,作为一个软件安装工具。仅仅要能非常好的安装软件已经足够了,可是有时候我们找到一个rpm包后并不能直接安装上他,那时由于在开发这个软件时,他可能须要一些别的软件来支持。比方MP3播放器,你前提一定要有声卡驱动,就像这种关系叫做软件的依赖关系。

我们来看个实际的样例:

[root@localhost yum]# rpm -ivh google-chrome-stable-21.0.1180.89-154005.x86_64.rpm
警告:google-chrome-stable-21.0.1180.89-154005.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID ff6382fa: NOKEY
错误:依赖检測失败:lsb >= 4.0 被 google-chrome-stable-21.0.1180.89-154005.x86_64 须要libatk-1.0.so.0()(64bit) 被 google-chrome-stable-21.0.1180.89-154005.x86_64 须要libgconf-2.so.4()(64bit) 被 google-chrome-stable-21.0.1180.89-154005.x86_64 须要libXss.so.1()(64bit) 被 google-chrome-stable-21.0.1180.89-154005.x86_64 须要libXcomposite.so.1()(64bit) 被 google-chrome-stable-21.0.1180.89-154005.x86_64 须要libXfixes.so.3()(64bit) 被 google-chrome-stable-21.0.1180.89-154005.x86_64 须要wget 被 google-chrome-stable-21.0.1180.89-154005.x86_64 须要

我们想用rpm直接安装谷歌的rpm包。可是发现没有成功。看了报错信息后发现。google浏览器须要非常多的其它库或文件支持。导致我们不能安装。

可是rpm仅仅是将这个情况说明了一下。而且停止你的安装,并没有解决你的问题。当然你要是暴脾气想直接安装也能够,加上前面提到的--force參数,可是安装后的软件那也肯定会发生非常奇怪的问题。基于这些问题,出现了yum这样的前端软件包管理器,他不仅仅是能够发现依赖关系问题。还能解决问题。

4.yum(Yellow dog Updater, Modified)

yum是上层软件管理工具。最重要的功能是能够解决软件的依赖关系。可是想让yum投入使用是我们必须拥有yum源,可是红帽系统的官方镜像源是收费的。我们以学习为目的能够先使用Centos的yum源或自己搭建。

1)yum 的client端配置

/etc/yum.repos.d/*.repo##仓库指向文件的位置(用来指定我们的yum源在哪里)

配置格式:

[xxxx] ##自己定义仓库的名称

name=yyyy ##自己定义的仓库描写叙述

baseurl=[protocol]://地址##用来填写yum源的地址,能够是本地file://,能够是ftp服务ftp://。能够是http服务http://。

gpgcheck=0 ##gpg是软件的出品logo是一种非对称加密用于检验软件是否属于官方源(不是第三方软件),为0时为检測,为1时为不检測。

enabled=1 ##是否启动这个yum源

样例:

[base]
name=localsoft
baseurl=http://192.168.1.201/yum
gpgcheck=0
enabled=1

改动完毕后使用。清空yum缓存

yum clean all更新yum的配置。

2)yum的服务端配置

2.1)获得与你系统版本号对应的镜像文件,比方我的事企业7,那么就是rhel-server-7.1-x86_64-dvd.iso。

2.2)将这个镜像挂载到一个文件夹下

mount /iso/rhel-server-7.1-x86_64-dvd.iso /yum

2.3)改动仓库指向文件

[base]
name=localsoft
baseurl=file:///yum
gpgcheck=0
enabled=1

2.4)清空yum缓存

yum clean all

2.5)开机自己主动挂载,将镜像自己主动挂载到/yum

vim /etc/rc.d/rc.local(切记在加入完开机须要启动的命令后给这个文件加上运行权限,这是企业7处于安全考虑去掉了他的运行权限,假设不去掉运行权限。那么写在这个文件下的命令也不会运行)

加入

mount /iso/rhel-server-7.1-x86_64-dvd.iso /yum

这样本地yum源就配置好了

3)http服务的yum源

你一定想知道网络上的yum源是怎样配置的如今我就示范一下:

3.1)首先下载资源共享服务http服务

yum install httpd -y

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl start httpd

systemctl enable httpd

3.2)在/var/www/html/ 下建立一个共享文件夹test

将镜像挂载到上面

3.3)改动仓库指向文件

[base]
name=localsoft
baseurl=http://本机ip/test
gpgcheck=0
enabled=1

在浏览器中输入:http://本机ip/test   測试一下。

4)建立第三方yum源

刚才我们建立的yum源都是基于镜像文件的,也就是说官方都已经给做好的。可是假设我们自己找到了非常多好用的第三方软件包也想建立一个Yum源怎么办呢?就要自己建立第三方库。

将收集好的rpm包放在一个目录下(这个目录下一定要全是rpm包)。

createrepo -v 当前文件夹,当前文件夹就变成了一个yum源文件夹。

再使用之前的方式将仓库指向文件改动为这个文件夹,就能够用啦。

5)yum命令的详解

yum  install  softawarename ##安装

repolist##列出设定的yum源信息

Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repo id                                    repo name                                status
!redhatsoftware                            localsoftware                            4,371
repolist: 4,371

removesoftwarename##卸载

listsoftwarename##查看软件源中是否有此软件,能够不输入软件的所有名字,它会自己主动匹配到的。

list all ##列出全部软件

yajl.x86_64                                                                                       2.0.4-4.el7                                                                     base
yelp.x86_64                                                                                       1:3.8.1-7.el7                                                                   base
yelp-libs.i686                                                                                    1:3.8.1-7.el7                                                                   base
yelp-libs.x86_64                                                                                  1:3.8.1-7.el7                                                                   base         2.31

省略。

。。

listinstalled##列出已安装的软件名称

listavailable##列出能够用yum安装的软件名称

clean all##清空yum缓存

search softwareinfo##依据软件信息搜索软件名字

[root@2+2 ~]# yum search gcc
已载入插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
====================================================================================== N/S matched: gcc =======================================================================================
gcc-c++.x86_64 : C++ support for GCC
gcc-gnat.x86_64 : Ada 95 support for GCC
gcc-objc.x86_64 : Objective-C support for GCC
gcc-objc++.x86_64 : Objective-C++ support for GCC
libgcc.i686 : GCC version 4.8 shared support library
libgcc.x86_64 : GCC version 4.8 shared support library
。

。。省略 名称和简单介绍匹配 only,使用“search all”试试。

能够看出,这个搜索是将和yum源中软件名称或者信息有一致的话就进行匹配。

whatprovides filename##在yum源中查找包括filename文件的软件,这个命令经常使用,增加我们使用最小安装,装了一台电脑发现他缺少非常多经常使用命令。比方ifconfig。

[root@2+2 ~]# yum search ifconifg
已载入插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
警告:没有匹配 ifconifg 的软件包
No matches found

依据软件名字和简单介绍无法找到含有ifconfig的软件。这时这个命令就实用了

[root@2+2 ~]# yum whatprovides */ifconfig
已载入插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
net-tools-2.0-0.17.20131004git.el7.x86_64 : Basic networking tools
源    :base
匹配来源:
文件名称    :/sbin/ifconfignet-tools-2.0-0.17.20131004git.el7.x86_64 : Basic networking tools
源    :@base
匹配来源:
文件名称    :/sbin/ifconfig

一下子我们就看到了我们须要的ifconfig命令是来自net-tools这个软件包的,接下来我们仅仅要安装这个软件包就好了。

update##更新软件,什么都不加的话它会更新差点儿一切能够更新的软件。包含内核,所以谨慎使用。

history##查看软件改变历史。仅仅包含安装和卸载

[root@2+2 ~]# yum history
已载入插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
ID     | 登录用户                 | 日期和时间       | 操作           | 变更数
-------------------------------------------------------------------------------6 | root <root>              | 2016-10-24 15:43 | Erase          |    1   5 | root <root>              | 2016-10-23 22:18 | Install        |    3   4 | root <root>              | 2016-10-23 20:13 | Install        |    5   3 | root <root>              | 2016-10-23 20:13 | Install        |    1   2 | root <root>              | 2016-10-23 20:11 | Install        |   31   1 | 系统 <空>                | 2016-10-23 19:10 | Install        |  324
history list

能够看出。进行了非常多次的安装操作,近期一次做了删除操作。

reinstall softwarename##又一次安装软件

info softwarename##查看软件信息

[root@2+2 ~]# yum info net-tools
已载入插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
已安装的软件包
名称    :net-tools
架构    :x86_64
版本号    :2.0
公布    :0.17.20131004git.el7
大小    :917 k
源    :installed
来自源:base
简单介绍    : Basic networking tools
网址    :http://sourceforge.net/projects/net-tools/
协议    : GPLv2+
描写叙述    : The net-tools package contains basic networking tools,: including ifconfig, netstat, route, and others.: Most of them are obsolete. For replacement check iproute package

groupslist##查看软件组信息,这些包是整合好的,安装后就能够进行一些工作的。比方webserver须要的php,mysql,apache等

Maybe run: yum groups mark convert (see man yum)
Available environment groups:最小安装基础设施server文件及打印server基本网页server虚拟化主机带 GUI 的server
可用组:传统 UNIX 兼容性兼容性程序库图形管理工具安全性工具开发工具控制台互联网工具智能卡支持科学记数法支持系统管理系统管理工具
完毕

groupsinfosoftwaregroup##查看软件组内包括的软件,这个命令能够查看一个软件组中的软件的安装情况

[root@2+2 ~]# yum groups info Input*
已载入插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.组:输入法组编号:input-methods描写叙述:输入国际文本的软件。默认的软件包:+ibus-chewing+ibus-hangul+ibus-kkc+ibus-libpinyin+ibus-m17n+ibus-rawcode+ibus-sayura+ibus-table+ibus-table-chinese+m17n-contrib+m17n-db可选的软件包:ibus-typing-boosteriok可能的软件包:gtk2-immodule-ximgtk3-immodule-ximibus-gtk2ibus-gtk3+ibus-qtimsettings-gsettings+imsettings-qt

当中+表示没有安装,可是会在下次运行“yum upgrade”or"yum group upgrade foo"后安装。

前面什么也没有的表示已经安装可是不是通过group安装的方式安装的。

有时候还会看到=号,表示已经安装。并且通过groups的方式安装的。

groupsinstallsoftwaregroup##安装组件

groups removesoftwaregroup##卸载组件

我这最后另一个问题。当你使用yum groups list 时发现他所显示的组包并不全。

[root@2+2 ~]# yum group list
已载入插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Available environment groups:最小安装基础设施server文件及打印server基本网页server虚拟化主机带 GUI 的server
Installed groups:安全性工具系统管理工具
可用组:传统 UNIX 兼容性兼容性程序库图形管理工具开发工具控制台互联网工具智能卡支持科学记数法支持系统管理
完毕
[root@2+2 ~]# yum groups info Input*
已载入插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.组:输入法组编号:input-methods描写叙述:输入国际文本的软件。默认的软件包:+ibus-chewing+ibus-hangul+ibus-kkc+ibus-libpinyin+ibus-m17n+ibus-rawcode+ibus-sayura+ibus-table+ibus-table-chinese+m17n-contrib+m17n-db可选的软件包:ibus-typing-boosteriok可能的软件包:gtk2-immodule-ximgtk3-immodule-ximibus-gtk2ibus-gtk3+ibus-qtimsettings-gsettings+imsettings-qt

你看这个Input-method就没有在一開始显示出来,那么我们如何找到呢?

转载于:https://www.cnblogs.com/brucemengbm/p/7401195.html

运维笔记10 (Linux软件的安装与管理(rpm,yum))相关推荐

  1. linux mk创建文件,Linux运维知识之Linux mkkickstart建立安装的组态文件命令详解

    本文主要向大家介绍了Linux运维知识之Linux mkkickstart建立安装的组态文件命令详解,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 功能说明:建立安装的组态文件 ...

  2. linux运维管理系统培训,Linux运维教程之Linux系统用户与组管理

    今天小编要跟大家分享的文章是关于Linux运维教程之Linux系统用户与组管理.正在从事Linux运维工作和学习的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助. 一.Linux系统用户 ...

  3. linux rpm远程安装软件下载,linux软件的安装。使用rpm、yum或wget下载软件

    介绍 在linux中安装软件一般有一下几种方式: a.通过rpm包安装 b.通过yum在线安装(联网) c.weget url 在线下载软件(只负责下载,不安装) 1.通过rpm包来进行软件的安装和卸 ...

  4. 【已阅】Linux的软件生态与两个方面,客户端/Linux软件下载安装的认识,yum源/仓库(repo)与yum指令的本质,yum指令操作等

    铺垫1:服务器属于硬件 服务器是一种计算机硬件设备,主要用于存储.管理和处理数据以及为其他计算机提供服务. 服务器通常具有高性能的处理器.大容量的硬盘.大内存和高速网络连接等特点,可以提供各种服务,如 ...

  5. linux软件的安装与查询-rpm与yum命令

    一.RPM软件管理程序:rpm 1.RPM安装软件(install) rpm命令的选项超级多,安装话直接使用-ivh即可,其余做了解即可 命令格式:rpm -ivh package_name.rpm ...

  6. python大数据运维库_大数据集群运维(10)Pycharm下安装模块

    方法一:使用Pycharm的终端安装 一.网络爬虫 1.安装requests包 作用:简洁且简单的处理HTTP请求的第三方库 pip install requests 2.安装scrapy包 作用:快 ...

  7. 运维笔记40 Linux系统监控之Cacti(Cacti搭建,自动抓取cacti统计图片脚本)

    概述:监控系统在一个系统中十分重要,它会将很多重要的信息,诸如内存信息,cpu信息,硬盘信息集合在一起显示出来,当系统出现问题的时候我们能及时定位并修复错误.今天介绍的监控系统是一款轻量级的监控系统C ...

  8. 老男孩的linux运维笔记-初级部分内容(一)

    ############################################################ # # USER          YYYY-MM-DD – ACTION # ...

  9. Nginx基础应用配置小结 - 运维笔记

    Nginx基础应用配置小结 - 运维笔记 在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结. 一.nginx服务简介 N ...

最新文章

  1. 深入理解 wpa_supplicant(二)
  2. 面试官问我,Redis分布式锁如何续期?懵了。
  3. golang exec.Command 执行命令 返回详细错误信息
  4. 【Android 安全】DEX 加密 ( 支持多 DEX 的 Android 工程结构 )
  5. 千万级日订单下,饿了么异地多活数据实施DRC的应用实践
  6. 2台电脑间快速复制大文件
  7. mysql2017windows安装_mysql的windows安装
  8. 管理感悟:如何改造代码
  9. 微软官方Power Query M语言规范参考手册(Power Query M function reference)
  10. 4个好用的WebShell网站后门查杀工具 在线木马查杀
  11. 高效能人士的七个习惯 读书笔记
  12. SQLServer锁表
  13. 世界读书日送你畅销好书!前所未有4折购书福利
  14. [译] 现代浏览器内部揭秘(第一部分)
  15. 永洪BI配置测试及遇到的一些问题
  16. k-means聚类算法——c语言
  17. 基于PHP的校园二手信息网站的设计与实现毕业设计源码251656
  18. 场上比分为米兰1-0当先佩斯卡拉
  19. 【测试新人必备】测试报告如何编写?
  20. matlab图像处理英文文献,matlab图像处理中英文翻译文献

热门文章

  1. 世界公认最好的记忆方法_世界记忆大师:6种简单实用记忆方法,让孩子成为学霸中学霸...
  2. laravel上传文件报错:413 Request Entity Too Large
  3. 【Java Web开发指南】深入浅出Spring和SpringMVC
  4. 【django轻量级框架】django项目部署到阿里云服务器流程
  5. 修改pom文件_SpringCloud微服务全家桶-第8篇,服务的配置文件更改
  6. python交作业的格式_python作业4
  7. 计算机应用看法,对计算机应用教学方法改革的看法
  8. spring boot中@ResponseBody等注解的作用与区别
  9. 企业网站如何具备亲和力?
  10. flutter学习(排雷)一