書き込みエラー: デバイスに空き容量がありません。余分なパッケージを削除しています。回復を試行しています

書き込みエラー: デバイスに空き容量がありません。余分なパッケージを削除しています。回復を試行しています

問題:

次のように入力すると:

dpkg-query -Wf '${Package;-40}${Priority}\n' | sort -b -k2,2 -k1,1

マシンにインストールされているすべてのパッケージのリストを取得します。例:

...
raspberrypi-artwork                     extra
raspberrypi-bootloader                  extra
raspberrypi-ui-mods                     extra
raspi-config                            extra
rpi-update                              extra
sonic-pi                                extra
ssh                                     extra
triggerhappy                            extra
wireless-tools                          extra
xkb-data                                extra
adduser                                 important
apt                                     important
apt-utils                               important
aptitude                                important
aptitude-common                         important
bsdmainutils                            important
...

最近、あまりにも多くのものをインストールするスクリプトを実行したところ、マシンが次のように応答しました: /usr/bin/mandb: can't write to /var/cache/man/2694: No space left on device(パスは変更されますが、常に空き領域がないと表示されます。)

表示される可能性のあるラベルは次のとおりです。

  • 標準
  • 余分な
  • 重要
  • オプション
  • 必須

さまざまなリポジトリにコミットされていない変更があり、ローカルの変更をプッシュできるようにしたいのですが、プッシュしようとすると次のエラーが発生し続けます。

$ git push
fatal: write error: No space left on device
error: Couldn't write .git/refs/remotes/origin/master.lock
error: Cannot update the ref 'refs/remotes/origin/master'.
Everything up-to-date

また、すべてが最新ではないことも承知しています。

システム:

これは、「wheezy」Raspbian を実行している Raspberry Pi 上にあります。

質問:

数百のパッケージがインストールされています。「extra」というラベルの付いたパッケージをすべて削除するにはどうすればよいでしょうか。これがマシンのスペースを解放する最善の方法でしょうか。さまざまなリポジトリにコミットされていない変更があり、ローカルの変更をプッシュできるようにしたいと考えています。

必須かつ重要なもの以外をすべて削除する回答も受け入れます。Git はオプションとしてラベル付けされており、これを保持したいと思います (ただし、不要なパッケージをすべて削除した後でいつでも再度インストールできます)。

前もって感謝します!!

答え1

次のコマンドを使用して、すべてのオプションおよび追加パッケージを消去できます。 sudo apt-get --simulate purge $(dpkg-query -Wf '${Package;-40}${Priority}\n' | awk '$2 ~ /optional|extra/ { print $1 }')

フラグ--simulateを使用すると、実際にすべてを削除せずに何が削除されるかを確認できます。実際にパッケージをアンインストールするには、フラグを削除します。

他のオプションおよび追加パッケージとともに git も削除されるため、git を再インストールする必要があります。

オプションや追加パッケージが必要になる場合がありますので、注意して削除してください。詳細はこちら:https://askubuntu.com/questions/79665/keep-only-essential-packages

答え2

確認する必要があるどこスペースが不足しています。このdf(1)コマンドは、どのファイルシステムがいっぱいになっているかを表示します。

容量不足の一般的な原因は、ログ ファイルが大きいことです ( を確認してください/var/log。システムには古いログを消去するコマンドがあるはずです)。 はまたはsort(1)の一時ファイルを使用するので、どちらかに不要なファイルが多すぎると、容量不足で失敗する可能性があることに注意してください。var/tmp/tmp

答え3

aptitudeがインストールされているので、ここで役立ちます。起動して、一致するパッケージのみを表示aptitudeします(ショートカット:l

~i ~pextra

見るオンラインマニュアルまたは/usr/share/doc/aptitude/README検索用語の参照用です。

ここで、すべてをアンインストールすることを選択できます。-各トップレベルの見出しの下の を押して、パッケージをアンインストール対象としてマーク (構成ファイルを保持) するか、_削除対象としてマーク (構成ファイルを削除) してから、g先に進みます。一部のパッケージを保持したい場合は、リストを確認する機会があります。

関連情報