以下のパッケージは保留されています

以下のパッケージは保留されています

私は 64 ビットの Debian Wheezy を実行しています。最近、apt-get upgradeこれを実行すると次のエラーが発生します。

The following packages have been kept back:
  libsmbclient libtevent0 samba-libs

気が狂いそうです。とにかく使わないので samba を削除しようと思ったのですが、ある天才が Gnome に samba を依存させてしまいました。

# apt-get remove libsmbclient
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  gnome gnome-core gvfs-backends libgnomevfs2-extra libsmbclient mencoder mplayer

これらのパッケージを安全にアップグレードするにはどうすればよいですか?

カスタムのものはあまりインストールされていません:

deb http://ftp.pl.debian.org/debian/ wheezy main 
deb-src http://ftp.pl.debian.org/debian/ wheezy main 

deb http://security.debian.org/ wheezy/updates main 
deb-src http://security.debian.org/ wheezy/updates main 

# wheezy-updates, previously known as 'volatile'
deb http://ftp.pl.debian.org/debian/ wheezy-updates main 
deb-src http://ftp.pl.debian.org/debian/ wheezy-updates main 

# wheezy-backports
deb http://ftp.pl.debian.org/debian/ wheezy-backports main contrib non-free

# virtualbox
deb http://download.virtualbox.org/virtualbox/debian/ wheezy contrib

[アップデート]

私が試したこと:

  1. apt-get dist-upgrade- 結果は同じです (パッケージは保留されています)。
  2. 使用されましたaptitudeが、gnome とその他の gnome 関連パッケージをいくつか削除し、大量の i386 パッケージ (ライブラリのみのようです) をインストールするように提案されているだけです。
  3. apt-get install libsmbclient与えるlibsmbclient : Depends: samba-libs (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed
  4. apt-get install libtevent0を与えますlibtevent0 : Depends: libtalloc2 (>= 2.1.0) but 2.0.7+git20120207-1 is to be installed
  5. apt-get install samba-libs与えるsamba-libs : Depends: samba-dsdb-modules (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed

[アップデート2]

この問題の原因は、バックポート リポジトリのどこかにあるようです。私はかつて、Bumblebee と DVD リッピング ツールを試していたのですが、バックポートから何かをインストールしなければならなかったことを覚えています。もう必要ありません。Bumblebee は私のハードウェアではとにかく失敗し、DVD は最終的に Windows でリッピングされました :(

今、私はこれを実行しaptitude search '~S ~i ~Abackports'、次の結果を得ました:

i   initramfs-tools                   - generic modular initramfs generator
i A libavutil53                       - Libav utility library
i   libldb1                           - LDAP-like embedded database - shared library
i A libnettle4                        - low level cryptographic library (symmetric and one-way cryptos)
i A libntdb1                          - New Trivial Database - shared library
i A libopus0                          - Opus codec runtime library
i   libswscale2                       - Libav video scaling library
i A libtdb1                           - Trivial Database - shared library
i A libwbclient0                      - Samba winbind client library
i A python-talloc                     - hierarchical pool based memory allocator - Python bindings
i   samba-common                      - common files used by both the Samba server and client

これらのパッケージをダウングレードすれば、すべて問題ないと思います。正しいでしょうか? どうすればいいでしょうか?

[アップデート3]

私はバックポート リポジトリからそれらのパッケージを削除またはダウングレードしようとしましたが、部分的にしか実行できませんでした。

ダウングレードしたいと思ったときにlibntdb1、安定版リポジトリに存在しないことに気付きました。 を削除しようとすると、再び、apt は gnome も削除しようとしました。 実行すると、apt-cache rdepends libntdb1逆依存関係は のみであることがわかりましたsamba-libs。安定版リポジトリにも はなくsamba-libs、またしても gnome とその他多くのものを削除しようとするため、削除もできません。一体何が起こっているのでしょうか?samba-libsを実行したときに がリストされないことに注意してくださいaptitude search '~S ~i ~Abackports'。 どうすればこれを削除できますか?

また、ダウングレードしようとしましたlibldb1が、どちらの場合も gnome を削除したかったlibwbclient0ためできませんでした。なぜでしょうか?apt

結局、バックポート リポジトリからの 3 つのパッケージが次のようにリストされましたaptitude search '~S ~i ~Abackports'

i   libldb1              - LDAP-like embedded database - shared library
i A libntdb1             - New Trivial Database - shared library
i A libwbclient0         - Samba winbind client library

そしてsamba-libs、どうやらこれもバックポートから来ているようですが、リストには載っていませんaptitude search '~S ~i ~Abackports'

答え1

次を使用して、deb パッケージを特定のリポジトリにダウングレードすることができますapt

# apt-get install libsmbclient/wheezy libtevent0/wheezy samba/wheezy
  • "[package]/wheezy" 構造は、ユーザーが wheezy リポジトリからのパッケージを希望することを意味します。のみ最新のものではありません。
  • 明記することが重要です全て必要なパッケージを一度に取得して、apt依存関係を正しく解決し、他の wheezy パッケージを取得できるようにします。

保持したい重要なパッケージを削除するかどうかのプロンプトが表示されない場合はapt、そのまま進めます。依存関係の問題に関する警告がいくつか表示されますが、致命的でない限り、それらの警告を無視しても問題ありません。

ダウングレードが成功すると、libtevent0、libldb1 などのライブラリは不要になります。apt-get --purge autoremoveand/or deborphan(インストールされている場合) を使用して、システムで役に立たない孤立したパッケージを見つけてクリーンアップできます。

(私の以前の回答は無効となり、すぐに削除されます。いずれにせよ間違っています。 でダウングレードすることは可能ですapt)

答え2

私はaptitudeのインタラクティブパッケージソルバーを使用します:

を実行しますsudo aptitude。次に、Uすべてをアップグレードしたいことを示すために (大文字の u) と入力します。競合があることが通知され、解決方法が提案されます。 を使用して対話型eソルバーに入り、次に.(ドット) と,(カンマ) を使用して、見つかったさまざまなソリューションを反復処理し、そのうち!の 1 つのソリューションを受け入れます。

Aまた、解決策の一部 (たとえば、gnome の削除を提案する部分) に移動して、それを受け入れる ( を使用) か、または拒否する ( を使用)かを伝えることで、(自分にとって) より良い解決策を見つける手助けRをすることもできます。

答え3

最も迅速で簡単な解決策:

各パッケージを個別にインストールする必要があります。

これを見てスーパーユーザー解決: apt パッケージを保留するソリューション

警告: 走らないで sudo apt-get dist-upgrade必要なパッケージが完全にインストールされるまでは、& を実行しないでください。その後、そしてその後にのみ、sudo apt-get update& を実行できます。sudo apt-get dist-upgrade

答え4

ターミナルを開いて次のように入力します:

apt-cache rdepends packagename

置き換えてパッケージ名削除したいパッケージを入力すると、削除しようとしているパッケージを必要とするパッケージが一覧表示されるので、まずそれらのパッケージを削除してから、実際のパッケージを削除してください。

関連情報