Linux软件包管理

软件包是什么?软件包顾名思义就是将应用程序、配置文件和数据打包的产物.

所有的linux发行版都采用了某种形式的软件包系统,这使得linux软件管理和在windows下一样方便,suse、red hat、fedora等发行版都是用rpm包,Debian和Ubuntu则使用.deb格式的软件包。

mysql-5-3-4.rpm
redis-3-4-3.rpm
nginx2-3-2.rpm

在早期系统运维中,安装软件是一件非常费事费力的事情。系统管理员不得不下载软件源代码编译软件,并且为了系统做各种调整。尽管源代码编译形式的软件增强了用户定制的自由度,但是在小软件上耗费精力是缺乏效率的,于是软件包应运而生。

软件包管理可以将管理员从无休止的兼容问题中释放。yum工具就可以自动搜索依赖关系,并执行安装。

1.RPM软件包管理器

软件包管理器核心功能

  • 制作软件包 .rpm
  • 安装、卸载、升级、查询、校验

在 RPM(红帽软件包管理器)公布之前,要想在 Linux 系统中安装软件只能采取源码包 的方式安装。

源码包安装缺点:

  1. 步骤繁多,耗时
  2. 自己解决依赖
  3. 对运维知识要求高
  4. 管理维护难度大

RPM机制则为解决这些问题而设计的。RPM 有点像Windows系统中的控制面板,会建立统一的数据库文件,详细记录软件信息并能够自动分析依赖关系。

1.rpm安装命令

  • 安装软件的命令格式

    rpm -ivh filename.rpm
    - i:表示安装
    - v:显示详细过程
    - h:以进度条显示
    
  • 升级软件的命令格式

    rpm -Uvh filename.rpm
    
  • 卸载软件的命令格式

    rpm -e filename.rpm
    
  • 查询软件描述信息

    rpm -qpi filename.rpm
    
  • 列出软件文件信息

    rpm -qpl filename.rpm
    
  • 查询文件属于哪个RPM

    rpm -qf filename
    

2.rpm查询软件

rpm -q lrzsz   # 查询lrzsz是否安装
rpm -qi lrzsz  # 查询lrzsz包的说明信息
rpm -ql lrzsz  # 查询lrzsz包生成的文件列表
rpm -qc nginx  # 查询nginx安装生成后的配置文件路径
rpm -qf /etc/nginx/fastcgi.conf  # 查看这个文件由哪个rpm包安装

3.rpm升级软件

rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;

4.rpm卸载软件

rpm -e PACKAGE_NAME
需要手动解决依赖
不如 yum remove

5.rpm安装软件

#下载软件包
wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm#安装软件包
[root@yugo /tmp 11:03:42]#rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...1:lrzsz-0.12.20-36.el7             ################################# [100%]

6.rpm问题

rpm软件包管理安装软件的时候,会产生一系列问题,比如,你安装一个软件包,而这个软件包有依赖软件,那么你需要先安装依赖软件;如果依赖的软件还有依赖软件,你不得崩溃吗?

2.软件管理yum工具

1.yum软件包管理器

Yum (Yellow dog Updater, Modified) 黄狗升级器是一个在 Fedora 中的字符前端软件包管理器。基于 RPM包管理(介绍见RPM包及其管理),能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

2.软件安装的三种方式:

  • 源代码编译安装
  • 获取软件源代码
  • 手动编译安装

yum工具是红帽子才有的软件管理工具,例如suse和乌班图等系统,就没有yum

yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum(选项)(参数):

-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。

3.什么是yum源?

Yum全称为 Yellow dog Updater, Modified,是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。

基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

4.yum的基本工作机制如下

服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。

客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

5.yum源的目录

# 进入yum源目录
cd /etc/yum.repos.d/
# 查看yum源文件
ls -l

配置阿里云yum源

linux的yum仓库目录是

cd /etc/yum.repos.d/

这个目录下,第一层中,所有以.repo结尾的文件,都会识别为一个yum仓库。(这个仓库就是一个url),url中提供了各种rpm包的下载,yum工具回去查找。

阿里云yum源的下载地址:https://opsx.alibaba.com/mirror

1.备份原本的yum仓库文件

cd /etc/yum.repos.d
# 新建文件夹
mkdir  allrepo
# 移动所有的repo文件到这个目录下,咱不用它了
mv *  ./allrepo

2.下载新的阿里云的yum仓库文件

wget -O /etc/yum.repos.d/CentOS-Base.repo   http://mirrors.aliyun.com/repo/Centos-7.repo
# -O  代表把Centos-7.repo  下载到指定目录,且改名

3.配置额外的第三方仓库

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

4.测试yum工具,安装一个nginx

yum install nginx -y

5.启动nginx测试访问

systemctl start nginx

7.可以通过修改nginx的index网页,直接展示复制的页面。

find / -name nginx/html/index.html

把网页源代码放进去就可以访问了。

8.yum工具的其他方法

- yum repolist all  # 列出所有仓库
- yum list all      # 列出仓库所有软件包
- yum info          # 软件包名 查看软件包信息
- yum install       # 软件包名 安装软件包
- yum reinstall     # 软件包名 重新安装软件包
- yum update        # 软件包名 升级软件包
- yum remove        # 软件包名 移除软件包
- yum clean all     # 清楚所有仓库缓存
- yum check-update  # 检查可以更新的软件包
- yum grouplist     # 查看系统中已安装的软件包
- yum groupinstall  # 软件包组 安装软件包组

Linux软件包管理-rpm、yum相关推荐

  1. Linux_09 Linux软件包管理 rpm与yum

    Linux软件包管理 rpm与yum 文件的压缩与打包 rpm安装软件 yum安装删除软件 yum进阶 一. 文件的打包 与压缩 压缩:指通过某些算法,将文件尺寸进行相应的缩小,同时不损失文件的内容. ...

  2. 软件包管理 rpm yum apt-get dpkg

    软件包管理 rpm yum apt-get dpkg 标签: debdebian工具linuxubuntulotus 2012-03-28 10:17 3410人阅读 评论(0) 收藏 举报  分类: ...

  3. 【Linux基础】Linux软件包管理器yum的使用指南rzsz安装

    [Linux基础]Linux软件包管理器yum的使用指南|rzsz安装 前言 主页: 潮.eth的博客_CSDN博客-C学习,C++学习,数据结构and算法领域博主 Linux基础专栏: Linux基 ...

  4. linux软件包管理工具,Linux 软件包管理器-----yum配置详解一

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

  5. 软件包管理,rpm,yum,dnf,apt,dpkg使用

    软件包管理 包管理器: rpm:rpm包管理器 yum:rpm包管理器的前端工具 dnf:Fedora 18+ rpm包管理器前端管理工具,CentOS 8 版代替 yum dpkg:deb包管理器 ...

  6. Linux系统编程3:基础篇之详解Linux软件包管理器yum

    文章目录 (1)什么是软件包 A:软件包 B:注意事项 C:yum基本使用 (2)安装rzsz (1)什么是软件包 A:软件包 区别Windows,在Linux下安装软件,第一种方法是下载程序源代码, ...

  7. linux软件包管理-rpm

    1.程序包管理 功能:将编译好的应用程序的各组件组成文件打包成一个或几个程序包文件,从而更方便快捷实现程序包的安装升级,卸载和查询等管理操作 1 程序包的组成清单(每个程序包都单独实现) 文件清单 安 ...

  8. Linux软件包管理— rpm软件包查询

    之前我们说的rpm软件包的安装和卸载,都可以使用yum命令来代替,但是rpm软件包的查询,yum命令是代替不了的. 注意: 这不是说yum没有查询命令,只是yum查询命令和rpm软件包的查询命令,所查 ...

  9. 有关Linux 软件包管理器 yum的命令打字练习

    工欲善其事,必先利其器--首先我们需要有打字练习的工具 ,这里我推荐的是 金山打字通,下载链接为

最新文章

  1. 交叉熵损失函数和focal loss_理解熵、交叉熵和交叉熵损失
  2. 《Linux内核设计与实现》读书笔记(七)- 中断处理
  3. dotnet core webapi +vue 搭建前后端完全分离web架构(一)
  4. C - Maximize GCD(简单数论)
  5. 【今日CV 计算机视觉论文速览 第145期】Fri, 19 Jul 2019
  6. 【转】Linux的五个查找命令:find,locate,whereis,which,type
  7. bianma 水平 技巧
  8. 软件测试--缺陷报告常见问题03
  9. keepalived 邮件通知
  10. python抛出异常的关键字_浅谈python抛出异常、自定义异常, 传递异常
  11. 互联网思维PK大数据思维
  12. 网络编程在线英英词典之服务器代码框架搭建(二)
  13. shell脚本学习笔记(二)myplayer添加播放列表的源码
  14. 微波雷达感应模块,人体存在感应雷达技术,广告屏智能感应显示
  15. 手撸Mybatis源码-基础版
  16. 致新浪科技频道的一封公开信
  17. Win7下安装swoole具体步骤
  18. Exchange Server 2016 安装部署
  19. java象棋代码注释_中国象棋程序的设计与实现(十一)--棋盘绘制算法(尽管注释非常详细,完全理解仍有难度)...
  20. 雨林木风欲借Linux洗白走上大雅之堂?

热门文章

  1. android studio开发工具介绍,Android应用开发之Android开发工具介绍、Android Studio配置...
  2. XJTU2020秋C++第七次作业
  3. 机器学习-有监督学习-分类算法:k-近邻(KNN)算法【多分类】
  4. 什么是腾讯云web应用防火墙?有哪些优势以及适用于什么场景?
  5. 网易前端微专业,JavaScript程序设计:JS调试
  6. 驾驶证上的照片有具体要求吗?这几点需要注意
  7. php采集新闻数据插入数据库,PHP采集www.php.cn的文章,并存入数据库。
  8. 动态壁纸,视频特效- Android
  9. 【C语言】 从零开始的学习历程(一)
  10. 四种比较简单的图像显著性区域特征提取方法原理及实现-----> AC/HC/LC/FT