rpm、dpkg、yum、apt-get详解
来源:互联网 发布:金属行情软件下载 编辑:程序博客网 时间:2024/06/01 08:15
在Linux下进行软件安装或者升级的时候,往往会Google到一些安装命令,包括
apt-get install *
dpkg -i *
yum install *
等等
执行之后软件安装了,也知道是在线安装了软件,但是这些命令背后做了什么,以及相互之间的关系和区别是什么?这是不清楚的,趁着清明写个博文总结之。
1 tarball(源码编译安装)
这是最早的软件安装方式,即通过源代码编译安装。所谓的 Tarball 文件,其实就是将软件的所有原始码文件先以 tar 打包,然后再以压缩技术来压缩。
Tarball 是一个软件包, 解压缩之后,里面的文件通常就会有:原始程序码文件;侦测程序文件 (可能是 configure 或 config 等档名);本软件的简易说明与安装说明 (INSTALL 或 README)。
一般通过:
./configure --prefix=*** --with-***makemake install
来进行安装。
执行configure脚本往往是在检测环境,包括是否有适合的编译器、操作系统平台、是否存在本软件依赖的库文件(如果默认查找路径有就直接使用,如果没有就需要通过--with-*来进行指定)。在检测完毕如果条件满足,则生成Makefile(来自于Makefile.in)。
make、make install在干什么就很简单了,执行makefile的obj,然后进行编译安装。
那么软件安装成功得到的结果是什么呢?一般linux上能够成功运行的软件包括:
- 二进制可执行文件,一般在/usr/bin或者/usr/local/bin或者自己通过./configure --prefix指定的/prefix/bin下面,这样在终端输入即可运行;
- 头文件。这个头文件用于当其他软件依赖自己的时候加入。一般在/usr/include或者/usr/local/include下面。
- 库文件。一般在/usr/lib或者/usr/local/lib或者/prefix/lib/下
- 配置文件。一般在/etc/下
- 其他文件,例如man page等,一般在/usr/share或者/usr/local/share等
来一个例子,curl软件的安装,得到的结果是prefix下的四个目录:/bin,/include,/lib,/share
2 dpkg与RPM
显然通过源码安装是比较...费劲的事情,如果依赖库很多,如果源码里面没有提供,那么就需要用户自己去安装,然后再编译源码的时候指定相应的路径。如果 Linux distribution 厂商能够针对自己的作业平台先进行编译等过程,再将编译好的 binary program 释出的话,那由於我的系统与该 Linux distribution 的环境是相同的,所以他所释出的 binary program 就可以在我的机器上面直接安装,这样就省略了configure、编译的过程。
2.1 介绍
通过这种方式安装的方式有两种:
2.1.1 dpkg
这个机制最早是由Debian Linux 社群所开发出来的,透过dpkg 的机制, Debian 提供的软件就能够简单的安装起来,同时还能提供安装后的软件信息。 只要是衍生于Debian 的其他Linux distributions 大多使用dpkg 这个机制来管理软体的, 包括B2D, Ubuntu 等等。
deb是Debian软件包格式,文件扩展名为.deb,跟Debian的命名一样,deb也是因Debra Murdock(Debian创始人Ian Murdock的前妻)而得名。 Debian包是Unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而成。 处理这些包的经典程序是dpkg,经常是通过apt来运作。通过Alien工具,可以将deb包转换成其他形式的软件包。
deb包本身有三部分组成:数据包,包含实际安装的程序数据,文件名为data.tar.XXX;安装信息及控制脚本包,包含deb的安装说明,标识,脚本等,文件名为control.tar.gz;最后一个是deb文件的一些二进制数据,包括文件头等信息,一般看不到,在某些软件中打开可以看到。
2.1.1 RPM
这个机制最早是由Red Hat 这家公司开发出来的,包括Fedora, CentOS, SuSE 等等知名的开发商都使用。
2.2 使用方法
2.2.1 安装
2.2.2 查询
rpm -qip pkgfile.rpm
rpm -qlp pkgfile.rpm
dpkg -I pkgfile.deb
dpkg -c pkgfile.deb
查询某软件是否安装rpm -q softwarename
rpm -qi softwarename
dpkg -l softwarename
dpkg -s softwarename
dpkg -p softwarename
2.2.3 移除
dpkg -r softwarename
dpkg -P softwarename
3 apt 与 yum
3.1 产生原因
虽然RPM与DPKG有效的解决的软件的安装,移除与查询的需求,但是在Linux上的软件管理还有一个很大的问题必须解决,就是各软件间的相依性(dependency)。 RPM与DPKG只能做到检查依赖,在安装或移除时告知相依性的不满足,接下来就需要使用者自行去找出所需的软件来安装。 这样的确是有点不方便,因此产生了前端工具软件APT及YUM。
YUM(Yellow dog Updater, Modified )是Yellow Dog Linux开发的。 Yellow Dog Linux是完全源于Red Hat,CentOS及Fedora的基本预设安装中即将YUM列入其内。
3.2 命令
3.2.1 apt
APT
安装:apt-get install packageName
移除:apt-get remove packageName
升级:apt-get update packageName
搜索相关包描述:apt-cache search packageName
显示更多描述细节: apt-cache show packageName
3.2.2 yum
查询
yum search packageName:查询与 packageName 有关的软件
yum info packageName:查询 packageName 软件的功能
安装/升级
yun install packageName
卸载
yum remove packageName
3.3 apt源
源就是当我们使用apt这个dpkg前端进行在线安装软件的时候,请求软件distribution的site。在/etc/apt/sources.list 文件中记录。
apt-get update来更新源,以获得新的软件包或者某个软件的升级
apt-get upgrade用来更新系统中已经安装了的软件包
- rpm、dpkg、yum、apt-get详解
- dpkg,apt-get,rpm,yum
- apt-get、yum、dpkg、rpm
- 软件包管理 rpm yum apt-get dpkg
- 软件包管理 rpm yum apt-get dpkg
- 软件包管理 rpm yum apt-get dpkg
- 初步了解RPM ,DPKG ,YUM ,APT-GET
- rpm/yum--dpkg/(apt-get、aptitude)
- apt-get、yum || rpm、dpkg介绍
- rpm与dpkg yum与apt-get详解,一看这个就知道这些个关系了
- rpm与dpkg yum与apt-get详解,一看这个就知道这些个关系了
- linux软件包管理 rpm yum dpkg apt-get
- dpkg、rpm 和 apt-get、yum 的区别及使用
- dpkg、rpm 和 apt-get、yum 的区别
- dpkg、rpm 和 apt-get、yum 的区别及使用
- Linux 包管理 yum / apt-get / rpm / dpkg / wget
- apt rpm dpkg yum等软件包管理工具
- apt/yum/rpm/dpkg 使用总结
- gtx1060+ubuntu1060折腾记忆
- table 小方法
- 第二周java作业
- android:windowSoftInputMode属性详解
- 2017/12/12 第五天培训
- rpm、dpkg、yum、apt-get详解
- 文章标题
- 倒计时js
- 实现第一个Struts2应用程序(一)
- 【C语言】查找_数据结构_练习
- 【Scikit-Learn 中文文档】无监督学习: 寻求数据表示
- jq初体验
- 热修复——Bugly让热修复变得如此简单
- 接口