Minos Asked: 2015-01-18 05:51:22 +0800 CST2015-01-18 05:51:22 +0800 CST 2015-01-18 05:51:22 +0800 CST 使用包含相同软件包的 Ubuntu 版本更新安装的 .deb 软件包会怎样? 772 当你通过 .deb 手动安装一个包时,它不会被更新apt(另请参见这个问题),但是当你安装一个当前 Ubuntu 版本的存储库中不可用的包时会发生什么,但包含在较新的 Ubuntu 版本。当您升级到这个默认包含该软件包的新版本时,系统是否会: 意识到该软件包已经安装并以正确的方式更新它。 意识到该软件包已经安装,但将其保留在手动安装的版本上。 没有意识到安装了又安装了一遍,导致同一个包安装了两次。 以其他方式崩溃和燃烧? 如果后面的任何选项是正确答案,我该如何防止呢? apt 2 个回答 Voted Best Answer Florian Diesch 2015-01-18T06:28:59+08:002015-01-18T06:28:59+08:00 包管理器不关心包是否已被安装dpkg或apt。如果它在存储库中找到较新版本的软件包,则安装较新版本。 在您的情况下,这意味着如果新 Ubuntu 版本中的包具有更高的版本号,您的包将得到更新。 如果您不想更新您的包,请参阅“如何防止更新特定包? ”。 geoffmcc 2015-01-18T06:36:41+08:002015-01-18T06:36:41+08:00 也许只有某些来源具有更新能力。您发布的链接指出,当您使用 dpkg 安装时,它会绕过 apt,因此不会得到更新。 作为测试,我搜索了 Utopic (v0.10.25) 中可用的 nodejs 版本,然后使用 checkinstall 安装了 nodejs (v0.10.20) 我下载并解压然后运行: ./configure make sudo checkinstall -D 安装后我检查了版本,实际上是 0.10.20 然后我做了一个 sudo apt-get update sudo apt-get upgrade 并被告知节点被阻止 所以我试过了 sudo apt-get dist-upgrade 它更新了节点。之后我检查了版本,它报告了 0.10.25(可用于 Utopic 的版本) 所以我不确定是否只有一些手动安装的软件包会更新,或者它是否导致我使用 checkinstall 来制作 deb/install。 唯一奇怪的是,当我手动安装时,我检查了版本 node -v 但是自从使用apt更新后,现在我必须使用 nodejs -v 再一次,我使用 checkinstall 从源代码构建了一个旧版本 deb,并使用它更新到最新版本 sudo apt-get dist-upgrade
包管理器不关心包是否已被安装
dpkg
或apt
。如果它在存储库中找到较新版本的软件包,则安装较新版本。在您的情况下,这意味着如果新 Ubuntu 版本中的包具有更高的版本号,您的包将得到更新。
如果您不想更新您的包,请参阅“如何防止更新特定包? ”。
也许只有某些来源具有更新能力。您发布的链接指出,当您使用 dpkg 安装时,它会绕过 apt,因此不会得到更新。
作为测试,我搜索了 Utopic (v0.10.25) 中可用的 nodejs 版本,然后使用 checkinstall 安装了 nodejs (v0.10.20)
我下载并解压然后运行:
安装后我检查了版本,实际上是 0.10.20
然后我做了一个
并被告知节点被阻止
所以我试过了
它更新了节点。之后我检查了版本,它报告了 0.10.25(可用于 Utopic 的版本)
所以我不确定是否只有一些手动安装的软件包会更新,或者它是否导致我使用 checkinstall 来制作 deb/install。
唯一奇怪的是,当我手动安装时,我检查了版本
但是自从使用apt更新后,现在我必须使用
再一次,我使用 checkinstall 从源代码构建了一个旧版本 deb,并使用它更新到最新版本