假设我想要一个比当前操作系统版本可用的软件版本更新的软件,我该怎么办?
需要考虑的情况:
Per让我们编译一份规范问答列表,这是为以下内容提供规范答案的地方。答案应该是社区维基。
我正在尝试将最新版本的 Git 安装到我的 Debian Buster 机器上,但遇到了麻烦。Git 稳定版的最新版本是 2.20。我发现测试分支有正确的版本,但我在向后移植方面没有取得任何成功。我已经添加
deb http://deb.debian.org/debian/ buster-backports main contrib
deb-src http://deb.debian.org/debian/ buster-backports main contrib
Run Code Online (Sandbox Code Playgroud)
到/etc/apt/sources.list并完成sudo apt-get update,但每次我运行时sudo apt-get -t buster-backports install git我都会再次得到 2.20 。我也尝试过使用 apt-get 删除 git 然后安装它,但没有成功。有什么建议吗?
谢谢!
我有 Debian Jessie 并添加了向后移植(根据这些说明):
echo "deb http://http.debian.net/debian jessie-backports main contrib non-free" | sudo tee /etc/apt/sources.list.d/backports.list
Run Code Online (Sandbox Code Playgroud)
(我这样做是为了获得更新的内核,因为我需要它,用于笔记本电脑中的某些硬件。)
说明说什么都不应该发生,除非我明确要求反向移植包。例如apt-get -t jessie-backports install "package"。
但是,我现在似乎从 backports 加载了我的整个系统,并且卸载了一个软件包,因为它取决于更新到 back-ports 的某些内容的确切版本。
所以我的问题:
注意:这会获取来自 backports 的已安装软件包列表(并且格式可以传递给apt-get install,由于某种原因,sudo apt-get install在管道末端放置 echo 不起作用):
cat /var/log/dpkg.log.1 |grep -v linux | grep -v xserver | grep -v firmware | grep "status installed" | grep bpo | cut -d" " -f 5 | cut -d: -f 1 | xargs -i{} …Run Code Online (Sandbox Code Playgroud) 我tmux在我的 VPS 上更新了:
apt-get install -t squeeze-backports tmux -V
Run Code Online (Sandbox Code Playgroud)
并且需要回到以前的版本来恢复一些正在运行的会话,所以我去看看哪个版本tmux适合 Debian,然后降级为:
apt-get install tmux=1.3-2+squeeze1
Run Code Online (Sandbox Code Playgroud)
但是我花了很多时间来弄清楚这个特定的命令并寻找合适的版本。有没有自动获取稳定版的快捷方式?我尝试了不同的-t标志组合,但没有帮助。
更新(apt-cache policy tmux用于调试):
tmux:
Installed: 1.6-2~bpo60+1
Candidate: 1.6-2~bpo60+1
Version table:
*** 1.6-2~bpo60+1 0
200 http://www.backports.org/debian/ squeeze-backports/main amd64 Packages
100 /var/lib/dpkg/status
1.3-2+squeeze1 0
500 http://debian.newdream.net/ squeeze/main amd64 Packages
500 http://security.debian.org/ squeeze/updates/main amd64 Packages
Run Code Online (Sandbox Code Playgroud) 在 Debian Stretch 上,某些软件包仅在stretch-backports-sloppy. 存储库是stretch-backports-sloppy用来做什么的?sloppy和普通的有什么区别\xe2\x80\xa6-backports?
我想从以下位置安装 mesa 18 stretch-backports. 目前所有与台面相关的软件包都被标记为自动安装,我想保持这种状态。
如果我只是这样做
$ sudo apt upgrade -t stretch-backports
Run Code Online (Sandbox Code Playgroud)
它更新了台面,但也更新了太多其他程序。有没有办法只升级来自mesa源包的包?或者基于源包而不是二进制包的apt-pin?
我有一台运行 Debian stable 的机器,我想将库存内核更新为 backports 存储库中可用的最新内核。有许多与内核相关的软件包和虚拟软件包——执行此操作并升级适当的软件包的正确方法是什么?
我们正在使用 sbuild 为 Debian Jessie 构建我们的软件包,到目前为止它运行良好。
但是只有一个细节:我们想从 Jessie 向后移植存档中获取构建依赖项之一。
不过,我不知道如何配置 chroot 以从 backports 中提取该包(并且仅该包)。
我知道如何sources.list在 Debian 系统上配置 apt和 pinning 首选项,但在手册页sbuild(1)和sbuild.conf(5)手册页中找不到与添加存储库和固定软件包相关的任何内容。
我知道最好的解决方案是在 Debian wheezy 于 2018 年 5 月停产后升级服务器,但是有没有办法继续运行旧的 wheezy 实例并获得一些最小更新?
也许一些外部 apt-sources 仍然在某个地方得到维护?
我了解使用 backport 的原因是您可以在旧系统上运行更新的软件,而无需使用更新的(因此未经证实的)库。也就是说,较新的软件将由较旧的(经过认证的稳定)工具链构建。对于 Linux 内核(Debian 6 随附2.6.32并且向后移植的内核是2.6.38),为什么甚至有向后移植?我问是因为我认为内核没有库依赖项,所以从 Debian 的开发套件安装内核应该不会引起问题。