嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > 什么是Linux软件包,如何管理它们

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

点击下方名片关注公众号

什么是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 发行版在包管理工具、方式和形式都大同小异,但却还是有平台差异:

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


如何管理Linux软件包

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

0x01

dpkg管理工具

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

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

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

0x02

apt管理工具

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

常见命令示例如下:

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

常见命令示例如下:

apt-cache search pkg   #搜索内容
apt-cache show pkg    #显示有关软件包的本地缓存信息
apt-cache policy pkg   #可以获取软件包当前的安装状态
apt-cache depends pkg  #检查软件包的依赖关系


往期推荐

● 

● 

● 

● 

● 

● 

● 

● 

扫二维码|关注我们

微信号|andyxi_linux

专注于嵌入式开发技术

分享、在看与点赞

只要你点,我们就是胖友