PPAに高い優先度を割り当てます


13

あるPPAに別のPPAよりも高い優先度を割り当てる方法を見つけようとしています。私はこのフォーラムでたくさんの答えを見ましたが、どれも私の問題を解決しませんでした。

一部のサーバーには2つのPPAソースがあり、それらはの個別のファイルに保存されています/etc/apt/sources.list.d。これらのリポジトリのいくつかは、同じパッケージ(名前の点では)を提供しますが、異なるバージョンと異なるバイナリを提供します。あるレポを別のレポに優先させる方法はありますか?

私はapt_preferencesチュートリアルを読みましたが、これ以上わかりにくくすることはできず、私の質問に対する答えが見つかりませんでした。これが状況です。次のソースがあります。

$ ls -l /etc/apt/sources.list.d 
total 12
-rw-r--r-- 1 root root 66 Jan  2 16:50 nginx-source.list
-rw-r--r-- 1 root root 84 Jan  2 16:49 ruby-ng-experimental-source.list

どこnginx-source.list内容は次のとおりです。

deb     http://ppa.launchpad.net/nginx/stable/ubuntu precise main

そしてruby-ng-experimental-source.list内容は次のとおりです。

deb     http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu precise main

これらのソースは両方とも、異なるバージョンなどのnginx-fullパッケージを提供します。優先順位をリストすると、ruby-ng-experimental-source.listが出力の上にあるため、nginx-fullがそのリポジトリからインストールされます。

$ apt-cache policy nginx-full                                 
nginx-full:
  Installed: 1:1.2.3-1~38~precise1
  Candidate: 1:1.2.6-1~43~precise1
  Version table:
     1:1.2.6-1~43~precise1 0
        500 http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu/ precise/main amd64 Packages
 *** 1:1.2.3-1~38~precise1 0
        100 /var/lib/dpkg/status
     1.4.1-1ppa0~precise 0
        500 http://ppa.launchpad.net/nginx/stable/ubuntu/ precise/main amd64 Packages
     1.1.19-1ubuntu0.1 0
        500 http://mirror.rackspace.co.uk/ubuntu/ precise-updates/universe amd64 Packages
     1.1.19-1 0
        500 http://mirror.rackspace.co.uk/ubuntu/ precise/universe amd64 Packages

nginx-source.listにリストされているリポジトリを、リストの一番上にあるリポジトリよりも優先するにはどうすればよいですか?私はこのようなことを試しました:

$ cat /etc/apt/preferences
Package: nginx-full
Pin: origin http://ppa.launchpad.net/nginx/stable/ubuntu
Pin-Priority: 1000

Package: nginx-full
Pin: origin http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu
Pin-Priority: 100

しかし、それは両方のソースの優先順位を同じ数に変更しました-またはそのようなもの?したがって、これは優先順位を変更しておらず、nginx-fullはまだbrightbox PPAからインストールされています

$ apt-cache policy nginx-full  
nginx-full:
  Installed: 1:1.2.3-1~38~precise1
  Candidate: 1:1.2.6-1~43~precise1
  Package pin: (not found)
  Version table:
     1:1.2.6-1~43~precise1 1000
        500 http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu/ precise/main amd64 Packages
 *** 1:1.2.3-1~38~precise1 1000
        100 /var/lib/dpkg/status
     1.4.1-1ppa0~precise 1000
        500 http://ppa.launchpad.net/nginx/stable/ubuntu/ precise/main amd64 Packages
     1.1.19-1ubuntu0.1 1000
        500 http://mirror.rackspace.co.uk/ubuntu/ precise-updates/universe amd64 Packages
     1.1.19-1 1000
        500 http://mirror.rackspace.co.uk/ubuntu/ precise/universe amd64 Packages

誰も私がやろうとしていることを達成する方法を知っていますか?

回答:


15

以下に例を示します /etc/apt/preferences

mint@mint ~ $ cat /etc/apt/preferences
Package: *
Pin: release o=linuxmint
Pin-Priority: 700

Package: *
Pin: origin packages.linuxmint.com
Pin-Priority: 700

Package: *
Pin: release o=Ubuntu
Pin-Priority: 500

おそらくapt-get updateファイルを作成した後に実行する必要があります。


/etc/apt/preferences.d/は存在しますが、空のディレクトリですが、13.04には/ etc / apt / preferencesは存在しません。
さらに別のユーザー

1
ファイルには、あなたはそれを作成する在庫されていない
GM-スクリプトライター-62850

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.