通过安装软件时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在终端窗口中输入。
可以在这里找到文件管理指南