レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

Ubuntu Server で単純にパッケージを削除しても設定ファイルは残る、残った設定ファイルを一括削除するには?

2012年2月24日 2014年1月16日
debian howto

Ubuntuのパッケージ管理は、dpkg と apt によって行われます。
Red Hat系のrpmによるパッケージ管理で言うと、dpkg = rpm , apt = yum に相当します。
( yum とほぼ同じように扱えるaptのコマンドは、aptitude , apt-get があります。 )

Red Hat系なら、インストール済パッケージの一覧は、以下のように出力できます。

$ rpm -qa
gnome-mime-data-2.4.2-3.1
readline-5.1-3.el5
tcp_wrappers-7.6-40.7.el5
keyutils-libs-1.2-1.el5
atk-1.12.2-1.fc6
...

$ yum list installed
Installed Packages
GConf2.x86_64                            2.14.0-9.el5                  installed
GeoIP.x86_64                             1.4.8-1.el5                   installed
MAKEDEV.x86_64                           3.23-1.2                      installed
...

Ubuntuなら、インストール済パッケージの一覧は、以下のように出力できます。

$ dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  adduser        3.112ubuntu1   add and remove users and groups
rc  apache2.2-comm 2.2.14-5ubuntu Apache HTTP Server common files
ii  apparmor       2.5.1-0ubuntu0 User-space parser utility for AppArmor
ii  apparmor-utils 2.5.1-0ubuntu0 Utilities for controlling AppArmor
...

$ aptitude search "~i"
i   adduser                         - add and remove users and groups
c   apache2.2-comm                  - Apache HTTP Server common files
i   apparmor                        - User-space parser utility for AppArmor
i   apparmor-utils                  - Utilities for controlling AppArmor
...

ここで、インストール済のパッケージリストの先頭に文字列が表示されているのがわかると思います。

...
rc  apache2.2-comm ...
や、
c apache2.2-comm ... ...

このような文字列の付いているパッケージは、削除したパッケージなのです。ちゃんと消したはずが、インストール済パッケージリストで表示されてしまいます。

今回は、この文字列が付いたものを一括して削除してみます。

パッケージリストに出力されるフラグの意味

まずは、インストール済パッケージ一覧を出力したときに、先頭に出力する文字列に意味を解説しておきます。

dpkg -l で出力される文字列の意味

先の例のように、dpkg -l でインストール済パッケージリストを出力した場合に、先頭に出力する文字列に意味を解説しておきます。

$ dpkg -l |grep '^rc'
rc  mysql-server-5.1                    5.1.41-3ubuntu12.10               MySQL database server binaries
...
各リスト情報の先頭3文字は、以下のような意味をもちます。

1番目 : 要望フラグ
  • u : 不明
  • i : インストール
  • r : 削除
  • p : 完全削除
  • h : 維持
2番目 : 状態フラグ
  • n : 無
  • i : インストール済
  • c : 設定ファイル
  • u : 展開
  • f : 設定失敗
  • h : 半インストール
  • t : 保留
3番目 : エラーフラグ
  • 空欄 : 無
  • h : 維持
  • r : 要再インストール
  • x :=両方(状態,エラーの大文字=異常)
例)
rc  mysql-server-5.1                    5.1.41-3ubuntu12.10               MySQL database server binaries
|||
||+- 空欄 : 無
|+-- c    : 設定
+--- r    : 削除
つまり、この mysql-server-5.1 は、
「エラーなし、設定ファイルの削除要望中」ということになります。
つまり、設定ファイルが削除できていないということです。

aptitude search で出力される文字列の意味

先の例のように、aptitude search で出力されるパッケージリストの先頭に出力する文字列に意味を解説しておきます。

$ aptitude search '~c'
c   mysql-server-5.1                - MySQL database server binaries
...
各リスト情報の先頭4文字は、以下のような意味をもちます。

1番目 : 「現在の状態」フラグ
  • i : パッケージがインストール済みで、その依存関係がすべて満たされています。
  • c : パッケージは削除されましたが、設定ファイルがまだ残っています。
  • p : パッケージとその設定ファイルがすべて削除されました。またはインストールされたことがありません。
  • v : パッケージが仮想パッケージです。
  • B : パッケージに壊れた依存関係があります。
  • u : パッケージは展開済みですが設定が行われていません。
  • C : 設定未完了です。つまりパッケージの設定が中断されました。
  • H : インストール未完了です。つまりパッケージのインストールが中断されました。
2番目 : 「アクション」フラグ
  • i : パッケージはインストール予定です。
  • u : パッケージは更新予定です。
  • d : パッケージは削除予定です。削除されますが、設定ファイルはシステムに残ります。
  • p : パッケージは完全削除予定です。パッケージとその設定ファイルは削除されます。
  • h : パッケージは固定されています。つまり、固定が取り消されるまでは、たとえ新しいバージョンが利用可能になっても現在のバージョンに留められます。
  • F : パッケージは更新が禁止されています。
  • r : パッケージは再インストール予定です。
  • B : パッケージは「破損」しています。つまり、一部の依存関係が満たされていません。破損パッケージがある間は、どのパッケージも aptitude でインストール・削除・更新できません。
3番目 : 空欄 : なし / A : 自動的にインストール対象に選択されたもの
4番目 : 空欄 : なし / U : 信頼されていない

上記の例では、1番目の文字列が “c” だけなので、「パッケージは削除されましたが、設定ファイルがまだ残っています。」という意味になります。

aptitude search の検索パラメータには、さまざま設定することができます。ここでは、
~i : インストール済パッケージを出力する。
~c : パッケージは削除済、設定ファイルは未削除のパッケージリストを出力する。
の2つのみを使っています。
検索パターン : http://dolphin.c.u-tokyo.ac.jp/~nori1/aptitude-ja/ch02s03.html

次に、以下の2つで出力されたパッケージリストを一気に削除してみたいと思います。
( 以下は、同じパッケージ情報を出力します。 )

$ dpkg -l |grep '^rc'
$ aptitude search '~c'

パッケージを完全に削除する

Ubuntuなどパッケージ管理方法にAPTを利用している場合、単純に remove パラメータを指定しただけでは、完全に削除できません。

以下のいずれも設定ファイルを持つパッケージなら、設定ファイルを削除できないことがあります。

$ dpkg --remove パッケージ名
...
$ apt-get remove パッケージ名
...
$ aptitude remove パッケージ名
...

設定ファイルも含めて完全に削除するには、purge パラメータを使います。

$ dpkg --purge パッケージ名
...
$ apt-get purge パッケージ名
...
$ aptitude purge パッケージ名
...

と、このようにpurge パラメータを指定すると、設定ファイルを含めてパッケージの削除を実施します。
もちろん、設定ファイルのみ削除できていない状態であって、設定ファイルを削除してくれます。
( 上記の3つのコマンドは、ほぼ同じ動作をしますが、ここでは、パッケージ管理の基本であるdpkgを使います。 )

先のように1つのパッケージのみを削除したのであれば、以下のように指定すればOKです。
( sudo を利用していないかた方は、sudo を外して指定します。 )

$ sudo dpkg --purge mysql-server-5.1

(Reading database ... 46165 files and directories currently installed.)
Removing mysql-common ...
Purging configuration files for mysql-common ...
dpkg: warning: while removing mysql-common, directory '/etc/mysql' not empty so not removed.

完全に削除したい対象パッケージが複数ある場合、一つ一つ入力するのも大変です。
その場合は、以下のように1行入力すれば、全て削除できます。

dpkg –list |grep “^rc” | cut -d ” ” -f 3 | xargs sudo dpkg –purge

$ dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge

(Reading database ... 46163 files and directories currently installed.)
Removing apache2.2-common ...
Purging configuration files for apache2.2-common ...
dpkg: warning: while removing apache2.2-common, directory '/var/www' not empty so not removed.
...

$ dpkg --list |grep '^rc'

$ 
cut : -d で指定された文字列で分割し、-f で指定された数値の順番の文字列を取り出します。
例)
$ echo "a b c d e"|cut -d " " -f 1
a
$ echo "a b c d e"|cut -d " " -f 3
c
$ echo "a b c d e"|cut -d " " -f 2
b
$ echo "a b c d e"|cut -d " " -f 4
d
$ echo "a b c d e"|cut -d " " -f 5
e
xargs : 本コマンド以降に指定されたコマンドで、引数の文字数を超えないように渡します。もし、超えるような場合は、適宜に分割して実行されます。
どうでしたか?
結局は、コマンド1発でいけます。

そもそもこれは、taskselを使ってTUIでインストールとか削除をやっていると設定ファイルが残っていて気持ちが悪かったのが、そもそもの発端でした。
場合によっては、この設定ファイルを残すのは、良いですよね。誤ってパッケージを削除したとき、再度、同じパッケージをインストールするだけで、すぐに動くはずですからね。

気持ちが悪い人は、上記のように
dpkg –list |grep “^rc” | cut -d ” ” -f 3 | xargs sudo dpkg –purge
で消してみてください。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

Ubuntu Server にLAMPをインストールし、Wordpressを使ってみる

Ubuntu Server 10.04 LTS をインストールする では、Ubuntu Server のインストールまでを行いました。 今回は ...

Debian(Ubuntu) apt-get upgrade の「E: 未解決の依存関係です。」ではまったら

Debian(Ubuntu) では、パッケージのアップグレードを簡単に行う apt があります。 その代表的なコマンドが、apt-get です ...

Nginx にリバースプロキシのキャッシュ削除モジュール nginx cache purge を組み込んで使ってみる(Debian/Ubuntu編)

今回は、Ubuntu Server(Debian) で nginx を使ってみたいと思います。 Ubuntu(Debian) では、apt ...

Debian(Ubuntu)で サービスの起動、停止を管理するツールを調べてみた(chkconfigのかわりになるもの)

今回は、 Debian(Ubuntu)で サービスの起動、停止を管理するツール(CentOS,ScientificLinux の chkcon ...

Debian(Ubuntu)で apt-get upgrade で自動更新したくない場合の対応

今回は、 Debian(Ubuntu)で apt-get upgrade (aptitude も同様)で自動更新したくない場合の対処方法につい ...


1 件 コメントがあります。 コメントを投稿する
  1. Ubuntu 管理系の tips | hadacchi blog
    2013年2月25日, 1:18 AM

    […] […]


コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.2549 [s]