软件安装方式总结

安装软件方式有如下几种:

方式1:编译安装

将源码程序按照需求进行先编译,后安装

缺点:装过程复杂,而且很慢

优点:安装过程可控,真正的按需求进行安装(安装位置、安装的模块都可以选择)

方式2:rpm安装(用rpm来安装rpm后缀的安装包)

优点:安装和卸载过程非常方便

缺点:安装过程不可控(安装位置,安装那些功能模块),rpm包的依赖关系非常复杂

方式3:yum安装

yum安装,其实就是自动分析rpm包的依赖关系,然后按照需要的顺序依次安装

方式4:绿色安装

rpm

作用:rpm是一个数据库管理工具,可以通过读取数据库,判断软件是否已经安装,如果已经安装可以读取出来所有文件的所在位置等,并可以实现删除这些文件。

rpm可以完成安装软件、卸载软件、查询软件信息、升级、降级、检验、打包程序的操作。

rpm仅仅能管理符合rpm格式的程序包,不能管理源码格式的程序。

程序的格式

源码格式的程序:都是以压缩方式呈现的(后缀都是.tar.gz|bz2)

rpm格式的程序:这都是编译以后的程序 (后缀都是.rpm)

安装rpm包

语法:rpm -ivh 软件包名

option:

-i:安装软件

-v:显示安装过程

-h:用#表示安装进度(# 2%)

-vv:显示更详细的安装过程信息

-vvv:显示更更详细的安装过程信息

卸载rpm包

语法:rpm -e 软件名

option:

-e:卸载软件

查询已经安装的rpm包(常用)

语法:rpm -q 软件名

option:

-q:查看一个已经安装的软件

-f: --file

-a:查看所有已经安装的软件all (-qa)

-l:显示软件安装完成以后生成文件列表(所有文件)list (-ql)

-i:查看软件包的相关信息 info

-d:显示该软件所生成的说明性质的文档列表docfiles

-c:查看软件所生成的配置文件列表configfiles

--scripts:查看软件相关的脚本

rpm -V 用来检查已安装rpm包的完整性。所谓“完整性”,这里就是指安装rpm包产生的所有文件和原始rpm包中的信息是否一致。

补充:

preinstall scriptlet (using /bin/sh)::安装前执行脚本

postinstall scriptlet (using /bin/sh)::安装后执行脚本

preuninstall scriptlet (using /bin/sh)::卸载前执行脚本

postuninstall scriptlet (using /bin/sh)::卸载后执行脚本

如果安装过程中,不想执行其中一个脚本,可以指定:

--nopre:不执行安装前脚本

--nopost:不执行安装后脚本

--nopreun :不执行卸载前脚本

--nopostun:不执行卸载后脚本

查看文件是哪个软件生成的

rpm -qf /path/to/file

升级软件

option:

-U:升级或安装软件

-F:仅仅是升级操作

语法:

rpm -Fvh 软件包名

rpm -Uvh 软件包名


yum

作用:yum是一个rpm包的管理工具,可以实现自动解决rpm包的依赖关系(自动安装依赖顺序进行rpm包的安装)

为何rpm包会有依赖关系?

制作rpm的人,在制作rpm包的时候,就将这个rpm的所依赖的软件的信息保存在这个rpm包的内部

下载软件

yum install redis -y
yum localinstall -y gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm #只下载不安装
yum install tree --downloadonly --downloaddir /root/ ##说明:如果该服务器已经安装了需要下载的软件包,那么使用 install下载就不行,可以使用reinstall下载

软件包组下载

yum grouplist    #查看软件包组
yum groupinstall "某个组" #下载软件包组

卸载软件

yum remove redis -y

查询

yum list     #查看rpm包
yum list all #查看所有rpm包
yum list installed #查看已安装的rpm包
yum list available #查看未安装的rpm包
yum search 命令 #查看该命令依赖哪个包

清空缓存

yum clean all

查看所有仓库源

yum repolist

yum的工作原理

①需要首先创建一个yum仓库(rpm包仓库、软件仓库)

仓库其实就是一个目录;

仓库中存放的是rpm包;

仓库中还保存了一个文件,文件中记录了该仓库中所有rpm包的元数据信息;

元数据信息包括:软件名、软件版本、软件是否已经安装、软件的依赖关系;

②用 yum 来从仓库中找软件进行安装的过程(比如要安装软件A,A依赖B 和C, B依赖C D)

yum首先会扫描保存元数据信息的文件,检查A是否已经安装,如果已经安装,那提示已经安装;

如果A尚未安装,那么扫描A的依赖关系信息,会发现A 依赖B 和C;

yum会再次扫描元数据文件,检测B C 是否安装,如果都已经安装,那么会开始开始安装A;

如果B C尚未安装,那么会检测 B C的依赖关系,会发现B依赖C D;

yum会再次扫描元数据文件,检测C D是否安装,如果都已经安装,那么会开始开始安装B,然后安装C,,然后安装A;

yum仓库

本地:将本地的一个目录做成yum仓库,只有当前系统可以使用

网络:通过网络将服务器上的一个目录作为yum仓库,网络中的全部主机都可以使用

使用yum仓库的方式,就是修改yum的配置文件

  • yum的配置文件

    主:/etc/yum.conf

    子:/etc/yum.repos.d/*.repo
╭─root@localhost.localdomain ~
╰─➤ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever //指定缓存文件的保存位置,默认:/var/cache/yum/x86_64/7/
keepcache=0 //指定是否保留缓存文件
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release # This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m # PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

用yum安装软件过程中会从yum仓库下载并缓存多个资源

1)会将yum仓库的元数据文件缓存到配置文件所指定的路径中

2)会将要安装的软件及其依赖的软件一并缓存到配置文件指定的目录中

yum仓库制作

yum配置文件的编写

[localRpm] <<< 指定yum仓库的id,可以随便写,但是中间不能有空格

name=xxx <<< 指定yum仓库的名称,可以随便写

enabled=0|1 <<< 指定是否使用该yum仓库,0表示不使用;1表示使用

gpgcheck=0|1 <<< 指定是否对rpm包做完整性和来源合法性验证,0表示不做验证;1表示必须做验证

gpgkey= <<< 指定公钥文件(如果gpgcheck=1,那么该项不能省略)

baseurl= <<< 指定yum仓库的url

cost=1 <<< 优先级等于1

  • 注意:在指定yum仓库的时候,其实不是指向rpm包的目录,而是执行repodata所在目录

yum仓库制作演示:

#第一步:编辑yum仓库子文件

╭─root@localhost.localdomain ~
╰─➤ cd /etc/yum.repos.d #进入到子配置文件夹
╭─root@localhost.localdomain /etc/yum.repos.d
╰─➤ vim mnt.repo #创建并编辑配置文件 (文件名要求:*.repo) #yum文件编辑内容:
...
[local]
name=local1
enabled=1
gpgcheck=0
baseurl=file:///mnt #本地yum仓库文件内容
[aliyun]
name=aliyun1
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/ #网络源yum仓库文件内容
... #第二步:挂在光盘 ╭─root@localhost.localdomain ~
╰─➤ mkdir /mnt
╭─root@localhost.localdomain /etc/yum.repos.d
╰─➤ mount /dev/cdrom /mnt #挂载光盘
mount: /dev/sr0 is write-protected, mounting read-only
mount: /dev/sr0 is already mounted or /mnt busy
/dev/sr0 is already mounted on /yummnt
/dev/sr0 is already mounted on /mnt #第三步:查看yum仓库 ╭─root@localhost.localdomain /etc/yum.repos.d
╰─➤ yum clean all #清空yum缓存的全部数据
Loaded plugins: fastestmirror
Repository 'local': Error parsing config: Error parsing "baseurl = 'file///mnt'": URL must be http, ftp, file or https not ""
Cleaning repos: local aliyun
Cleaning up everything
Cleaning up list of fastest mirrors
╭─root@localhost.localdomain /etc/yum.repos.d
╰─➤ yum repolist # 检查yum仓库中有多少个可用的rpm包
Loaded plugins: fastestmirror
Repository 'local': Error parsing config: Error parsing "baseurl = 'file///mnt'": URL must be http, ftp, file or https not ""
local | 3.6 kB 00:00:00
aliyun | 4.7 kB 00:00:00
(1/5): local/group_gz | 155 kB 00:00:00
(2/5): local/primary_db | 3.0 MB 00:00:00
(3/5): aliyun/group_gz | 88 kB 00:00:06
(4/5): aliyun/updateinfo | 998 kB 00:00:11
(5/5): aliyun/primary_db | 6.7 MB 00:00:58
Determining fastest mirrors
repo id repo name status
local local1 3,831
aliyun aliyun1 13,190
repolist: 17,021

linux系统rpm和yum软件包管理的更多相关文章

  1. 5.Linux系统的vim与软件包管理

    5.1 Linux系统的vim编辑器 5.1.1 vim编辑器的概述 vim编辑器的简介 1.vim是什么? vim是一个类似vi的文本编辑器,它在vi的基础上增加了很多新特性 vim是vi发展出来的 ...

  2. Linux命令(六)——软件包管理(安装应用程序)

    与windows安装各种应用程序相似,在linux下也可以安装各种需要的应用程序,通常称为软件包.目前,在linux系统下常见的软件包格式主要有:RPM包.TAR包.bz2包.gz包.deb包.sh结 ...

  3. Linux系统的用户和用户组管理

    一.用户账户管理 Linux/Unix是一个用户.多任务的操作系统:在讲Linux账号及账户组管理之前,先简单了解一下多用户.多任务操作系统的基本概念. Linux的单用户多任务 在Linux下,当你 ...

  4. 末学者笔记--rpm和yum软件管理(Linux)

    一.rpm简介 这是一个数据库管理工具,可以通过读取数据库,判断软件是否已经安装,如果已经安装可以读取出来所有文件的所在位置等,并可以实现删除这些文件. rpm:RPM is Redhat Packa ...

  5. linux的Yum软件包管理工具

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 ...

  6. Linux rpm和yum软件管理

    rpm是管理程序的一个小工具,rpm常来用作查询 什么源码包:大多数都是tar.gz,bz.bz2结尾的包 zip结尾的包 压缩格式为 zip –r 命名.zip ./* 解压格式为 unzip 命名 ...

  7. rpm和yum软件管理

    rpm简介 数据库管理工具,通过读取数据库,判断软件是否安装,如已安装可读取出来所有文件的所在位置等,并可以实现删除这些文件. rpm:RPM is Redhat Package Manager(递归 ...

  8. Yum软件包管理详解

    目录 1. Yum 1.1 检查和更新包 1.1.1 查询更新 1.1.2 更新包 1.1.3 使用 ISO 和 Yum 离线升级系统 1.2 使用包 1.2.1 搜索包 1.2.2 列出包 1.2. ...

  9. Linux各发行版本及其软件包管理方法

    Linux发行版本有很多,按照使用领域分为桌面系统领域和服务器领域.下面简要介绍如下: 1.Red Hat和Fedora:redhat最早发行的个人版本的Linux,自从Red Hat 9.0版本发布 ...

随机推荐

  1. Redis性能篇(二)CPU核和NUMA架构的影响

    Redis被广泛使用的一个很重要的原因是它的高性能.因此我们必要要重视所有可能影响Redis性能的因素.机制以及应对方案.影响Redis性能的五大方面的潜在因素,分别是: Redis内部的阻塞式操作 ...

  2. ubutu14.04选中文本就会删除问题解决

    1.网上解法 (1)重装ibus sudo apt-get install --reinstall ibus (2)键盘格局为english(united state) (3)升级火狐为最新版 以上方 ...

  3. .NET 云原生架构师训练营(模块二 基础巩固 消息队列 介绍与基础)--学习笔记

    2.6.1 消息队列 -- 介绍 主要使用场景 队列的三种形式 消息队列的优点 主要使用场景 典型的异步处理 流量削锋 应用解耦 队列的三种形式 点对点 工作队列 发布与订阅 消息队列的优点 1.屏蔽 ...

  4. log4net配置及使用

    log4net简介 log4net库是Apache log4j框架在Microsoft.NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具. log4net详解 ...

  5. WebApi 中请求的 JSON 数据字段作为 POST 参数传入

    使用 POST 方式请求 JSON 数据到服务器 WebAPI 接口时需要将 JSON 格式封装成数据模型接收参数.即使参数较少,每个接口仍然需要单独创建模型接收.下面方法实现了将 JSON 参数中的 ...

  6. Head First 设计模式 —— 10. 迭代器 (Iterator) 模式

    思考题 public void printMenu() { PancakeHouseMenu pancakeHouseMenu = new PancakeHouseMenu(); ArrayList ...

  7. win安装python模块出现依赖问题的解决方法 & No module named 'MySqldb'

    前言 一年多了,还在写这种问题,羞愧. 新公司不让用自己的电脑,配的winPC,项目启不起来,之前也出现过这个问题,是py3缺少某个模块,但是自己没记,这次记一下好了. No module named ...

  8. 解决GitHub下载速度慢的问题(已解决)

    核心:通过码云导入github资源,通过码云转接下载. $\color{blue}{1. 找到需要下载的GitHub地址}$  ​ 然后复制链接,转到码云上去. $\color{blue}{2. 打开 ...

  9. 【SpringMVC】SpringMVC 异常处理

    SpringMVC 异常处理 文章源码 异常处理思路 系统中异常包括两类:预期异常和运行时异常,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. Cont ...

  10. 安装weblogic 11g

    参考 https://blog.csdn.net/z69183787/article/details/38401013 https://blog.csdn.net/wjf8882300/article ...