web-dev-qa-db-ja.com

出現はブロックされたパッケージについて不平を言います:私は何をしますか?

Gentooを実行している古い開発サーバーが稼働しています。このシステムを更新したいのですが、パッケージングシステムで問題が発生し続けています。私には、さまざまなパッケージのいくつかのバージョンに依存関係があるように見え、それを修正する方法がわかりません。

最大の問題はおそらくPythonとPortageに関連しています。新しいPortageが必要ですが、周期的な依存関係が発生しているようです。

私はさまざまな解決策を試しましたが、ここから先に進むかどうかはよくわかりません。それを修正する上で私をさらに導くかもしれない手がかりはありますか?

詳細情報

以下は、emerge --update --newuse --deep @worldの実行からの(の関連ビット)出力です。

(lots of normal output ....)
[ebuild     U ] app-misc/mc-4.7.0.3 [4.6.1-r4] USE="edit%* -slang*" 
....
[blocks B     ] >=dev-lang/python-2.6.6 (">=dev-lang/python-2.6.6" is blocking sys-apps/portage-2.1.6.7)
[blocks B     ] <sys-apps/portage-2.1.7.16 ("<sys-apps/portage-2.1.7.16" is blocking app-shells/bash-4.1_p9)
[blocks B     ] <sys-apps/portage-2.1.9 ("<sys-apps/portage-2.1.9" is blocking dev-lang/python-2.7.1-r1)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (dev-lang/python-2.7.1-r1, ebuild scheduled for merge) pulled in by
    =dev-lang/python-2* required by (dev-vcs/Mercurial-1.7, ebuild scheduled for merge)
    =dev-lang/python-2*[threads] required by (dev-vcs/Mercurial-1.7, ebuild scheduled for merge)
    =dev-lang/python-2* required by (dev-libs/glib-2.28.6, ebuild scheduled for merge)
    (and 1 more)

  (app-shells/bash-4.1_p9, ebuild scheduled for merge) pulled in by
    >=app-shells/bash-3.2_p17 required by (sys-apps/portage-2.1.9.42, ebuild scheduled for merge)
    app-shells/bash required by (sys-block/di-4.18, ebuild scheduled for merge)
    app-shells/bash required by (app-admin/Perl-cleaner-2.7, ebuild scheduled for merge)
    (and 2 more)

  (dev-lang/python-3.1.3-r1, ebuild scheduled for merge) pulled in by
    dev-lang/python required by (app-admin/python-updater-0.9, ebuild scheduled for merge)
    >=dev-lang/python-3 required by (sys-apps/portage-2.1.9.42, ebuild scheduled for merge)
    =dev-lang/python-3.1* required by (dev-Java/java-config-2.1.11-r3, ebuild scheduled for merge)

これは、emerge --pretend--depcleanを実行するときの出力の関連ビットです。

Calculating dependencies... done!
 * Dependencies could not be completely resolved due to
 * the following required packages not being installed:
 * 
 *   >=dev-lang/python-2.4 pulled in by:
 *     sys-apps/portage-2.1.6.7
 * 
 *   dev-lang/python pulled in by:
 *     dev-Java/java-config-2.1.7
 * 
 *   dev-lang/python pulled in by:
 *     dev-libs/libxml2-2.6.31
 * 
 *   <dev-lang/python-2.6.6 pulled in by:
 *     sys-apps/portage-2.1.6.7
 * 
 *   >=dev-lang/python-2.2 pulled in by:
 *     dev-libs/beecrypt-4.1.2-r1
 * 
 *   virtual/python pulled in by:
 *     dev-python/pycrypto-2.0.1-r6
 * 
 *   >=dev-lang/python-2.3 pulled in by:
 *     dev-vcs/Mercurial-1.0.2
 * 
 *   >=dev-Java/java-config-2.1.9-r1 pulled in by:
 *     dev-libs/beecrypt-4.1.2-r1
 * 
 *   virtual/python pulled in by:
 *     dev-lang/swig-1.3.34
 * 
 *   dev-lang/python pulled in by:
 *     net-fs/samba-3.0.28a-r1
 * 
 *   >=dev-lang/python-2.2 pulled in by:
 *     app-Arch/rpm-4.4.6-r6
 * 
 *   >=virtual/python-2.2.1 pulled in by:
 *     sys-libs/libcap-1.10-r11
 * 
 *   dev-lang/python pulled in by:
 *     sys-libs/cracklib-2.8.9-r1
 * 
5
oligofren

私はほんの数日前に同じ問題に直面しました。正確な方法はありませんが、一般的な方法は次のとおりです。

まず、/var/lib/portage/worldを見てください。バックアップを作成し、システムが起動するのに必要なパッケージにパッケージを取り除きます。これがあなたを動かすためのいくつかのコンテンツです:

app-admin/syslog-ng
net-firewall/iptables
net-misc/dhcpcd
sys-apps/pciutils
sys-apps/slocate
sys-apps/usbutils
sys-boot/grub
sys-kernel/gentoo-sources
sys-power/acpid
sys-process/vixie-cron
virtual/inetd

それ以外はすべて後で更新されます。

最も重要な部分は、Portageとpythonを最近のバージョンに取得することですので、それに焦点を当てましょう。

  1. Portageディレクトリを出現させます:

    emerge --sync
    

    または:

    emerge-webrsync
    
  2. 有効なプロファイルを設定する

    eselect profile list
    eselect profile set <x>
    
  3. アップグレードpython/portageステップバイステップ。

    現在インストールされているPortageのバージョンを確認してください。 Portageを現在のバージョンよりも高い次のバージョンにアップグレードし(〜x86でマスクされている場合でも)、Pythonでも同じことを行います。 pythonアップグレード後、必ずpython-updaterを実行してください。

    Python/portageが最新になるまで、これを段階的に実行します。 (マイナーバージョンのアップグレードの一部をスキップできます。コンパイルエラーが発生するバージョンと発生するバージョンを自分で確認できます。)

  4. それらが機能するようになったらすぐに、あなたのタスクに役立つかもしれない他のいくつかのパッケージを出現させようとします。

    app-portage/ufed
    app-portage/autounmask
    app-portage/gentoolkit
    
  5. Python/portageが最新になったら、古いワールドファイルを復元してシステムを更新できます。

    emerge -pvauDN world
    

    あなたは電話する必要があるかもしれません:

    emerge ...
    emerge --depclean
    revdep-rebuild
    

    ビルドプロセス中に数回。

3
McClane

pythonで問題が発生した場合は、python-updaterを実行してみてください。コマンドeselectで現在のバージョンのpythonを選択できることに注意してください。

0
Sergei