it-swarm-ja.com

パッケージをインストールするリポジトリを指定するにはどうすればよいですか? (emacs-snapshot)

http://emacs.orebokech.com からemacs-snapshotをインストールしたいのですが、Ubuntuのリポジトリにはすでにemacs-snapshotがあります。

パッケージをインストールするリポジトリを指定するにはどうすればよいですか?

32
elviejo79

-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.

私はこれがより良い解決策だと思います、

ソース:https://askubuntu.com/questions/27362/how-to-only-install-updates-from-a-specific-repository/57749 #57749

25
hukko

回避策を見つけました。最初に、パッケージが含まれているリポジトリを見つける必要がありました。

$ 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:セクション。さまざまなリポジトリからのバージョンが表示されます。

  • 1:20100111-1〜lenny1
  • 1:20090909-1

そのため、特定のバージョンをインストールするようにaptまたはaptitudeに指示するだけです。

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

パッケージ名=バージョン名

勝利。

特定のリポジトリの使用方法はまだわかりません。しかし、この場合は特定のバージョンで十分でした。

15
elviejo79

Aptの設定ファイルがあります。/etc/aptの下にあると思いますが、100%確実ではありません。そこで、リポジトリのパッケージの優先度を、Ubuntoリポジトリの同じパッケージの優先度よりも高く設定できます。正確な構文については、man apt-getで調べてください。ファイルを編集し、apt-getを使用して通常どおりインストールします。優先度が最も高いOriginからフェッチされます。そのリポジトリからのパッケージがディストリビューション(たとえば、debianバイナリが間違った場所で依存関係を探す可能性がある)とカーネルバージョン(これはUbuntuバージョンのライフサイクル全体で頻繁に変更される)に対してコンパイルされていることを事前に確認してください。そうでなければ、それがうまくいくかどうかは偶然の問題です。

1
rumtscho