32비트 Xubuntu 설치와 동일한 64비트 패키지를 설치합니다.

32비트 Xubuntu 설치와 동일한 64비트 패키지를 설치합니다.

저는 모든 프로그래밍을 수행하기 위해 가상 머신(Windows 호스트의 Xubuntu 12.10, VMWare)을 사용해 왔으며 32비트 설치에서 64비트 설치로 전환하려고 합니다. 32비트 VM에서 사용한 모든 패키지를 새 64비트 VM에 자동으로 다시 설치하고 싶습니다.

읽다이 지침sudo dpkg --get-selections, 설치된 패키지 목록을 얻기 위해 실행했지만 많은 패키지에 접미사가 있습니다 :i386.

해당 64비트 패키지를 쉽게 설치할 수 있는 방법이 있습니까? 설치를 시도하기 전에 :i386패키지 목록에 있는 유사한 것으로 안전하게 교체 할 수 있습니까?:x86_64

답변1

이 질문에 대한 첫 번째 대답귀하의 제안을 활용하고 분실된 패키지를 처리하십시오. 답변 중에는 이것이 나쁜 생각이라고 생각하는 사람들도 있었습니다. 또한 추가하기로 선택한 경우 :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 설치에서는 아무런 이점이 없으며 데비안에서는 패키지를 libc6-i686, libwine-bin, libwine-alsa, libwine-gli386 아키텍처에서만 사용할 수 있습니다.

답변2

그러면 설치된 패키지 목록이 생성됩니다.

적성검색-F '%100p' '~i!~M' > 소프트웨어 목록

관련 정보