Cygwinをアンインストールする
Cygwinをアンインストールしようと思ったが、Cygwinにはアンインストールを自動で行う手段が無く、手作業で行う必要があったので、その手順をメモしておく。
アンインストール手順
手順は公式サイトのFAQに記載されている。
http://cygwin.com/faq/faq.html#faq.setup.uninstall-all
意訳すると、
Cygwin内でサービスを起動している場合は以下の手順で全て削除しましょう。一般的にインストールされていそうなサービスはsshd、cron、cygserver、inetd、apache、postgresqlとかです。
cygrunsrv -Lで登録しているサービスを確認します。cygrunsrvが無い場合はこの過程を飛ばしましょう。
起動しているサービスがあればcygrunsrv --stop service_nameで停止します。inetdを使ってスタンドアローンなサービスを起動している場合はcygrunsrv -Lで表示されませんが、cygrunsrv --stop inetdを実行すればそれらもまとめて停止します。
最後にcygrunsrv --remove service_nameで各サービスを削除しましょう。
X11サーバーが起動していれば停止し、バックグラウンドで動いているCygwinプログラムも止めます。コマンドプロンプトを終了し、Cygwinプロセスが無い事を確認しましょう。もし、再インストールする時の為にマウントポイントを保存しておきたければ、mount -mでfstabに書き込んでおくと良いでしょう。
cyglsa.dllをインストールしており、/usr/bin/cyglsa-configを実行していた場合、LSA authentication packageの使用を停止する必要があります。その為、レジストリの/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa/Authentication Packagesの値を、元のmsv1_0という値に戻してWindowsを再起動しましょう。
Cygwinのルートフォルダとサブフォルダを全て削除します。オブジェクトが使用されているといったエラーが出ましたら、全てのサービスが停止されて、全てのCygwinプログラムが終了しているかを確認しましょう。パーミッションエラーが出ましたら、エラーの原因となっているファイルやフォルダのパーミッションを変更しましょう。例えば、システムサービスによって使用されているファイルはSYSTEMアカウントが保持し、一般ユーザーからは書き込みができなくなります。
手っ取り早く削除するには、自分に全てのファイルとフォルダの所有権限を付与しましょう。Windows Explorerを開き、Cygwinのルートフォルダで右クリックし、プロパティからセキュリティタブを選択します。もし、Windows XP Home Editionのシンプルファイル共有を使っているならば、これはセーフモードにしてからやる必要があります。それから、自分のアカウントを選択し、フルコントロールできるように変更すればOKです。まとめて削除できるようになるでしょう。
デスクトップとスタートメニューのショートカット、setup-x86{_64}.exeがインストール時に使ったダウンロードフォルダを削除します。しかし、再インストールする場合であれば、setup-x86{_64}.exeは既にあるダウンロードフォルダをキャッシュとして再利用できるので、残しておくと再ダウンロードせずに済むでしょう。
システムパスにCygwinを通していたら、同じ場所に再インストールする予定が無い限りは削除しましょう。CYGWIN環境変数も同様です。
最後に、徹底的にCygwinの痕跡を消したければ、レジストリのHKEY_LOCAL_MACHINEとHKEY_CURRENT_USER配下にある、Software/Cygwinを削除しましょう。しかしながら、ここまでの手順に従っていれば、既に削除すべきものは削除できています。通常、インストールフォルダは全てのレジストリに保持されています。
と、まあこんな感じか。
で、この通りにやって特に問題無くアンインストールできました。