私はすべてのプログラミングを実行するために仮想マシン(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のインストールには利点がなく、Debianではパッケージをlibc6-i686, libwine-bin, libwine-alsa, libwine-gl
i386アーキテクチャでのみ使用できます。
答え2
これにより、インストールされたパッケージのリストが生成されます。
適性検索-F '%100p' '~i!~M' > ソフトウェア一覧