質問: ppaからパッケージをチェリーピッキングするにはどうすればよいですか? 追加したppaリポジトリからパッケージを選択する方法はありますか?つまり、一部を更新から除外し、他を含めるには?たとえば、just このリポジトリ からのchrome-browserパッケージが必要ですが、その他は必要ありません。そのため、sudo apt-get upgradeに、ppaの他の(クロムブラウザ以外の)パッケージを既存のパッケージの上にインストールさせたくありません。私はこれが依存関係を読み違え、含まれているものに必要なものを除外する場合に自分自身を撃つライセンスであることに気付きますが、この場合、他のパッケージはその依存関係ではないことを知っています。これはまったく可能ですか?ホワイトリスト/ブラックリストファイルなどがありますか?
回答: それを行う1つの方法が見つかりました。トリックは、twoピン留め句を使用することです。 1つ目はppaからのすべてのパッケージを禁止し、2つ目は必要なパッケージを選択します。したがって、上記の例では、最初に通常どおりppaを追加します。$ sudo add-apt-repository ppa:webapps/preview ... $ sudo apt-get update ... apt-cacheポリシーを実行すると、新しいバージョンのクロムブラウザーが利用可能であり、現在のクロムブラウザーと同じ優先度(500)であるため、アップグレードでインストールされることがわかります。$ sudo apt-cache policy chromium-browser chromium-browser: installed: 18.0.1025.168~r134367-0ubuntu0.12.04.1 candidate: 20.0.1132.47~r144678-0precise1+webapps3 version table: 20.0.1132.47~r144678-0precise1+webapps3 0 500 http://ppa.launchpad.net/webapps/preview/ubuntu/ precise/main amd64 packages *** 18.0.1025.168~r134367-0ubuntu0.12.04.1 0 500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/universe amd64 packages 500 http://security.ubuntu.com/ubuntu/ precise-security/universe amd64 packages 500 http://ppa.launchpad.net/chromium-daily/beta/ubuntu/ precise/main amd64 packages 100 /var/lib/dpkg/status 18.0.1025.151~r130497-0ubuntu1 0 500 http://us.archive.ubuntu.com/ubuntu/ precise/universe amd64 packages e: unable to parse package file /etc/apt/preferences.d/webapps-preview-pin-400 (1) $ そのパッケージに関しては素晴らしいことですが、このppaの他のユーザー(優先度500もあります)をインストールしたくありません。現在、アップグレードしようとすると、そのリポジトリから必要なクロムパッケージ以外のものを取得できます。$ sudo apt-get upgrade reading package lists... done building dependency tree reading state information... done the following packages have been kept back: bamfdaemon gwibber gwibber-service gwibber-service-facebook gwibber-service-twitter indicator-appmenu libbamf0 libbamf3-0 shotwell the following packages will be upgraded: chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg gwibber-service-identica indicator-messages indicator-status-provider-mc5 indicator-status-provider-pidgin libindicator-messages-status-provider1 8 upgraded, 0 newly installed, 0 to remove and 9 not upgraded. need to get 25.3 mb of archives. after this operation, 5,034 kb of additional disk space will be used. do you want to continue [y/n]? したがって、私ができることは、そのppaのすべてのパッケージ、この場合はwebapps-previewにlower優先度except名前に「クロム」が含まれているもの。このメカニズムは パッケージの固定 です/etc/apt/preferences.d/に2つの句を含むファイルを作成します。最初のものは、webapps-preview ppaのすべてのパッケージに通常のものよりも低い優先度を与えると言います(したがって、たとえそれらがnot優先される場合でもより高いバージョン番号。2番目の節は、そのppaの名前に「chromium」を含むパッケージに他のパッケージと同じ優先順位を付けて(より高いバージョン番号を持つことにより)インストールされると言うことで、最初の節を部分的にオーバーライドします.$ cat /etc/apt/preferences.d/webapps-preview-pin-400 package: * pin: release o=lp-ppa-webapps-preview pin-priority: 400 package: *chromium* pin: release o=lp-ppa-webapps-preview pin-priority: 500 「pin:release」オプションの正しい文字列を識別するために、再度apt-cacheポリシーを使用できます。$ apt-cache policy ... 500 http://ppa.launchpad.net/webapps/preview/ubuntu/ precise/main i386 packages release v=12.04,o=lp-ppa-webapps-preview,a=precise,n=precise,l=preview,c=main origin ppa.launchpad.net ... aptバージョン<0.8.14の場合、ワイルドカードが機能しないため、固定パッケージを明示的に指定する必要があります。$ cat /etc/apt/preferences.d/webapps-preview-pin-400 package: * pin: release o=lp-ppa-webapps-preview pin-priority: 400 package: chromium-browser chromium-codecs-ffmpeg chromium-browser-l10n chromium-codecs-ffmpeg-extra pin: release o=lp-ppa-webapps-preview pin-priority: 500 そして今、私がアップグレードしようとすると、私はそのppaから必要なパッケージのみを取得し、他のパッケージは取得しません。素敵なチェリーが私のために選ばれました:$ sudo apt-get upgrade reading package lists... done building dependency tree reading state information... done the following packages will be upgraded: chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg 3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. need to get 25.1 mb of archives. after this operation, 5,026 kb of additional disk space will be used. do you want to continue [y/n]?