一般来说linux系统主要分为两大类:
1.RedHat系列:Centos,Fedora等。Debian Linux首先提出“软件包”的管理机制---Deb软件包;
2.Debian系列:Ubuntu等。Redhat Linux基于这个理念推出了自己的软件包管理机制---Rpm软件包;
RedHat系列:
- 常见的安装包格式rpm包,安装rpm包的命令是“rpm -参数”
- 包管理工具yum
- 支持tar包
Debian系列:
- 常见的安装包格式deb包,安装deb包的命令是“dpkg -参数”
- 包管理工具apt-get
- 支持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/archives
2.安装后软件默认位置
/usr/share
3.可执行文件位置
/usr/bin
4.配置文件位置
/etc
5.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