Debian

在 64 位 Linux Mint 上安裝 32 位 python 失敗

  • January 29, 2017

我基本上有兩個問題:

  1. 如何在 linux 上安裝 32 位 Python 和 64 位 Python?
  2. 如何從以下失敗的嘗試中修復損壞的系統?

我只是嘗試在 Linux Mint 16 上與我的 64 位 python 一起安裝一個 32 位 python。它並不像我希望的那樣簡單(這sudo apt-get install python32會很好),但經過一番Google搜尋後,我下載了 Python 2.7.6 和做了以下事情:

sudo apt-get install ia32-libs gcc-multilib checkinstall
CC="gcc -m32" LDFLAGS="-L/lib32 -L/usr/lib32 -Lpwd/lib32 -Wl,-rpath,/lib32 -Wl,-rpath,/usr/lib32" ./configure --prefix=/opt/pym32
make
sudo checkinstall

應該讓我能夠像這樣執行 32 位或 64 位(預設):

python -c 'import sys; print sys.maxint'
/opt/pym32/bin/python -c 'import sys; print sys.maxint'

…但/opt/pym32/甚至沒有被創造出來。更糟糕的是,我的系統現在報告了 29 個損壞的依賴項,表明新的 python 替換了舊的或者類似的東西。為了解決這個問題,aptitude 建議我刪除一大堆我需要的包並安裝一大堆我不需要的包。

如果出現問題,我使用 checkinstall 而不是make install能夠反轉/解除安裝,但是由於依賴關係損壞,解除安裝/重新安裝 python 將不起作用。有沒有辦法擺脫這種混亂?

64 位平台上的 32 位軟體包

首先,您需要允許您的包管理器安裝具有不同架構的包。但誰是誰?Apt 是wget和的簡單組合dpkg。真正的包管理器是dpkg,它提供底層基礎設施來處理真正的*.deb包的操作。

因此,讓我們看看我們特定案例的可用架構:

dpkg-architecture --list-known | grep -E "amd64|i386"

或者

dpkg-architecture --list-known | ack "amd64|i386"

如您所見,在我們的案例中,架構是amd64i386。現在您可以允許包管理器安裝i386包:

sudo dpkg --add-architecture i386

現在你可以安裝你的包了:

sudo aptitude update && sudo aptitude install python2.7:i386

通常,第一次i386安裝包會導致安裝很多依賴包。例如,在我的Debian x86_64 GNU/Linux 測試(拉伸)安裝skype(取決於libc6:i386)會導致安裝189 個軟體包:

dpkg --get-selections | ack i386 -c

問題是與很多包python2.7:i386衝突並且依賴於. 因此,如果不刪除所有圖形環境,您將無法安裝。python2.7``python2.7``python2.7:i386

修復損壞的依賴項

這是一個簡單的:

sudo apt-get install -f && sudo dpkg --configure -a

引用自:https://unix.stackexchange.com/questions/148684