公式リポジトリから同じパッケージバージョンを再度ダウンロードするのではなく、apt-getにローカルリポジトリパッケージを優先させるにはどうすればよいですか?ローカルリポジトリは署名され、信頼されています。 aptの優先設定を既に試しました。
元の質問:「sources.listファイルを使用せずにローカルリポジトリに最高の優先度を割り当てる方法」
ダウンロードしたパッケージでローカルリポジトリをセットアップしました。 Ubuntuを再インストールする必要があるときに、インターネット経由で同じパッケージをダウンロードしないようにするために使用します。これは、apt-ftparchive packages . > Packages
で作成された基本的なリポジトリです。 「認証されていないリポジトリ」警告を回避するために、これを信頼できるリポジトリにしました。 (信頼できないリポジトリがある場合、apt
またはsynaptic
はインターネット経由で同じパッケージをダウンロードしようとします。 '信頼されているからです)。
このローカルリポジトリを少なくとも1年間使用しています。ただし、これを使用するには、ローカルリポジトリの行をsources.list
ファイルの先頭に常に配置する必要があります。しかし、これは迷惑です。Ubuntuを再インストールするたびにターミナルを開いて入力する必要があるためです。ただし、優れたツールsoftware-properties-gtk
があります。ソース行を `sources.listの最後に配置するため、このツールは使用できません。
そして、実際の問題は、apt
またはsynaptic
は常に、前述のソースからパッケージをダウンロードし、パッケージがローカルリポジトリで既に利用可能かどうかを検査します。したがって、ローカルソースをsources.list
実行端末の最上部に配置する以外に選択肢はありません(実際、端末は嫌いではありませんが、解決策が必要です)。
この方法 を試しました。しかし、これは私を助けません。
私の設定ファイルは/etc/apt/preferences.d/local-pin-900
にあります
Package: *
Pin: release o=Local,n=ubuntu-local
Pin-Priority: 900
私のリリースファイルはこちら
Origin: Local
Label: Local-Ubuntu
Description: Local Ubuntu Repository
Codename: ubuntu-local
MD5Sum:
ed43222856d18f389c637ac3d7dd6f85 1043412 Packages
d41d8cd98f00b204e9800998ecf8427e 0 Sources
Apt-preferenceを有効にすると、apt-cache policy
に設定が正しく表示されます。ローカルリポジトリの優先度が最も高いことを示しています。
しかし、これを行うと、Sudo apt-get install <package-name>
、apt
はインターネットからダウンロードしようとします。しかし、ローカルリポジトリを一番上に配置すると、ローカルリポジトリからインストールされます。
したがって、私の質問は-> 'パッケージがローカルリポジトリで利用可能な場合、明示的に「リポジトリリストの上部にあるローカルソース(sources.listファイルなど)? '
編集:apt-cache policy $package_name
の出力は次のとおりです
nautilus-wipe: インストール済み:(なし) 候補:0.1.1-2 バージョン表: 0.1.1-2 0 500 http://archive.ubuntu.com/ubuntu/ precise/universe i386パッケージ 900 file:/ media/Main/Linux-Software/Ubuntu/Precise /パッケージ
ローカルリポジトリがsources.list
ファイルで最初に来るものではありませんが、ローカルリポジトリの方が優先されることを示しています。
apt-get install nautilus-wipe
の出力は次のとおりです
パッケージリストを読み込んでいます...完了 依存関係ツリーを構築しています 状態情報を読み込んでいます...完了 次の新しいパッケージがインストールされます: nautilus-wipe 0がアップグレードされ、1が新しくインストールされ、0が削除され、131がアップグレードされません。 30.7 kBのアーカイブを取得する必要があります。 この操作の後、150 kBの追加ディスクスペースが使用されます。 'http://archive.ubuntu.com/ubuntu/pool/universe/n/nautilus-wipe/nautilus-wipe_0.1.1-2_i386.deb' nautilus-wipe_0.1.1-2_i386 .deb 30730 MD5Sum:7d497b8dfcefe1c0b51a45f3b0466994
インターネットからファイルを取得しようとしていますが、ローカルのファイルには満足すべきだと思います。
Localhostを使用しても効果はありません。しかし、「」は私の方法と違いはありませんでした
Package: *
Pin: Origin ""
Pin-Priority: 1001
質問を投稿する前にそれらを使用しました。しかし、私はこれを試しました(余計に)。同じ結果。 apt-cache policy
は、ローカルリポジトリの優先度が最も高いことを示しています。しかし、インストールしようとすると、「XXX/XXX KBのアーカイブを取得する必要があります」と表示されます。
APT設定ファイル/ etc/apt/preferencesを使用して、インストールするパッケージのバージョンを選択するを制御できます。
ファイル/etc/apt/preferences
、これはapt-get
が決定に使用し、単一のパッケージに多数のバージョンがある場合に選択する必要があるバージョンです。これにより、ローカルリポジトリからのパッケージは、他のパッケージよりも優先されます。
パッケージ:* Pin:Origin "" Pin-Priority:1001
これはバージョンを制御しませんが、両方のパッケージのバージョンが同じ場合はソース設定を制御します。同じパッケージに最高の優先順位を割り当てる必要がある場合versionローカルリポジトリで、/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_-リリース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正確なユニバースメインマルチバース制限#ソフトウェアプロパティにより追加 #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正確なメイン #deb-src http://extras.ubuntu.com/ubuntu precise main
はい、「apt_preference」は、同じバージョンのパッケージのinstancesを選択することとは関係ありません。ここでのポイントは、/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
が決定に使用し、単一のパッケージに多数のバージョンがある場合に選択する必要があるバージョンです。 (この例では、compiz-fusion-plugins-extra
にはいくつかのバージョンがあります。
パッケージ:* Pin:Origin "" Pin-Priority:1001
このファイルは、異なるリポジトリに複数のバージョンが存在するすべてのパッケージのローカルリポジトリからインストールするapt-get
を示します。
言い換えると、ローカルリポジトリにxapps
バージョンのパッケージ1.0
があり、この同じパッケージxapps
が上位バージョンのPreciseのリポジトリに存在する場合、たとえば2.0
、apt-get
はローカルリポジトリのバージョン、つまり1.0
を優先します。
これが私の/etc/apt/sources.list
ファイルです
deb http://archive.ubuntu.com/ubuntu正確なメインユニバース制限マルチバース deb-src http://archive.ubuntu.com/ubuntu正確なメインメインマルチバース制限#ソフトウェアによって追加-properties deb http://security.ubuntu.com/ubuntu/ precise-securityユニバースメインマルチバース制限 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 preciseパートナー #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 file:/ media/Main/Linux-Software/Ubuntu/Oneiric /パッケージ 0.9.4-0ubuntu3 0 1001 file:/ media/Main/Linux-Software/Ubuntu/Natty/natty /パッケージ
ここでは、候補バージョンは0.9.5.94-0ubuntu1
(ローカルリポジトリにあります)であり、正確なリポジトリにある0.9.7.0~bzr9-0ubuntu6 0
ではありません。正確なものは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 Use 次の追加パッケージがインストールされます。 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-x org-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パッケージをダウングレードして、新しく選択されたcompiz-fusion-plugins-extra
!!!との依存関係(Oneiricのものと一致する)を解決しようとしています。
より危険なのは、新しいcompizesとの競合を避けるために、グラフィックドライバーパッケージ(xserver-xorg -....)を削除しようとしていることです。
(おそらく、ローカルリポジトリにも持っていれば、安全にダウングレードしたいかもしれません。しかし、それらのパッケージは通常インストールされているので、ダウンロードしませんでしたので、ローカルレポジトリにはありません、したがって、この結果)。
結論:したがって、/etc/apt/preferences
の使用は、ローカルシステムに完全なリポジトリがある場合にのみ、ローカルリポジトリで使用することをお勧めします。
apt_preference
マニュアルで説明されています
Sources.list(5)ファイルに複数のソースへの参照が含まれている場合、パッケージの同じバージョンの複数のインスタンスが利用できる場合があります。この場合、apt-get(8)はsources.list(5)ファイルで最初にリストされたインスタンスをダウンロードします。
/etc/apt/preferences
ファイルの使用例の例:apt-get
に、Ubuntuの標準バージョンではなく、カスタムリポジトリから利用可能なバージョンを選択するように強制する例は、「Linux Mint」ディストリビューションです。このカスタムpreference
ファイルを使用します。
パッケージ:* Pin:release o = linuxmint Pin-Priority:700 Package:* Pin:Origin packages.linuxmint.com Pin-Priority:700 Package:* Pin:release o = Ubuntu Pin-Priority:500
これにより、事実上、リポジトリにパッケージがある場合にパッケージが提供されます。しかし、それらがなければ、Ubuntuの標準リポジトリを使用します。
apt-get
を実行する例Ubuntuにkubuntu-desktop
パッケージをインストールして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:Depends:language-selector-kde but itインストールされません 推奨: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)/ exact/main i386パッケージ 500 http ://archive.ubuntu.com/ubuntu/ precise/main i386パッケージ 1.222.1kde47〜ppa2 0 1001 file:/ 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 /パッケージ
この出力では、「cdrom」と「正確なメインリポジトリ」の両方にバージョン番号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)/ exact/main i386パッケージ 500 http ://archive.ubuntu.com/ubuntu/ precise/main i386パッケージ 1.222.1kde47〜ppa2 0 1001 file:/ 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ポリシー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 file:/ 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 ]?
完全な結果を確認できます こちら
それから、説明部分についてはかなり確信しています。