通过安装软件时dpkg -i packageA.deb
,是否会packageA
自动下载并安装所需的依赖项?这与使用apt-get
或有aptitude
什么不同?
通过安装软件时dpkg -i packageA.deb
,是否会packageA
自动下载并安装所需的依赖项?这与使用apt-get
或有aptitude
什么不同?
Answers:
不,dpkg
仅安装一个软件包,这样做dpkg -i packageName.deb
只会安装此Deb软件包,并会通知您任何需要安装的依赖项,但不会安装它们,也不会进行配置,packageName.deb
因为很好...依赖项是不在那里。
apt-get
是一个软件包管理系统,用于处理基于Debian的Linux发行版上的Deb软件包安装。软件包管理系统是一组工具,可以帮助您轻松地安装,删除和更改软件包。所以apt-get
就像一个聪明人dpkg
。
我喜欢这样思考时间轴(以下只是我从经验上讲的内容。它只旨在让您对整个过程有所了解):
他们提出了一种将应用程序文件“存储”在“包”中的方法,以便可以轻松地安装它。因此,Deb包(.deb
扩展文件)诞生了。
一个
.deb
文件中包含了应用程序运行所需要的文件,以及(我喜欢叫它) “元数据”保存其他信息,如依赖应用需要的名字。如果要查看.deb
文件的内容,可以使用命令dpkg -c packageName.deb
,如果要查看此“元数据”信息,请使用命令dpkg -I pacakgeName.deb
(如果只希望查看依赖项,请执行dpkg -I packageName.deb | grep Depends
)。
他们需要一个工具来安装这些.deb
文件,因此他们想出了这个dpkg
工具。但是,此工具将仅安装.deb
文件,但不会安装其依赖项,因为它没有这些文件,并且也无权访问“存储库”来提取依赖项。
apt-get
,可以使上一点中的问题自动化。apt-get
基本上在底层dpkg
(我喜欢认为它apt-get
是的前端dpkg
),但是很聪明的一个会寻找依赖项并安装它们。它甚至查看当前安装的依赖项,并确定其他任何软件包都未使用的依赖项,并通知您可以删除它们。aptitude
然后来了。它使用库的apt-get
用途,并且实际上具有交互式UI(用户界面)。如果要查看此UI,只需aptitude
在终端中输入。那是 aptitude
。它利用库提供了更多的选择和特权apt-get
。例如,aptitude
将自动删除符合条件的软件包,同时apt-get
需要单独的命令来这样做。但是,最终,在做sudo aptitude install packageName.deb
应该至少是一样的sudo apt-get install packageName.deb
。可能会有一些我不知道的地方之间的细微差别,但是它们都将查找依赖项并完成所有这些工作。您可以在此处阅读答案,以获得有关aptitude
和之间差异的更多信息apt-get
。
另外,aptitude
没有超级牛的力量。
编辑:显然,确实如此。
aptitude -v[v[v[v[v]]]] moo
。
aptitude
默认情况下可能未安装。要安装它,请执行sudo apt-get install aptitude
或单击以下命令:aptitude。
以下信息并不能真正直接回答“ dpkg和aptitude / apt-get有什么区别? ”,但它有助于您了解大局。
gdebi
是另一个apt-get
和混合使用的工具aptitude
。当您使用它来安装.deb
软件包(gdebi packageName.deb
)时,它将识别丢失的依赖项,使用apt-get
进行安装,最后使用进行安装和配置dpkg
。它甚至具有一个简单整洁的GUI,可为您提供有关.deb
软件包,软件包中包含的文件以及需要安装哪些依赖项的信息。要查看此GUI,您可以这样做gdebi-gtk packageName.deb
。您可以gdebi
尝试通过安装sudo apt-get install gdebi
或单击以下命令进行尝试:gdebi。
我不想让任何人感到困惑,只是为了给您提供另一部分,还有另一种流行的Linux软件包格式称为RPM,其文件具有.rpm
扩展名。此软件包格式用于基于RPM的 Linux发行版(例如Red Hat,CentOS和Fedora)。他们使用命令rpm
安装软件包,并且yum
是软件包的前端,这是一个聪明的选择。因此,他们的.rpm
文件就是我们的.deb
文件,他们的rpm
工具就是我们的dpkg
工具,他们的yum
就是我们的apt-get
。
alien
是在.rpm
和.deb
包之间转换的工具。因此,如果您遇到了拥有.rpm
软件包的情况,并且想要在Ubuntu(或任何其他基于Debian的发行版)上进行安装,则可以使用命令alien rpm_packageName.rpm
将其转换为.deb
,然后使用进行安装dpkg
。您可以使用进行相反的操作(转换.deb
为.rpm
)alien -r packageName.deb
。
gdebi
(apt-get install gdebi-core
)将apt-get
/ aptitude
与混合使用dpkg
。用调用它,gdebi some_package.deb
它将分析其依赖项,调用apt-get
以安装缺少的依赖项,并在所有依赖项都得到满足后,再调用dpkg
以最终安装您的软件包。
alien
在.rpm
和之间转换程序包.deb
。这对于可用于RPM但不可用于DEB的软件包很有用(反之亦然)。例如,alien packagename.rpm
使其可用于Ubuntu。
通过apt-get
与/etc/apt/sources.list
文件并行运行来进行程序包管理。
apt-get install <package_name>
将新软件包安装到您的计算机上。
apt-get build-dep <package_name>
此命令搜索存储库并安装的构建依赖项。如果程序包不在存储库中,它将返回错误。
apt-get install <package1_name> <package2_name> <package3_name>
apt-get允许多个软件包安装。用空格分隔包装。
auto-apt run <command_string>
调用时,auto-apt命令会在缺少文件访问权限时自动安装软件包。如果程序尝试访问已知属于已卸载软件包的文件,则auto-apt将使用来安装该软件包apt-get
。此功能需要apt和sudo才能起作用。
aptitude
提供的功能性dselect
和apt-get
以及在任一方案所没有的许多附加特征。
aptitude
具有自己的外壳,可以通过键盘或鼠标激活该外壳,并在终端窗口中运行
aptitude build-dep <package>
-安装软件包的构建依赖性-这意味着编译(或构建)其源软件包所需的软件包。例如,许多软件包都需要debhelper
或autotools
要构建,但不需要运行它们。
是安装,构建,删除和管理Debian软件包的工具。链接
dpkg -i <package.deb>
在您的计算机上安装Debian软件包。据我从帮助文件中可以找到的信息,它没有安装任何依赖项。
有关详细信息,请dpkg --help
在终端窗口中输入。
可以在这里找到文件管理指南