Ubuntu 64ビットからすべてのi386パッケージを削除する方法は?


回答:


15

それらがあなたの邪魔にならないなら、私は彼らを彼らがいるところに置いておくでしょう。
削除をdpkg -l | grep i386要求する場合は、i386パッケージのリストを作成するために使用します。のようなもので注意深くチェックした後、これらを削除できsudo apt-get purge <package-name>ます。


2
multiarchでは適性が破られていることを除けば、それほどうまく機能しません:P-
タンブルウィード

apt-get purge <package-name>それでも動作するはずです。
エリアケイガン

2
「慎重にチェックした後」-それはあいまいです。もっと明確にしてください。
ケビナープ14

1
私はusbにi386システムを持っていますが、amd64マシンで使用することもありますが、逆にしたいので、実行後にdpkg -l | grep amd64i386 pkgをリストに取得しamd64-microcode 3.20160316.3 i386ました.grepパターンの「:」は重要 !(dpkg -l | grep ":amd64"
ヨナ

24

上部の自動化されたソリューションは危険であり、常に機能するとは限りません(1)。

sudo aptitude purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`

または

sudo apt-get purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`

(常に1つのツールのみを使用してみてください。依存関係の問題がある場合はaptitudeの方が優れているため、それを好みます。)

また良いアイデア

dpkg --remove-architecture i386

そして多分

dpkg --print-foreign-architectures

(1)前のコマンドは、名前にi386のみが含まれるパッケージもリストします(64ビットアーキテクチャ用ですが)、正規表現は機能せず、dpkgは既に削除されているが構成ファイルが残っているパッケージを表示します(dpkg -l ステータスとして「ii」ではなく「rc」と表示されます)。


awkとにかく使用しているので、grep呼び出しを取り除くこともできます。また、$()バックティックよりも望ましいです。私はちょうどあなたが与えたものに基づいてこのコマンドを使用して私のi386パッケージを取り除きました:sudo apt purge $(dpkg --get-selections | awk '$1 ~ /:i386$/ { print $1 }')
-scy

23

私はすべての32ビットパッケージを次のようにブリッツしました。

sudo apt-get remove `dpkg --get-selections | grep i386 | awk '{print $1}'`

1
これらの種類のコマンドの作成方法は、apt-getとgrepを知っていますが、awk '{print $ 1}'を知りたいだけです。
スクパ91

素晴らしい、今i386アーキテクチャを削除することができましたがdpkg -l | grep i386、パッケージをチェックするときにまだアイデアがあります。また、前述のコメントとシェルスクリプトテクニックに関連する私の推測のために+1
Ismail Marmoush 14年

おそらくコメントはawkチュートリアルの場所ではないからでしょう。awkのそのビットは、パイプで渡される各行の最初のフィールドのみを印刷します。Awkのデフォルトのフィールド区切り文字はスペース ""です。
rthbound

それを終えるsudo dpkg --remove-architecture i386
セルジュStroobandt

9

誰かが疑問に思っている場合、これを行うためのはるかに正気で優雅な方法があります。前の最後の答えは同じことを望んでいますが、特別な場合を除き、アーキテクチャは実際にはパッケージ名の一部ではないため、その検索は失敗します。

ルートとして(またはsudoで)実行:

aptitude remove ~i~ri386

apt-getではなくaptitudeをまだ使用していない場合は、実行してください。本当に素晴らしいです。ここでaptitudeの検索用語のリストを見つけることができます。


6

さらにリスクの低い別の方法を次に示します。

apt-get remove "^.*:i386$"

これは":i386"、すべてのi386アーキテクチャDebianパッケージの標準の命名規則であるで終わるパッケージのみに特に一致します。


なぜオーバーパージを削除するのですか?
ロータス

1
@ロータス:違いに気付いていません。説明してもらえますか?この回答を更新して改善することができます。
ケビナープ

パージは、構成ファイルと残りのディレクトリも取得しますiirc
Lotus

2
@Lotus私はパージを使用し、14.04で機能しました。これは、引用符とキャレットを削除して初めて機能しました。 sudo apt-get purge .*:i386
アントニオスHadjigeorgalis

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.