嵌入式学习笔记(七) --Ubuntu之Deb软件包管理

2019-07-12 21:45发布

一般来说linux系统主要分为两大类:1.RedHat系列:Centos,Fedora等。Debian Linux首先提出“软件包”的管理机制---Deb软件包;2.Debian系列:Ubuntu等。Redhat Linux基于这个理念推出了自己的软件包管理机制---Rpm软件包;
RedHat系列:
  1. 常见的安装包格式rpm包,安装rpm包的命令是“rpm -参数”
  2. 包管理工具yum
  3. 支持tar包

Debian系列:
  1. 常见的安装包格式deb包,安装deb包的命令是“dpkg -参数”
  2. 包管理工具apt-get
  3. 支持tar包

笔者使用Ubuntu,这里主要记录Deb软件包管理的方法。

一、软件包的类型

Ubuntu有两种类型的软件包:二进制软件包(deb)和源码包(deb-src)
二进制软件包(Binary Packages):它包含可执行文件、库文件、配置文件、man/info页面、版权声明和其它文档。
源码包(Source Packages):包含软件源代码、版本修改说明、构建指令以及编译工具等。先由tar工具归档为.tar.gz文件,然后再打包成.dsc文件。

在用户不确定一个软件包类型时,可以使用file命令查看文件类型。
linux@ubuntu:~$ file g++_4.1.2-9ubuntu2_i386.deb g++_4.1.2-9ubuntu2_i386: Debian binary package (format 2.0)

二、软件包的命名,遵循以下约定:




三、软件包管理工具分类

根据用户交互方式的不同,可以将常见的软件包管理工具分为三类:
            类别         常见工具举例                   描述
  • 命令行        dpkg-deb、dpkg、apt       在命令行模式下完成软件包管理任务。为完成软件包的获取、查询、软件包                                                                         依赖性 检查、安装、卸载等任务需要使用各自不同的命令
  • 文本窗口界面   dselect、aptitude、tasksel      在文本窗口模式中,使用窗口和菜单可以完成软件包管理任务

  • 图形界面       synaptic                        在X-Window图形桌面环境中运行,具有更好的交互性、可读性、易用性等特点


四、使用dpkg或者是apt-get安装软件包

安装软件包dpkg -i package.deb     //安装本地软件包,不解决依赖关系apt-get install package  //在线安装软件包
移除软件包dpkg -r package       //删除软件包apt-get remove package  //同上dpkg -p package            //删除软件包及配置文件apt-get remove package --purge  //同上
软件安装后相关文件位置1.下载的软件包存放位置/var/cache/apt/archives2.安装后软件默认位置/usr/share3.可执行文件位置/usr/bin4.配置文件位置/etc5.lib文件位置/usr/lib

那么dpkg和apt的区别是什么呢?

  • dpkg只是用来安装本地软件包(deb包),但不解决模块的依赖关系。
  • apt-get是从网络服务器安装软件包的,它会解决依赖关系。
而且dpkg绕过apt包管理数据库对软件包进行操作,所以你用dpkg安装过的软件包用apt可以再安装一遍,系统不知道之前安装过了,将会覆盖之前dpkg的安装。sudo apt-get install ***之后,包的临时储存路径是/var/cache/apt/archives。
参考链接:https://blog.csdn.net/baidu_28149499/article/details/56307190
其他笔记:嵌入式学习笔记(一)  --Ubuntu开发环境搭建 :https://blog.csdn.net/feit2417/article/details/80738940
嵌入式学习笔记(二) --Ubuntu上配置vim编辑器和共享文件 : https://blog.csdn.net/feit2417/article/details/80738940嵌入式学习笔记(三) --Linux文件系统: https://blog.csdn.net/feit2417/article/details/80738940嵌入式学习笔记(四) --Linux文件和目录相关命令: https://blog.csdn.net/feit2417/article/details/80753329嵌入式学习笔记(五) --vi编辑器: https://blog.csdn.net/feit2417/article/details/80759402嵌入式学习笔记(六) --程序的编译和执行: https://blog.csdn.net/feit2417/article/details/80765177嵌入式学习笔记(七) --Ubuntu之Deb软件包管理https://mp.csdn.net/postedit/80781351