http://emacs.orebokech.com からemacs-snapshotをインストールしたいのですが、Ubuntuのリポジトリにはすでにemacs-snapshotがあります。
パッケージをインストールするリポジトリを指定するにはどうすればよいですか?
-t
オプションでリポジトリを指定できます。例として、Iceweaselの最新リリースをインストールするために、次のリポジトリを/etc/apt/sources.list
に追加しました。
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: ...
...
Versions:セクション。さまざまなリポジトリからのバージョンが表示されます。
そのため、特定のバージョンをインストールするようにaptまたはaptitudeに指示するだけです。
$ Sudo aptitude install emacs-snapshot=1:20100111-1~lenny1
パッケージ名=バージョン名
勝利。
特定のリポジトリの使用方法はまだわかりません。しかし、この場合は特定のバージョンで十分でした。
Aptの設定ファイルがあります。/etc/aptの下にあると思いますが、100%確実ではありません。そこで、リポジトリのパッケージの優先度を、Ubuntoリポジトリの同じパッケージの優先度よりも高く設定できます。正確な構文については、man apt-getで調べてください。ファイルを編集し、apt-getを使用して通常どおりインストールします。優先度が最も高いOriginからフェッチされます。そのリポジトリからのパッケージがディストリビューション(たとえば、debianバイナリが間違った場所で依存関係を探す可能性がある)とカーネルバージョン(これはUbuntuバージョンのライフサイクル全体で頻繁に変更される)に対してコンパイルされていることを事前に確認してください。そうでなければ、それがうまくいくかどうかは偶然の問題です。