32 ビット システムで 64 ビット システムのライブラリを操作する

32 ビット システムで 64 ビット システムのライブラリを操作する

64 ビットの Ubuntu 10.04 システムを使用していましたがubuntu-desktop、ログインを拒否する問題が発生しました。そこで、同じユーザー名を維持しながら、DVD の ISO イメージを使用して Ubuntu 12.04 32 ビット システムをインストールしました。インストール中は、以前のシステムのパーティションを再利用し、データをそのまま維持するために同じユーザー名を選択しました/home

mercurialUbuntu 12.04 にインストールしましたsudo apt-getが、実行するとこのスタック トレースが表示されます。Mercurial が以前の 64 ビット システムにアクセスしようとしているのは確かです。なぜなら、/usr/local/lib/2.6 と 2.7 という 2 つの Python インストールがあることがわかったからです。

これを修正するには助けが必要です。

Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/apport_python_hook.py", line 66, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/local/lib/python2.6/dist-packages/mercurial/demandimport.py", line 95, in _demandimport
    return _import(name, globals, locals, fromlist, level)
  File "/usr/lib/python2.7/dist-packages/apport/__init__.py", line 1, in <module>
    from apport.report import Report
  File "/usr/local/lib/python2.6/dist-packages/mercurial/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib/python2.7/dist-packages/apport/report.py", line 155, in <module>
    class Report(problem_report.ProblemReport):
  File "/usr/local/lib/python2.6/dist-packages/mercurial/demandimport.py", line 86, in __getattribute__
    self._load()
  File "/usr/local/lib/python2.6/dist-packages/mercurial/demandimport.py", line 58, in _load
    mod = _origimport(head, globals, locals)
  File "/usr/lib/python2.7/dist-packages/problem_report.py", line 93, in <module>
    class ProblemReport(UserDict):
TypeError: Error when calling the metaclass bases
    module.__init__() takes at most 2 arguments (3 given)

Original exception was:
Traceback (most recent call last):
  File "/usr/local/bin/hg", line 36, in <module>
    mercurial.util.setbinary(fp)
  File "/usr/local/lib/python2.6/dist-packages/mercurial/demandimport.py", line 86, in __getattribute__
    self._load()
  File "/usr/local/lib/python2.6/dist-packages/mercurial/demandimport.py", line 58, in _load
    mod = _origimport(head, globals, locals)
  File "/usr/local/lib/python2.6/dist-packages/mercurial/util.py", line 67, in <module>
    statfiles = getattr(osutil, 'statfiles', platform.statfiles)
  File "/usr/local/lib/python2.6/dist-packages/mercurial/demandimport.py", line 86, in __getattribute__
    self._load()
  File "/usr/local/lib/python2.6/dist-packages/mercurial/demandimport.py", line 58, in _load
    mod = _origimport(head, globals, locals)
ImportError: /usr/local/lib/python2.6/dist-packages/mercurial/osutil.so: wrong ELF class: ELFCLASS64

答え1

さて、答えを見つけました。フォルダ/usr/local/lib/python2.6を削除しましたpython2.7。場所をコピーし/usr/lib/python2.6python2.7上書きしました/usr/local/lib/。これでうまくいきました。

cp -Rp /usr/lib/python2.6  /usr/local/lib/
cp -Rp /usr/lib/python2.7   /usr/local/lib/

関連情報