短い答え:
APT設定ファイル/ etc / apt / preferencesを使用して、インストール用に選択するパッケージのバージョンを制御できます。
ここではファイルである/etc/apt/preferences
、apt-get
それは単一packgeの多くのバージョンがある場合は選択する必要がありますどのバージョン、決定するために使用しますが。これにより、ローカルリポジトリからのパッケージは、他のパッケージよりも優先されます。
パッケージ: *
ピン:原点 ""
ピン優先度:1001
これはバージョンを制御しませんが、両方のパッケージのバージョンが同じ場合はソース設定を制御します。ローカルリポジトリで同じパッケージバージョンに最高の優先度を割り当てる必要がある場合は、/etc/apt/sources.list
ファイルの上部にリストします>
元の質問への回答:
sources.listファイルを使用せずにローカルリポジトリに最高の優先順位を割り当てる方法は?
sources.list
ファイルを使用せずにローカルリポジトリに最高の優先順位を割り当てる方法はありません。ローカルリポジトリに最高の優先度を割り当てたい場合は、「sources.list」の先頭に配置する必要があります。
この質問に対する要約回答:
公式リポジトリから同じパッケージバージョンを再度ダウンロードする代わりに、apt-getにローカルリポジトリパッケージを優先させるにはどうすればよいですか?ローカルリポジトリは署名され、信頼されています。aptの優先設定を既に試しました。
/etc/apt/sources.list
ファイルを使用して、ローカルリポジトリの行をこのファイルの先頭に配置する必要があります。以下のような。
deb cdrom:[Kubuntu 12.04 LTS _Precise Pangolin_-Release i386(20120424)] /正確なメイン制限
debファイル:/ media / Main / Precise-Debs-New /
debファイル:/ media / Main / Linux-Software / Ubuntu / Precise /
deb http://archive.ubuntu.com/ubuntu正確なメインユニバース制限されたマルチバース
deb-src http://archive.ubuntu.com/ubuntu正確なユニバースメインマルチバース制限#software-propertiesにより追加
#deb cdrom:[Xubuntu 12.04 LTS _Precise Pangolin_-Release i386(20120423.1)] /正確なメインのマルチバース制限宇宙
#deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_-Release i386(20120423)] /正確なメイン制限
#deb http://archive.canonical.com/ubuntu正確なパートナー
#deb-src http://archive.canonical.com/ubuntu正確なパートナー
#deb http://extras.ubuntu.com/ubuntu precise main
#deb-src http://extras.ubuntu.com/ubuntu precise main
はい、「apt_preference」は、同じバージョンのパッケージのインスタンスを選択することとは関係ありません。ここでのポイントは、ローカルリポジトリに最高の優先度を割り当てることにより、ローカルリポジトリから/etc/apt/preference
ファイルを強制的に選択/使用するためにファイルを使用できないことです.deb
。そのファイル(設定)は、同じバージョンの特定のインスタンス(.debファイル)ではなく、特定のバージョンを選択するために使用されます。後者の場合、/etc/apt/sources.list
上記の方法でファイルを使用する必要があります。
説明:
私たち全員がapt_preference
目的を誤解しているようです、apt_preferenceマニュアルはこれを最初の3段落で説明しています!!
APT設定ファイル/ etc / apt / preferencesを使用して、インストール用に選択するパッケージのバージョンを制御できます。
sources.list(5)ファイルに複数のディストリビューションへの参照(安定版やテスト版など)が含まれている場合、パッケージのいくつかのバージョンをインストールできる場合があります。APTは、利用可能な各バージョンに優先順位を割り当てます。依存関係の制約に従い、apt-get(8)はインストールの優先度が最も高いバージョンを選択します。APTプリファレンスファイルは、APTがデフォルトでパッケージバージョンに割り当てる優先順位を上書きするため、ユーザーがインストール用に選択するものを制御できます。
そして、非常に重要なのは3番目の段落です
sources.list(5)ファイルに複数のソースへの参照が含まれている場合、パッケージの同じバージョンの複数のインスタンスが利用できる場合があります。この場合、apt-get(8)はsources.list(5)ファイルで最初にリストされたインスタンスをダウンロードします。APT設定ファイルは、インスタンスの選択には影響せず、バージョンの選択にのみ影響します。
これらの斜体は私のものです
例でこれを見てみましょう。
の正確なバージョンを持っていcompiz-fusion-plugins-extra
ますが、デモンストレーションのためにそれを無効にしました
ここではファイルである/etc/apt/preferences
、apt-get
それは単一packgeの多くのバージョンがある場合は選択する必要がありますどのバージョン、決定するために使用しますが。(この例でcompiz-fusion-plugins-extra
は、いくつかのバージョンがあります。
パッケージ: *
ピン:原点 ""
ピン優先度:1001
このファイルはapt-get
、異なるリポジトリに複数のバージョンがあるすべてのパッケージのローカルリポジトリからインストールするように指示します。
言い換えると、ローカルリポジトリにxapps
バージョンのある1.0
パッケージxapps
があり、同じパッケージがより高いバージョンのPreciseのリポジトリに存在する場合、たとえば2.0
、apt-get
ローカルリポジトリのバージョン、つまりversionを優先します1.0
。
これが私の/etc/apt/sources.list
ファイルです
deb http://archive.ubuntu.com/ubuntu正確なメインユニバース制限されたマルチバース
deb-src http://archive.ubuntu.com/ubuntu正確なユニバースメインマルチバース制限#software-propertiesにより追加
deb http://security.ubuntu.com/ubuntu/ precise-security universe main multiverse limited
deb http://archive.ubuntu.com/ubuntu exact-updatesユニバースメインマルチバース制限
deb http://archive.ubuntu.com/ubuntu precise-backportsユニバースメインマルチバース制限
#deb http://archive.canonical.com/ubuntu正確なパートナー
#deb-src http://archive.canonical.com/ubuntu正確なパートナー
#deb http://extras.ubuntu.com/ubuntu precise main
#deb-src http://extras.ubuntu.com/ubuntu precise main
deb file:/ media / Main / Linux-Software / Ubuntu / Oneiric / #this is oneiric repository。
debファイル:/ media / Main / Linux-Software / Ubuntu / Natty / natty /
debファイル:/ media / Main / Linux-Software / Ubuntu / Natty / kubuntu /
debファイル:/ media / Main / Linux-Software / Ubuntu / Natty / natty_new /
正確なリポジトリをファイルの前の方にリストしましたが、apt-get
そのリポジトリからパッケージを選択することはありません。マニュアルに記載されているとおり
APT設定ファイルは、インスタンスの選択には影響せず、バージョンの選択にのみ影響します。
そのため、コマンドの出力は次のapt-cache policy compiz-fusion-plugins-extra
ように予想されました
anwar @ edubuntu-lenovo:/ etc / apt $ apt-cache policy compiz-fusion-plugins-extra
compiz-fusion-plugins-extra:
インストール済み:(なし)
候補:0.9.5.94-0ubuntu1 / **優先度の低いバージョンを選択** /
バージョン表:
0.9.7.0〜bzr9-0ubuntu6 0
500 http://archive.ubuntu.com/ubuntu/ precise / universe i386パッケージ
0.9.5.94-0ubuntu1 0
1001ファイル:/ media / Main / Linux-Software / Ubuntu / Oneiric /パッケージ
0.9.4-0ubuntu3 0
1001ファイル:/ media / Main / Linux-Software / Ubuntu / Natty / natty /パッケージ
ここで、候補バージョンは0.9.5.94-0ubuntu1
、(ローカルリポジトリにある)ではなく0.9.7.0~bzr9-0ubuntu6 0
、excisesリポジトリにある。正確なものがsources.list
ファイルの最初にリストされていましたが。
ローカルリポジトリに最高の優先度を設定した後apt-get
にインストールしようとする実行例compiz-fusion-plugins-extra
。
anwar @ edubuntu-lenovo:〜$ sudo apt-get install compiz-fusion-plugins-extra
パッケージリストを読み込んでいます...完了
依存ツリーの構築
状態情報を読み込んでいます...完了
次のパッケージは自動的にインストールされ、不要になりました。
x11-apps x11-xfs-utils xinit x11-session-utils libfs6
それらを削除するには、「apt-get autoremove」を使用します。
次の追加パッケージがインストールされます。
compiz-core compiz-plugins-default compiz-plugins-extra
compiz-plugins-main-default libdecoration0 xserver-xorg-core
xserver-xorg-video-intel
推奨パッケージ:
compizconfig-settings-manager xfonts-100dpi xfonts-75dpi
次のパッケージは削除されます。
compiz compiz-gnome compizconfig-backend-gconf edubuntu-desktop
libcompizconfig0 ubuntu-desktop unity xorg xserver-xorg
xserver-xorg-input-all xserver-xorg-input-evdev xserver-xorg-input-mouse
xserver-xorg-input-synaptics xserver-xorg-input-vmmouse
xserver-xorg-input-wacom xserver-xorg-video-all xserver-xorg-video-ati
xserver-xorg-video-cirrus xserver-xorg-video-fbdev xserver-xorg-video-geode
xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-neomagic
xserver-xorg-video-nouveau xserver-xorg-video-openchrome
xserver-xorg-video-qxl xserver-xorg-video-r128 xserver-xorg-video-radeon
xserver-xorg-video-s3 xserver-xorg-video-savage
xserver-xorg-video-siliconmotion xserver-xorg-video-sis
xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident
xserver-xorg-video-vesa xserver-xorg-video-vmware
次の新しいパッケージがインストールされます。
compiz-fusion-plugins-extra compiz-plugins-extra
次のパッケージはダウングレードされます。
compiz-core compiz-plugins-default compiz-plugins-main-default
libdecoration0 xserver-xorg-core xserver-xorg-video-intel
0はアップグレード、2は新しくインストール、6はダウングレード、37は削除、698はアップグレードされていません。
0 B / 5,772 kBのアーカイブを取得する必要があります。
この操作の後、8,294 kBのディスク容量が解放されます。
続行しますか[Y / n]?
奇妙な!!!、新しく選択されたcompiz-fusion-plugins-extra
!!! と依存関係(Oneiricのものと一致する)を解決するために、すでにインストールされている正確なcompizパッケージをダウングレードしようとしています。
より危険なのは、新しいcompizesとの競合を避けるために、グラフィックドライバーパッケージ(xserver-xorg -....)を削除しようとしていることです。
(おそらく、ローカルリポジトリにも持っていれば、安全にダウングレードしたいかもしれません。しかし、それらのパッケージは通常インストールされているので、ダウンロードしなかったので、ローカルリポジトリにはありません。
結論:したがって、/etc/apt/preferences
ローカルシステムに完全なリポジトリがある場合は、ローカルリポジトリで使用することをお勧めします。
同じバージョンの複数のインスタンス(.debファイル)が多くのリポジトリに存在する場合はどうなりますか。
apt_preference
マニュアルで説明されている
sources.list(5)ファイルに複数のソースへの参照が含まれている場合、パッケージの同じバージョンの複数のインスタンスが利用できる場合があります。この場合、apt-get(8)はsources.list(5)ファイルで最初にリストされたインスタンスをダウンロードします。
/etc/apt/preferences
ファイルのユースケースの例:
apt-get
Ubuntuの標準ではなく、カスタムリポジトリから利用可能なバージョンを選択するように強制する例として、「Linux Mint」ディストリビューションがあります。このカスタムpreference
ファイルを使用します。
パッケージ: *
ピン:リリースo = linuxmint
ピン優先順位:700
パッケージ: *
ピン:origin packages.linuxmint.com
ピン優先順位:700
パッケージ: *
ピン:リリースo = Ubuntu
ピン優先順位:500
これにより、事実上、リポジトリにパッケージがある場合にパッケージが提供されます。しかし、それらがない場合は、Ubuntuの標準リポジトリを使用します。
apt-get
ローカルリポジトリに最高の優先度を設定した後に実行する例
kubuntu-desktop
UbuntuにパッケージをインストールしてKDEをテストしたかっただけです。(私はそれを忘れていました、私は/etc/apt/preference
ファイルを使用して設定をしました)。私はkubuntu-12.04-alternate-installerのisoを持っていたので、それを使用できると思いました。
(リポジトリソースとしてisoを適切に設定した後)、私は走り
sudo apt-get install kubuntu-desktop
、以下の出力を見て驚いた。
anwar @ edubuntu-lenovo:〜$ sudo apt-get install kubuntu-desktop
パッケージリストを読み込んでいます...完了
依存ツリーの構築
状態情報を読み込んでいます...完了
一部のパッケージをインストールできませんでした。これはあなたが持っていることを意味するかもしれません
不可能な状況を要求した場合、または不安定版を使用している場合
必要なパッケージがまだ作成されていないディストリビューション
または着信から移動されました。
次の情報は、状況の解決に役立つ場合があります。
次のパッケージには、満たされていない依存関係があります。
kubuntu-desktop:依存:language-selector-kdeがインストールされません
推奨:amarokがインストールされない
推奨:apturl-kdeがインストールされない
推奨:gdebi-kdeがインストールされない
推奨:gpgsmがインストールされない
推奨:ibus-qt4がインストールされない
推奨:jockey-kdeがインストールされない
推奨:kdegraphics-strigi-pluginsがインストールされません
推奨:kdepim-wizardsがインストールされません
推奨:kpackagekitがインストールされない
推奨:libreoffice-kdeがインストールされない
推奨:libreoffice-style-oxygenがインストールされません
推奨:network-manager-pptp-kdeがインストールされません
推奨:plasma-widget-facebookがインストールされません
推奨:plasma-widget-kimpanelがインストールされない
推奨:usb-creator-kdeがインストールされない
E:問題を修正できません。壊れたパッケージを保持しています。
その結果に驚きました。突然、ローカルリポジトリに最高の優先度を設定するために(この回答を書くために)プリファレンスを設定しました/etc/apt/preference
。
だから、私はこれを実行しました:apt-cache policy kubuntu-desktop
出力は以下の通りでした:
anwar @ edubuntu-lenovo:〜$ apt-cache policy kubuntu-desktop
kubuntu-desktop:
インストール済み:(なし)
候補:1.222.1kde47〜ppa2
バージョン表:
1.254 0
500 cdrom:// Kubuntu 12.04 LTS _Precise Pangolin_-リリースi386(20120424)/ precise / main i386パッケージ
500 http://archive.ubuntu.com/ubuntu/ precise / main i386パッケージ
1.222.1kde47〜ppa2 0
1001ファイル:/ media / Main / Linux-Software / Ubuntu / Natty / natty /パッケージ
1.222.1 0
1001ファイル:/ media / Main / Linux-Software / Ubuntu / Natty / natty /パッケージ
1.222 0
1001ファイル:/ media / Main / Linux-Software / Ubuntu / Natty / kubuntu /パッケージ
この出力では、我々は、「CD-ROM」と「正確なメインリポジトリ」の両方が、バージョン番号があることがわかり1.254をローカルリポジトリにはバージョンがある一方で、1.222.1kde47〜PPA2下位バージョンです、。sources.listファイルでローカルパッケージの前に配置されますが、ローカルパッケージが優先されます。
それapt-get
が実際にローカルのものからインストールしようとしていることを明示的に確認するために、私synaptic
はこれを実行して取得しました。これは、Aptシステムがインストールする候補バージョンとして1.222.1kde47〜ppa2を考慮することを示しています。
また、apt-cache policy kubuntu-desktop
同じことを示します
anwar @ edubuntu-lenovo:〜$ apt-cache policy kubuntu-desktop
kubuntu-desktop:
インストール済み:(なし)
候補:1.222.1kde47〜ppa2
バージョン表:
1.254 0
500 cdrom:// Kubuntu 12.04 LTS _Precise Pangolin_-リリースi386(20120424)/ precise / main i386パッケージ
500 http://archive.ubuntu.com/ubuntu/ precise / main i386パッケージ
1.222.1kde47〜ppa2 0
1001ファイル:/ media / Main / Linux-Software / Ubuntu / Natty / natty /パッケージ
1.222.1 0
1001ファイル:/ media / Main / Linux-Software / Ubuntu / Natty / natty /パッケージ
1.222 0
1001ファイル:/ media / Main / Linux-Software / Ubuntu / Natty / kubuntu /パッケージ
これを解決するために、/etc/apt/preference
ファイルを削除しましたsudo rm /etc/apt/preference
。
そして、この再び再び走りましたapt-cache policy kubuntu-desktop
。この予想される出力のみが表示されます。
anwar @ edubuntu-lenovo:〜$ sudo rm / etc / apt / preferences
anwar @ edubuntu-lenovo:〜$ sudo apt-cache policy kubuntu-desktop
kubuntu-desktop:
インストール済み:(なし)
候補者:1.254
バージョン表:
1.254 0
500 cdrom:// Kubuntu 12.04 LTS _Precise Pangolin_-リリースi386(20120424)/ precise / main i386パッケージ
500 http://archive.ubuntu.com/ubuntu/ precise / main i386パッケージ
1.222.1kde47〜ppa2 0
500ファイル:/ media / Main / Linux-Software / Ubuntu / Natty / natty /パッケージ
1.222.1 0
500ファイル:/ media / Main / Linux-Software / Ubuntu / Natty / natty /パッケージ
1.222 0
500ファイル:/ media / Main / Linux-Software / Ubuntu / Natty / kubuntu /パッケージ
これもまた実行しました。sudo apt-get install kubuntu-desktop
以下の出力を見るには:
.........不要な詳細を削除しました.........
0はアップグレードされ、213は新しくインストールされ、0は削除され、150はアップグレードされていません。
0 B / 89.6 MBのアーカイブを取得する必要があります。
この操作の後、269 MBの追加のディスク領域が使用されます。
続行しますか[Y / n]?
ここで完全な結果を確認できます
それから、説明部分についてはかなり確信しています。
参考1:apt_preferenceマニュアル
リファレンス2:パッケージの特定のバージョンをインストールしたままにする方法