apt-get
を使用して特定のパッケージをインストールから除外します。つまり、特定のパッケージのリストなしで、できればapt-get
を1回呼び出してメタパッケージをインストールします。
たとえば、Ubuntu 14.04 LTSコマンドラインでは、MATEデスクトップ環境をインストールしています。 14.04では、LTS MATEは公式フレーバーではないため、PPAを追加しています。
Sudo apt-get install software-properties-common # need them for 'apt-add-repository'
Sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
Sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
Sudo apt-get update
次にインストール:
Sudo apt-get install xorg mate-core --no-install-recommends
推奨される追加機能がなくても、mate-core
は3つの端末エミュレーターをインストールします:xterm
、uxterm
およびmate-terminal
、後者はこの最小構成でインストールされている間、適切なフォントを欠いています。
3つの端末プログラムが多すぎると判断し、xorg
およびmate-core
withoutxterm
およびmate-terminal
をインストールするとします。私はそれをできた
Sudo apt-get install xorg mate-core --no-install-recommends
Sudo apt-get purge xterm mate-terminal
しかし、これを一度に行うことは可能ですか?のようないくつかの構文はありますか
Sudo apt-get install xorg mate-core --without xterm mate-terminal
そのため、 mate-coredependsmate-desktop-environment-core
に依存し、これは順番にmate-terminal
で。 dependは簡単には壊れません。 apt-get
もaptitude
も--without
または--exclude
オプションをサポートしておらず、パッケージを「保持」しても役に立ちません。
$ echo "mate-terminal hold" | Sudo dpkg --set-selections $ Sudo apt-get install mate-core [...] 一部のパッケージをインストールできませんでした... 次のパッケージには、満たされていない依存関係があります。
もちろん、dpkg --force-depends
を使用してパッケージをインストールすることもできますが、それはおそらくあなたが望むものではないでしょう。
可能性は、ダミーパッケージでDepends:
フラグをいっぱいにすることです:
$ Sudo apt-get install equivs $ equivs-control mate-terminal $ vi mate-terminal セクション:misc Priority:オプション 標準バージョン:3.9.2 パッケージ:mate-terminal バージョン:1.8.0 説明:mate-terminalのダミーパッケージ :x $ equivs-build mate-terminal $ Sudo dpkg -i mate-terminal_1.8.0_all.deb
これで、mate-core
はmate-terminal
なしでインストールできるはずです。除外する他のパッケージについても同じ手順を繰り返します。
確かに、これはかなりの努力であり、--without
オプションがいいでしょう。多分 ウィッシュリストのバグ を開いて将来そのような機能を提供できるかもしれませんが、どういうわけかこれが実装されることを疑います。
ただし、より現実的なオプションは、 PPA所有者 に請願して、MATEに別のメタパッケージを提供し、Depends
パッケージセットを少なくすることです。
aptitude
またはグラフィカルパッケージマネージャー(Synapticなど)を使用する場合、インストールするパッケージの選択を解除できます限り依存関係の問題は発生しません。
aptitude
の場合、パッケージをインストールする前に(グラフィカルビューで)、依存パッケージがインストールされている理由が表示されます。私の場合、KDEを使用しているため、MATEパッケージはありません。 mate-core
をインストールするように指示すると、次のメッセージが表示されます。
mate-core
は手動でインストールされているとマークされており、他の多くのパッケージがインストールされていることに注意してください。 mate-terminal
パッケージの場合、一番下に「mate-desktop-environment-core
[universe]はmate-terminal
(> = 1.0.0)に依存しています」とあります。 mate-desktop-environment-core
のエントリに移動して、
「mate-core
[universe]はmate-desktop-environment-core
に依存しています(> = 1.8.0 + 9)」。これがmate-terminal
がインストールされている理由です。
代わりに、(別のパッケージに依存しているものではなく)推奨パッケージがインストールされている場合、aptitude
がそれを通知し、破損した依存関係なしにそのパッケージをインストールしないように指示できます。例えば:
別の方法
他に依存するメインパッケージをダウンロードします。パッケージを抽出し、不要な依存関係を削除して、再パックします。 gdebiパッケージインストーラーで新しいパッケージを開きます。新しい依存関係がインストールされます。
このようなシナリオには特別なapt
構文があります。パッケージにハイフン(マイナス記号)を追加するとパッケージが削除/インストールされないため、Sudo apt-get install xorg mate-core --without xterm mate-terminal
に最も近いのはSudo apt-get install xorg mate-core xterm- mate-terminal-
です https://askubuntu.com/a/1011439/18292 )
あなたはに遭遇するので、この場合には役に立ちません
The following packages have unmet dependencies:
mate-desktop-environment-core : Depends: mate-terminal (>= 1.20) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
しかし、それはあなたの特定の質問に対する答えのようです。参考のために、このクロスポスト。