Ubuntu
安裝與 32 位 Xubuntu 安裝相同的 64 位軟體包
我一直在使用虛擬機(Xubuntu 12.10,Windows 主機上帶有 VMWare)來完成我的所有程式工作,我正在嘗試將其從 32 位安裝轉換為 64 位安裝。我希望能夠在我的新 64 位 VM 中自動重新安裝我在 32 位 VM 中使用的所有軟體包。
閱讀這些說明後,我跑去
sudo dpkg --get-selections
獲取已安裝軟體包的列表,但許多軟體包都有:i386
後綴。有沒有簡單的方法來安裝相應的 64 位軟體包?在嘗試安裝它們之前,我是否可以安全地在我的包列表中替換
:i386
或類似的東西?:x86_64
這個問題的第一個答案使用你的建議,然後處理失去的包。在一些人的答案中,這是一個壞主意。另請注意,如果選擇添加 a
:i386
可能是因為某些其他包明確需要此體系結構的包。如果您想之前檢查,這裡有一個建議。在您的系統中,您應該在
/var/lib/apt/lists
. 您可以對照這些列表檢查帶有 :i386 的軟體包列表,以確保它們在 i386 和 amd64 架構中都存在。以下腳本是您可以執行的操作的範例#!/bin/bash #iterate on installed packages with a :something in their names for package in $( dpkg --get-selections | grep ":" | #comment to check all the selection grep -v deinstall | cut -f1 | sed s/:.*// | sort -u ) do #find all occurences in repository package lists grep "Package: $package$" /var/lib/apt/lists/* 2>/dev/null | #translation and sources are not usefull grep -v Translation | grep -v Sources | #put the distribution as a prefix sed 's/^\(.*\)_dists_\([^_]*\)\(.*\)/\2 \1\3/' | #put the architecture difference in the repository file name as a prefix sed 's/^\(.*\)-\(amd64\|i386\)_\(.*\)/\2 \1_\3/' | #count consecutive identical lines ignoring the architecture prefix uniq -c -f1 | #print architecture distribution and package if some line is not duplicated awk '$1!=2{print $2 " " $3 " " $5}' done
在 lubuntu 安裝上,這沒有給我任何東西,而在 debian 上,這些軟體包
libc6-i686, libwine-bin, libwine-alsa, libwine-gl
僅適用於 i386 架構