如何指定要安装包的存储库?(emacs-snapshot)

如何指定要安装包的存储库?(emacs-snapshot)

我想从http://emacs.orebokech.com 但是 Ubuntu 的存储库中已经有 emacs-snapshot了。

我如何指定要安装包的存储库?

答案1

您可以使用选项指定存储库-t。例如,我添加了以下存储库来/etc/apt/sources.list安装 Iceweasel 最新版本:

deb http://mozilla.debian.net/ squeeze-backports iceweasel-release

iceweasel如你所知,官方 Debian 存储库中有一个相同的软件包。如果我想从这个特定的存储库安装 Iceweasel,我运行:

apt-get install -t squeeze-backports iceweasel

来自 apt-get 手册页:

-t, --target-release, --default-release
           This option controls the default input to the policy engine, it creates a default pin at priority 990 using the specified
           release string. This overrides the general settings in /etc/apt/preferences. Specifically pinned packages are not affected by
           the value of this option. In short, this option lets you have simple control over which distribution packages will be retrieved
           from. Some common examples might be -t '2.1*', -t unstable or -t sid. Configuration Item: APT::Default-Release; see also the
           apt_preferences(5) manual page.

我认为这是一个更好的解决方案,

资料来源:https://askubuntu.com/questions/27362/how-to-only-install-updates-from-a-specific-repository/57749#57749

答案2

我找到了一个解决方法。首先,我需要找到包含该软件包的存储库:

$ apt-cache showpkg emacs-snapshot
Package: emacs-snapshot
Versions: 
1:20100111-1~lenny1 (/var/lib/apt/lists/emacs.orebokech.com_dists_lenny_main_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/emacs.orebokech.com_dists_lenny_main_binary-amd64_Packages
                  MD5: 906df684c212eabe267e6b5c2e8c2032

1:20090909-1 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_universe_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_universe_binary-amd64_Packages
                  MD5: 906df684c212eabe267e6b5c2e8c2032


Reverse Depends: ...
...

在里面版本:部分。我看到了来自不同存储库的版本:

  • 1:20100111-1~lenny1
  • 1:20090909-1

所以现在我们只需告诉 apt 或 aptitude 安装该特定版本:

$ sudo aptitude install emacs-snapshot=1:20100111-1~lenny1

包裹名字=版本名称

胜利。

我仍然不知道如何使用特定的存储库。但在这种情况下,特定版本就足够了。

答案3

当我想要的包 ( helm) 有一个被 Kubernetes 包管理器和 KX Studio 的音乐 VST 乐器使用的名称时,我遇到了这个问题。

我的源列表中有两个存储库,但由于 KX Studio 的helm版本号较高,要求apt安装它会导致安装“错误”的软件包(因为我想要 Kubernetes 软件包管理器)。这是一个更大的问题,因为我的发行版即使在安装了我想要的软件包后仍不断试图让我“升级”到错误的软件包。

我通过创建/etc/apt/preferences包含以下内容的文件进行了调整,解决了该问题:

Package: helm
Pin: origin "baltocdn.com"
Pin-Priority: 999

如果您想了解有关其他选项的更多详细信息,请继续阅读man apt_preferences。请注意,baltocdn.com 是我想要的 helm 包的存储库,因此您可以将包名称和来源替换为您想要的任何内容。更新后apt,它不再希望将我升级到错误的包版本!

答案4

在我的例子中,我添加了apt-getInkscape 开发流的存储库。以下是我添加 Inkscape 开发版本的步骤:

  1. 列出所有 repo 源
grep -r --include '*.list' '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/

在此处输入图片描述

  1. 选择一个 repo 源,并列出所有包(在我的情况下是 inkscape ppa)
grep -h -P -o "^Package: \K.*" /var/lib/apt/lists/ppa.launchpad.net_inkscape* | sort -u

在此处输入图片描述

  1. 安装特定包
sudo apt install -t hirsute inkscape-trunk

在此处输入图片描述

相关内容