Я хочу установить emacs-снимок с http://emacs.orebokech.com, но в репозиториях Ubuntu уже есть emacs-снимок.
Как я могу указать репозиторий, из которого будет установлен пакет?
Я хочу установить emacs-снимок с http://emacs.orebokech.com, но в репозиториях Ubuntu уже есть emacs-снимок.
Как я могу указать репозиторий, из которого будет установлен пакет?
Вы можете указать хранилище с опцией -t
. Например, я добавил следующий репозиторий в /etc/apt/sources.list
для установки последней версии Iceweasel:
deb http://mozilla.debian.net/ squeeze-backports iceweasel-release
Как вы знаете, в официальном репозитории Debian есть такой же пакет iceweasel
. Если я хочу установить 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.
Я думаю, что это лучшее решение,
Я нашел обходной путь. Сначала мне нужно было найти репозитории, в которых был пакет:
$ 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: ...
...
В разделе Версии: Я вижу версии, которые приходят из разных репозиториев:
Итак, теперь мы просто сообщаем apt или aptitude для установки этой конкретной версии:
$ sudo aptitude install emacs-snapshot=1:20100111-1~lenny1
имя-пакета = имя- версии
Победа.
Я до сих пор не знаю, как использовать конкретный репозиторий. Но в этом случае конкретной версии было достаточно.
Есть файл настроек для apt. Я думаю, что он находится в /etc /apt, но не уверен на 100%. Там вы можете установить приоритет для пакета из хранилища, который будет выше, чем для того же пакета из хранилища Ubunto. Точный синтаксис смотрите в man apt-get. Отредактируйте файл, затем установите как обычно с помощью apt-get, он будет извлечен из источника с наивысшим приоритетом. Просто убедитесь, что пакет из этого репозитория скомпилирован для вашего дистрибутива (например, двоичный файл Debian может искать зависимости в неправильных местах) и для вашей версии ядра (это часто меняется в течение жизненного цикла версии Ubuntu). Иначе это случайность, если это сработает.