ubuntu - linux下安装软件的区别

标签 ubuntu makefile apt-get dpkg

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 on-topic对于堆栈溢出。


6年前关闭。







Improve this question




对我来说,我知道在 ubuntu 中安装软件的三种方法。
首先是“apt-get install”,
接下来是“dpkg”,
最后一个是“./configure, sudo make ,sudo make install”。
但是谁能告诉我这三种方式的区别?

最佳答案

apt-getapt-get install将从您当前启用的存储库中下载并安装软件。默认情况下,这些通常包括您的发行版(在本例中为 Ubuntu)的在线软件存储库。

但是,您可能会将各种第三方存储库添加到它也会检查的存储库列表中。

这种方法的优点是可以通过单个命令轻松升级和删除软件包,并且您的所有软件都来自受信任的来源。

主要缺点是您可能想要安装的某些软件可能无法通过您的发行版的存储库获得。
dpkgdpkg -i类似于 apt-get install除了在线查找软件之外,它要求您希望安装的 DEB 包已经位于文件系统中可访问的位置。

这种方法的优点是,一旦安装了包,就可以通过apt-get 删除它。 ,就像您使用的包 apt-get安装。此外,您想要的软件的 DEB 文件可以通过可下载的 DEB 文件在线获得,但不在任何存储库中。

缺点是通过这种方法安装的大多数软件不能自动更新,您必须像安装初始软件包一样手动下载和安装任何更新的软件,并且作为单独的 DEB 文件下载的软件包可能很危险,并且与那些相比,本质上不太值得信赖通过受信任的存储库下载。
sudo make installsudo make install对于那些想要在他们的系统中以预打包格式不可用的软件的人来说,这通常是最后的选择。这是安装软件最危险的方式。当您运行此命令时,Make 脚本可以访问您的整个文件系统,并且可以在任何它认为有必要的地方添加或删除文件。这可能行得通,但文件也有可能最终出现在不适合您的发行版的地方。

当发行版的维护者通过发行版的存储库打包软件以供使用时,他们通常会调整构建脚本以将文件放置在不同的位置或在不同的位置查找依赖项。
sudo make install仅推荐给专家。只有当您绝对需要最先进的软件包版本或别无选择时,您才会这样做。

缺点很多。这是一个本质上不安全的操作,因此请确保您信任该软件包。鉴于 apt-getdpkg将检查依赖关系,您需要确保在自己构建软件时具有软件依赖关系。此外,如果您尝试安装的软件与已安装的软件包冲突,您将不会收到警告,而 apt-getdpkg会警告你冲突。最后,不能使用apt-getdpkg卸载通过 sudo make install 安装的程序.如果你想卸载这些程序之一,你最好希望制作它的人在他们的构建脚本中包含一个卸载目标。如果没有,您将不得不手动寻找并删除构建脚本添加到系统中的所有文件。

关于ubuntu - linux下安装软件的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31757459/

相关文章:

c - 交叉编译C代码时出错--未知类型名称 '__syscall_slong_t'

linux - 具有多个子目录的 Linux 内核模块的 Makefile

ubuntu - 在 ubuntu 上安装 Sublime (add-apt-repository 错误)

java - 找不到java类: NoClassDefFoundError: KTEngine (Kinetic Typography tool)

c++ - 构建包时出现 Cmake 错误

linux - apt-get 返回错误 "debconf: Perl may be unconfigured"/我如何真正理解 linux 错误

node.js - E : Unable to locate package npm

python - 为什么我的 WSL Ubuntu 指向不同的 Python 版本?

c# - C# 中的 UDP 适用于 Windows,但不适用于 Linux

linux - G++ 总是因对 _Unwind_GetIPInfo 的 undefined reference 而失败