我们通过 .deb 文件安装了很多软件,因为官方 ubuntu repo 中的软件版本非常老旧。但我只是想知道如何更新通过 .deb 文件安装的软件包。
一个特别的例子是 sonic-visualiser 官方 ubuntu 有 3 年前的 2.5 版本,而官方网站有 3.0.3 版本
答案1
免责声明:我想说的是,现在发行版鼓励用户安装软件的方式是apt
,使用包管理器来检查包之间的依赖关系是否完好,您可以对所有可以从源存储库列表中获取的软件发布更新。
虽然使用 .deb 包安装程序不会将存储库添加到 apt 以进行自动更新,但某些 .deb 安装会这样做:它们将存储库添加到 apt 以进行进一步更新,或者让您可以手动添加它们,然后安装软件。例如:“Visual Studio Code”。 https://code.visualstudio.com/docs/setup/linux
我从他们的网站上引用:
基于 Debian 和 Ubuntu 的发行版
为基于 Debian/Ubuntu 的发行版安装 Visual Studio Code 的最简单方法是下载并安装 .deb 包(64 位),可以通过图形软件中心(如果可用)或通过命令行进行安装:
sudo apt install ./<file>.deb
安装 .deb 包将自动安装 apt 存储库和签名密钥,以使用系统的包管理器启用自动更新。请注意,VS Code 下载页面上还提供 32 位和 .tar.gz 二进制文件。
还可以使用以下脚本手动安装存储库和密钥:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
然后更新包缓存并使用以下命令安装包:
sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install code # or code-insiders
编辑:这篇文章评论中的讨论始于一些人对使用要安装的文件路径调用 apt 感到困惑。虽然 apt 的强大功能是管理软件包并从 apt 获取的存储库列表中更新它们,但它也可以用于安装下载的软件包,如上例所示。也许它也可以与安装一起安装,效果dpkg -i
相同 - 我不知道。我能说的是,从上面的例子下载的包会获得签名,并使用签名的源存储库更新 apt 存储库列表。并且 Visual Studio 推荐安装的软件是 apt。
更一般地,apt、apt-get 和 apt-cache 是 APT 中包含的软件,它们是包管理器。apt
有一组与apt-get
和共同的命令apt-cache
,这些命令是广泛使用的包管理命令,分散在它们两者中。因此,apt 是一组通用的日常使用命令,因此应该更加用户友好。有关更多比较,请参阅这篇易读文章:https://itsfoss.com/apt-vs-apt-get-difference/。
相比之下,dpkg 是 APT 软件包管理器调用的另一个软件,用于指示要安装哪些软件包和哪些版本,以便系统上的软件包可以很好地交互,并且不会引起冲突。“虽然 dpkg 对单个软件包执行操作,但 APT 管理它们之间的关系(尤其是依赖关系),以及更高级别版本控制决策(发布跟踪和版本固定)的来源和管理。APT 的一个主要功能是它调用 dpkg 的方式——它对要安装或删除的软件包列表进行拓扑排序,并以最佳顺序调用 dpkg。在某些情况下,它会利用 dpkg 的 --force 选项。但是,只有在无法计算如何避免 dpkg 要求强制执行操作的原因时,它才会这样做。” -source:https://en.wikipedia.org/wiki/APT_(software)#Front-ends
答案2
下载较新的版本.deb
并安装,就像安装以前的版本一样。
不,您无法在正常过程中获得自动更新apt update && apt upgrade
;这就是存储库的用途。