0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是Linux软件包,如何管理它们

嵌入式攻城狮 来源:嵌入式攻城狮 2023-02-06 14:59 次阅读

什么是Linux软件包

现代类 Unix 操作系统都提供了一个集中的软件包管理机制,以帮助用户搜索、安装和管理软件。而软件通常以包的形式存储在仓库中,对软件包的使用和管理被称为包管理。Linux 软件包的基本组成部分通常有:共享库、应用程序、服务和文档

0x01

软件包格式

deb软件包:由 Debian Linux 提出,Debian、Ubuntu等系统采用的软件包管理机制,将应用程序的二进制文件、配置文档、man/info帮助页面等文件合并打包在一个文件中,用户使用软件包管理器直接操作软件包,完成获取、安装、卸载、查询等操作 rpm软件包:由 RedHat 公司提出,Redhat、Centos、Fedora等系统采用的软件包管理机制,建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,自动分析软件包依赖关系

0x02

软件包命名

deb软件包的命名遵循以下约定

Filename-Version-Reversion.Architecture.deb

软件名称 Filename

软件版本 Version

修订版本 Reversion

体系架构 Architecture

rpm软件包的命名遵循以下约定:

Filename-Version-Reversion.OS.Architecture.rpm

软件名称 Filename

软件版本 Version

修订版本 Reversion

操作系统 OS

体系架构 Architecture

通过了解软件包的命名规则,就能知道软件包所适用的环境了

0x03

软件包管理工具

大多数流行的 Linux 发行版在包管理工具、方式和形式都大同小异,但却还是有平台差异:

8694bcca-a3d4-11ed-bfe3-dac502259ad0.png

使用软件包管理工具安装软件后,常见的安装位置如下图所示

86a9acb6-a3d4-11ed-bfe3-dac502259ad0.png

如何管理Linux软件包

Linux软件包管理通常不仅限于软件的一次性安装,还包括了对已安装软件包进行升级的工具。下面以 Ubuntu 系统为例介绍如何管理Linux软件包

0x01

dpkg管理工具

dpkg命令一般在直接安装现成.deb包时使用,常见命令如下:

dpkg-i#安装一个存在本地的Deb软件包
dpgk-r#移除一个已经安装的软件包
dpkg-P#移除已安装软件包及配置文件
dpkg-L#列出安装的软件包清单
dpkg-s#显出软件包的安装状态

dpkg命令可用于安装、编译、卸载和查询Deb软件包。但是不能主动从镜像点获取软件包,且安装时无法检测软件包的依耐关系

0x02

apt管理工具

apt 是最常见的包操作命令,在Ubuntu中 apt 采用集中式的软件仓库机制,将各式各样的软件包分门别类地存在软件仓库中,然后将软件仓库置于不同的镜像服务器中,并保持基本一致,对于用户而言,这些镜像服务器就是他们的软件源 在Ubuntu中,软件源文件/etc/apt/sources.list中列出了软件源镜像站点地址。但这些镜像站点中所具有的软件资源并不清楚,可使用apt-get update命令扫描每一个软件源服务器,为该服务器里的软件包资源建立索引文件,并存放在本地的/var/lib/apt/lists目录中 apt-get命令:主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。命令格式如下表示:

86bc6130-a3d4-11ed-bfe3-dac502259ad0.png

常见命令示例如下:

apt-getupdate   #更新本地存放的软件包仓库列表
apt-getupgrade#升级已安装的包,仅升级已安装的软件包
apt-getdist-upgrade#升级已安装的包,可添加或删除程序包,以满足新的依赖
apt-getinstallpkg#从软件仓库安装包
apt-getcheck    #检查软件包依赖关系
apt-get-finstall#修复软件包依赖关系
apt-get--reinstallinstall#重新安装软件包
apt-getremovepkg   #不完全卸载,会删除与该软件包有依赖关系的软件包
apt-get--purgeremovepkg#完全卸载,卸载软件包时,还删除该软件包配置文件
apt-getclean          #清理整个软件包缓冲区
apt-getautoclean       #按照依赖关系清理缓冲区中多余的软件包
apt-cache命令:可以从本地APT文件中查询和显示有关包的可用信息,包括包名称、描述、版本、依赖项、repo和维护者信息等。命令格式如下表示:

86d4d58a-a3d4-11ed-bfe3-dac502259ad0.png

常见命令示例如下:

apt-cachesearchpkg #搜索内容
apt-cacheshowpkg  #显示有关软件包的本地缓存信息
apt-cachepolicypkg #可以获取软件包当前的安装状态
apt-cachedependspkg #检查软件包的依赖关系

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10991

    浏览量

    206736
  • 操作系统
    +关注

    关注

    37

    文章

    6284

    浏览量

    121883
  • UNIX
    +关注

    关注

    0

    文章

    295

    浏览量

    41060
  • 软件包
    +关注

    关注

    0

    文章

    90

    浏览量

    11320
  • 管理工具
    +关注

    关注

    0

    文章

    23

    浏览量

    7535

原文标题:什么是Linux软件包,如何管理它们

文章出处:【微信号:嵌入式攻城狮,微信公众号:嵌入式攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    xilinx ise10.1软件包

    本人也是找了好久才找到的,就是软件包比较大,现在把软件包种子上传,希望对有需要的人有所帮助。
    发表于 05-09 17:25

    rpm软件包使用

    1-8-rhel7-软件包管理
    发表于 08-09 09:56

    OneNET软件包怎么使用?

    OneNET软件包使用指南
    发表于 03-30 07:08

    RTTHREAD软件包目录推荐

    RTTHREAD软件包目录这边统计下RTTHREAD软件包的各项内容IOT名技术标签依赖平台备注abup_fotaOTATCP/UDP本软件包是用于 Abup FOTA 升级的固件下
    发表于 07-02 06:57

    介绍RT-Thread的软件包

    学习要点介绍 RT-Thread 的软件包;简介 nRF24L01 软件包的使用,讲解如何使用此软件包将数据正确发送和接收;学习线程间的通信,IPC 的使用,即获取温度的线程 A 与无线发送数据
    发表于 07-27 06:07

    命令终端的常用操作有哪些?软件包管理机制是什么

    软件包redhat Linux提出的软件包管理机制—Rpm软件包2.为什么用软件包管理?之前的阶段,li
    发表于 12-21 06:38

    linux编译中升级gcc无法定位软件包libmpfr4请问怎么解决

    A40i板子在第四章linux编译篇4.3安装 依赖中升级gcc安装依赖是出现无法定位软件包libmpfr4,请问怎么解决?请问您解决了吗?我用了链接里的方法还是无法定位。想问一下,gcc的版本必须要是4.8吗请问开发环境在哪
    发表于 01-04 07:06

    OK10xx-linux-fs.tar.bz2软件包中缺少文件

    你好! OK10xx-linux-fs.tar.bz2 软件包中 缺少文件:在目录 /home/forlinx/work/OK10xx-linux-fs/flexbuild/packages
    发表于 01-05 06:27

    软件包怎么使用

    RT-thread有很多实用的软件包,包含网络、IOT、外设、系统等多个方面,对于项目的快速开发或者评估来说是非常方便的。但不是所有软件包都是友好的,因为有些软件包是第三方贡献的,软件
    发表于 01-21 07:53

    zFTP软件包的位置打开与使用方法介绍

    zFTP软件包实现了一个FTP客户端功能,使用此软件包可以实现从FTP服务器上面下载或上传文件。软件包的开源仓库:zFTP,同时软件包已经加入到rt thread的
    发表于 06-01 11:28

    开源实习经验分享:openEuler软件包加固测试

    进行加固测试。openEuler 社区按照不同的 SIG(Special Interest Group) 来组织,以便于更好管理和改善工作流程。软件包加固测试相关工作则由SIG-QA团队负责
    发表于 07-01 14:29

    KAN252使用软件包进行产品生命周期管理

    本应用笔记介绍了软件包如何在整个产品生命周期管理(PLM)过程中为您提供帮助。 本文解释了软件包的主要优点,并将其与PLM联系起来。 使用Pack概念的高级版本控制功能有助于更快地开发应用程序,并最终降低维护成本。
    发表于 09-04 06:13

    linux基础(软件包管理)

    介绍linux软件包主要的安装方式:1 命令行安装 2 图像界面安装 3 源代码编译安装等
    发表于 03-25 14:01 3次下载

    Linux教程之如何进行软件包管理

    软件包管理器(RPM)是开放打包系统,在Red Hat Linux 里,因为有了Red Hat PackageManager(Red Hat 软件包管理器),而使得安装和升级软件包轻松
    发表于 11-30 16:36 6次下载

    Linux中如何查找软件包版本

    中找到软件包版本,例如 Alpine Linux、Arch Linux 及其衍生产品、Debian 及其衍生产品、RHEL 及其衍生产品。
    的头像 发表于 05-12 16:33 2652次阅读