Как я могу указать репозиторий, из которого будет установлен пакет? (Emacs-снимок)

27

Я хочу установить emacs-снимок с http://emacs.orebokech.com Но в репозиториях Ubuntu уже есть emacs-снимок.

Как я могу указать репозиторий, из которого будет установлен пакет?

elviejo79
источник

Ответы:

19

Вы можете указать хранилище с -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.

Я думаю, что это лучшее решение,

Источник: /ubuntu/27362/how-to-only-install-updates-from-a-specific-repository/57749#57749

hukko
источник
да, ваше решение лучше, чем мое.
elviejo79
1
Что если вы не хотите добавлять указанный источник в ваш список sources.list?
LittleNooby
12

Я нашел обходной путь. Сначала мне нужно было найти репозитории с пакетом:

$ 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

имя-пакета = имя- версии

Победа.

Я до сих пор не знаю, как использовать конкретный репозиторий. Но в этом случае конкретной версии было достаточно.

elviejo79
источник
1

Есть файл настроек для apt. Я думаю, что он находится в / etc / apt, но не уверен на 100%. Там вы можете установить приоритет для пакета из хранилища, который будет выше, чем для того же пакета из хранилища Ubunto. Точный синтаксис смотрите в man apt-get. Отредактируйте файл, затем установите как обычно с помощью apt-get, он будет извлечен из источника с наивысшим приоритетом Просто убедитесь, что пакет из этого репозитория скомпилирован для вашего дистрибутива (например, двоичный файл Debian может искать зависимости в неправильных местах) и для вашей версии ядра (это часто меняется в течение жизненного цикла версии Ubuntu). Иначе это случайность, если это сработает.

rumtscho
источник