文章目录

  • Linux软件包分为二进制包和源码包
    • 源码包
      • 优点缺点
      • 安装过程
    • 二进制包
      • 优点缺点
      • 依赖性
      • 安装方法
      • RPM
        • RPM包获取方法
        • RPM包格式
        • RPM安装
        • RPM查询
        • RPM升级
        • RPM卸载软件
        • 验证
      • YUM
        • 优点
        • YUM的安装
        • YUM的配置文件
        • 默认的CentOSYUM源
        • YUM命令的使用
        • 自己搭建一个yum仓库
        • 国内的yum源

Linux软件包分为二进制包和源码包

源码包是程序的源代码文件的集合,可以被编译成可执行的程序。这种包需要用户手动编译安装,可以根据需要进行自定义配置,适合有编程经验的用户或需要进行深度定制的使用者。
二进制包是已经编译好的可执行程序,用户可以直接安装和使用,不需要进行编译。这种包适合大多数用户使用,因为它们可以直接安装并立即使用,而不需要任何编译或配置。

源码包

源码包是Linux中软件包的另一种形式,需要在计算机上进行编译以后才可以产生可以直接运行的二进制程序。源代码包里面包括了程序的程序代码,一般就是我们能认识的C语言文件,因此在安装源码包的时候通常会检索系统中是否正确安装gcc编译器,并且源代码安装的时间会比较长

优点缺点

优点:
自由度高:源码包的使用可以根据个人需求和系统环境进行自由定制和编译,更好地满足个人需求和特殊应用需求。
灵活性强:源码包安装的灵活性可以更好地适应不同的系统环境和应用场景。
安全性高:源码包没有二进制文件,可以避免一些恶意软件的风险。
可靠性高:源码包的更新和维护通常由软件的作者或社区来完成,可以更好地保证软件的质量和稳定性。

缺点:
安装过程繁琐:源码包需要用户自己下载、编译、安装,整个过程较为繁琐,对用户的技术要求较高。
编译时间长:由于源码包需要编译生成可执行文件和依赖库等文件,编译时间较长,特别是在低配置的计算机上。
可能存在依赖问题:源码包安装过程中需要满足各种依赖关系,一旦依赖关系出现问题,将可能导致安装失败或软件无法正常 工作

安装过程

下载源码包:可以从软件的官方网站或者开源代码库中下载源码包,通常是以.tar.gz、.tar.bz2、zip等格式压缩的文件。
解压源码包:使用tar命令解压源码包,例如:tar -zxvf package.tar.gz。
配置环境:源码包的安装需要满足各种依赖关系,可以使用./configure命令查看系统环境的配置情况,并对源码包进行配置。
编译:使用make命令编译源码包,可以使用make命令的参数来指定编译选项,例如:make。
安装:使用make install命令将编译生成的文件复制到系统路径中,完成软件的安装,例如:make install。
验证:启动安装好的软件,并进行验证,确保软件能够正常工作。

源码包的安装过程相对于软件包管理系统来说较为繁琐,但可以根据个人需求和系统环境进行自由定制和编译,更好地满足个人需求和特殊应用需求。

二进制包

二进制包,也就是源码包经过成功编译之后产生的包,可以马上运行的程序软件包,类似与Windows系统的exe文件。

优点缺点

优点:安装过程简单快速

缺点:没办法查看源代码,选择功能不灵活,有依赖性

依赖性
  1. 树形依赖:若安装a,则需要提前安装b,安装b需要提前安装c

​ 安装方法:安装c → 安装b → 安装a

  1. 环形依赖:若安装a,则需要提前安装b,安装b需要提前安装c,安装c需要提前安装a

​ 安装方法: abc一块安装

  1. 模型依赖:安装a时缺少某些文件

​ 通过官网:http://www.rpmfind.net/
结合自己所使用的系统版本可以查询缺少的文件属包的名称

安装方法

yum安装或rpm安装

rpm安装手动进行安装,自己解决包之间的依赖性

yum安装会自动判断依赖关系

RPM

在linux中,rpm全称“Red Hat Package Manager”,中文意思为“Red Hat软件包管理”,即Red Hat贡献出来的软件包管理工具;它是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中

RPM包获取方法
  • 各种网站,例如http://www.rpmfind.net/,http://mirrors.sohu.com,http://rpm.pbone.net/
  • 系统光盘
RPM包格式
[root@localhost home]# ls
unzip-6.0-21.el7.x86_64.rpmunzip   软件名
6.0     版本号
21      修订次数
e17     操作系统版本
x86_64  64位的操作系统
rpm     rpm包
RPM安装
rpm -ivh 软件包名
-i   安装
-v   显示详细信息
-h   显示安装进度rpm -ivh 软件包名 --force
--force 将安装过的软件重新安装一遍,一般用于个别配置文件丢失
rpm -ivh 软件包名 --test
--test  不真正安装,只是判断下是否能安装

RPM查询

rpm -qa 软件包名 查询已安装的软件包

rpm -qa |grep abc 查询软件包中含有abc的软件包

rpm -qi 软件包名 查询此软件的详细信息

rpm -qip 软件包名 查询未安装的软件包信息

rpm -ql 软件包名 查询已安装的软件中含的文件及文件的目录

rpm -qlp 软件包名 查询未安装的软件中包含的文件及文件的目录

rpm -qf 文件名 查询文件属于哪个RPM安装包(必须是RPM安装包里的文件)

[root@localhost home]# rpm -qa
rubygem-bigdecimal-1.2.0-36.el7.x86_64
firewalld-filesystem-0.6.3-11.el7.noarch
.....
...[root@localhost ~]# rpm -qa |grep unzip
unzip-6.0-21.el7.x86_64[root@localhost ~]# rpm -qi unzip
Name        : unzip
Version     : 6.0
Release     : 21.el7
Architecture: x86_64
....
..[root@localhost Packages]# rpm -qip zsh-5.0.2-34.el7_8.2.x86_64.rpm
Name        : zsh
Version     : 5.0.2
Release     : 34.el7_8.2
Architecture: x86_64
....
..[root@localhost Packages]# rpm -ql unzip
/usr/bin/funzip
/usr/bin/unzip
/usr/bin/unzipsfx
/usr/bin/zipgrep
....
..[root@localhost Packages]# rpm -qlp zsh-5.0.2-34.el7_8.2.x86_64.rpm
/bin/zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
....
..[root@localhost]~# rpm -qf /usr/bin/funzip
unzip-6.0-21.el7.x86_64
RPM升级

rpm -Fvh 软件包名 升级安装(安装过旧版本才会升级到新版本,如果没有安装过,就不会进行安装)

rpm -Uvh 软件包名 升级安装(安装过旧版本才会升级到新版本,如果没有安装过,就直接安装)

-U:升级软件,若未软件尚未安装,则安装软件-F:升级软件[root@localhost]/home# rpm -Fvh unzip-6.0-21.el7.x86_64.rpm [root@localhost]/home# rpm -Uvh unzip-6.0-21.el7.x86_64.rpm
f4a80eb5: NOKEY
准备中...                          ################################# [100%]软件包 unzip-6.0-21.el7.x86_64 已经安装
RPM卸载软件

rpm -e 软件包名

rpm -e 软件包名 --nodeps 不检测依赖性,直接强制卸载

验证

rpm -V 已安装的软件名 校验指定的软件包中的文件

rpm -Vf 系统文件名 校验某个系统文件是否被修改

  • . 表示所验证属性一致;

  • S表示文件大小被修改

  • M表示文件的类型或者权限被修改

  • 5表示文件内容被修改

  • D表示设备的主副码被修改

  • L表示路径被修改

  • G表示所属组被修改

  • T表示文件修改时间被改变

YUM

yum,全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上可以通过 360 软件管家实现软件的一键安装、升级和卸载,Linux 系统也提供有这样的工具,就是 yum

使用YUM进行RPM包的管理,非常简单方便

优点
  1. 方便,只要一条命令,剩下你什么都不用做了,自己帮你判断依赖安装

  2. 快,只要源网络好,你的网络也快,那么安装是很快的时间,不会像源码安装那样久。

  3. 升级方便

YUM的安装

Centos默认安装了yum,不需要另外安装

YUM的配置文件

主要配置文件:/etc/yum.conf

主配置文件配置了一个特殊的仓库,名称为main。main是为其他仓库提供默认的全局配置的

[main]                                          # main 仓库,[]表示定义仓库的名称是什么
cachedir=/var/cache/yum/$basearch/$releasever     # RPM包的缓存位置
keepcache=0                                   # RPM包在本地是否需要长期保存
debuglevel=2                                  # 日志级别 范围为0-10
logfile=/var/log/yum.log                      # 日志文件
exactarch=1                                   # 下载的RPM包是否需要与本地平台完全匹配
obsoletes=1                                   # 允许更新陈旧的RPM包
gpgcheck=1                                    # 校验rpm包的来源是否有效和安全
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
默认的CentOSYUM源

/etc/yum.repos.d/xxxx.repo

CentOS自带的这些配置文件中,其实只有CentOS-Base.repo文件有效。按照需求,这些文件可以删除,或改名,或自己建立一个.repo的配置文件。实际使用中,可以参考CentOS-Base.repo的配置自定义.repo文件。

查看CentOS-Base.repo配置文件

CentOS-Base.repo配置文件参数说明

[ ... ]:仓库的名称,不能重复。name:对仓库的描述,该项必须有。baseurl:配置仓库的路径,用于指定一个url。mirrorlist:指向一个镜像列表,里面有多个url。enabled:是否启用当前仓库,值为1或0,默认为1。gpgcheck:是否校验rpm包的来源是否有效和安全,值为1或0,默认为1。gpgkey:验证RPM包的密钥文件路径,该文件可以在远处服务器上,也可以在本地。cost:代价,其本质是仓库优先级的配置,值越低,表示访问的代价越低,也即优先使用

注意:配置文件中的"="号的前后不能有空格。

YUM命令的使用

语法

yum [options] [subcommand] [package ...]

yum 选项 子命令 软件包

yum显示信息

yum  list installed                # 只显示已安装的包
yum  list available                # 只显示没有安装,但可以安装的软件包
yum  list updates                  # 查看所有可更新的包
yum  list extras                   # 显示不属于任何仓库的,额外的包
yum  list obsoletes                # 显示废弃的包
yum  list recent                   # 新添加进yum仓库的包
yum list                           # 显示以及安装和未安装的软件包
yum list 软件包名                   # 显示软件包信息
仓库
yum  repolist                      # 查看当前能够使用的yum仓库
yum  repolist all                  # 查看所有的yum仓库
yum  repolist enabled              # 显示启用的仓库
yum  repolist disabled             # 显示禁用的仓库
包管理
yum info 软件包名                   # 显示软件包的详细信息
yum groupinfo <group_name>         # 显示软件组group信息

yum搜索 查询

yum search mysql                   # 查询软件包中带有mysql的软件包
yum deplist <package_name>           # 仅仅 查看程序rpm依赖情况查询某个文件是由哪个软件包的
yum provides  文件
yum whatprovides 文件

yum清空缓存

yum仓库若更新,则本地缓存就没有意义了。所以本地缓存需要清空。

命令格式:yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

手动在本地建立缓存

yum makecache

安装应用程序

yum install -y 软件包1 ...软件包n         #安装软件包
-y    表示安装过程中如果让你做出选择 yes/no  自动选择yes

注:若安装(卸载,升级)多个包,则使用包名之间使用空格隔开

重新安装软件包
yum reinstall -y 包1 ....包n  升级软件包
yum update 包1...包n
yum update-to 包-版本号      # 指定版本号检测可以升级的包
yum check-update 卸载软件包
yum remove 包1...包n
注意:若该包被依赖,则该卸载可能会导致一些问题,如A依赖B,若卸载B,则A也会被卸载本地安装升级RPM包
yum install rpm包路径
yum update rpm包路径
安装包组
yum groupinstall -y 包组1...包组n
卸载包组
yum groupremove -y 包组1...包组n

查看此前安装卸载等操作历史

命令:yum history

自己搭建一个yum仓库

yum仓库又称为yum源,yum仓库一般会支持ftp协议(ftp://),http协议(http://),文件协议(file://)

先把默认的repo文件给移走

[root@localhost ~]# mv /etc/yum.repos.d/* /media/

挂在Centos镜像文件

[root@localhost ~]# mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt/
mount: /dev/loop0 写保护,将以只读方式挂载
[root@localhost ~]# cp -rvf /mnt/* /opt/centos/

编写repo配置文件

配置完成后需要清空yum缓存
yum clean all    # 清空yum缓存
yum repolist     # 查看当前的可用的yum仓库
国内的yum源

阿里云yum镜像仓库

  1. 安装

首先把默认的yum源移走

mv /etc/yum.repos.d/* /media
  1. 下载对应的repo文件
wget -O /etc/yum.repos.d/aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 下载阿里云的镜像并重命名
  1. 清除缓存yum缓存
yum clean all
  1. 将服务器上的软件包信息,本地缓存
yum makecache

Linux软件包管理(安装、升级、卸载软件包,管理软件源)相关推荐

  1. Linux下Redis安装与配置 (yum 软件源下载安装)

    一.官网 官网地址:Redis redis命令中文解释网站:Redis 命令参考 - Redis 命令参考 二.linux版本:lsb_release -a 三.查看是否有可用的redis源:yum ...

  2. Ubuntu命令行下安装、卸载、管理软件包的方法

    一.Ubuntu中软件安装方法 1.APT方式 (1)普通安装:apt-get install softname1 softname2 -; (2)修复安装:apt-get -f install so ...

  3. 13. 软件包详解,rpm包的查找,安装,升级,卸载,验证等所有操作

    本小节会详细介绍linux中的软件包管理,涉及软件包的定义/安装/卸载/依赖等操作.以及会详细演示rpm这个非常重要命令的使用. 文章目录 前言 软件包 源码包 二进制包 源码包 VS二进制包 依赖性 ...

  4. Linux下RPM软件包的安装及卸载

    转自:https://os.51cto.com/art/201001/177866.htm 在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装.卸载及管理等操作.RPM 的全称为Redh ...

  5. rpm命令管理——安装升级与卸载

    rpm命令管理--安装升级与卸载 1.包全名和包名 包全名:一般用于安装和软件升级. 包名:安装好了,这时候就可以用包名. 2.RPM安装 功能:安装文件包 语法: rpm -ivh 包全名 ​ -i ...

  6. (个人笔记-无用勿喷)Windows软件包的安装与卸载

    Windows软件包的安装与卸载 windows安装软件的困惑 常见方式介绍 1 -- exe软件包 2 -- 微软官方 (2.1)自带应用商店 (2.2)Winget管理工具 3 -- 第三方包管理 ...

  7. Ubuntu命令行下安装,卸载软件包的过程

    一.Ubuntu中软件安装方法 1.APT方式 (1)普通安装:apt-get install softname1 softname2 -; (2)修复安装:apt-get -f install so ...

  8. Linux/deppin 中安装、卸载软件的几种命令

    title: Linux/deppin 中安装.卸载软件的几种命令 date: 2019-04-28 00:00:00 Linux/deppin 中安装.卸载软件的几种命令 1.在终端里 apt-ge ...

  9. windown下linux子系统的安装和卸载

    windown下linux子系统的安装和卸载 原文:windown下linux子系统的安装和卸载 安装 第一步  打开开发人员模式 第二步  勾选适用linux的window子系统 第三步  打开po ...

  10. linux卸载文件系统什么意思,Linux文件系统的安装和卸载

    本文介绍Linux文件系统的安装和卸载如何控制,以及当中需要了解的原理和注意事项.阅读本文之后,您将会了解如何安装您的 Linux 文件系统:配置和使用可移动 USB.IEE 1394 或其他设备:正 ...

最新文章

  1. 给django视图类添加装饰器
  2. dx:ASPxGridView 批量删除
  3. Non-Blind图像反卷积论文整理
  4. (五)开源IT资产管理系统--分发OCS客户端
  5. git的常用操作(个人整理使用)
  6. oracle数据库主键自增序列_Oracle数据库序列详解
  7. Mesos容器引擎的架构设计和实现解析
  8. 轨道病害视觉检测:背景、方法与趋势
  9. 著作权法(1分)18年5月考1分的概率大
  10. c++ break跳出几个循环_必须知道的C语言知识细节:break、continue语句区别
  11. 纯PHP实现定时器任务(Timer)
  12. Java Excel 列号数字与字母互相转换
  13. 利用定义求解传递闭包的关系矩阵
  14. dependencyManagement和dependencies区别
  15. GSM+GPRS通信模块SIM800C介绍
  16. 【转载】基于多层结构的网络游戏平台的研究与应用
  17. Python实现地图四色原理的遗传算法(GA)着色实现
  18. 设备管理——Spooling技术原理
  19. 利用Vultr主机安转宝塔Web面板搭建wordpress博客建站教程
  20. 《“边缘计算+”技术白皮书》发布!

热门文章

  1. 人脸识别合集 | 10 ArcFace解析
  2. 6、vector深度探析
  3. 回归一年,诺基亚只能手机销量未达千万,需要改变策略
  4. Java中double类型精度丢失的问题_double类型数据加减操作精度丢失解决方法_BigDecimal取整
  5. python程序设计基础李东方答案_李东方python程序设计基础答案
  6. 【转载】Best Practices for Speeding Up Your Web Site
  7. CUDA安装失败问题解决(windows)
  8. java程序设计 雍_Java程序设计
  9. comsol分析时总位移代表什么_comsol求解波动方程.ppt
  10. 哔哩哔哩视频如何自定义适应移动端