MacでCisco Anyconnect Secure Mobility Clientのアンインストール手順を間違えた場合

Macでアプリケーションをアンインストールする際、
「アプリケーションフォルダ(Application)」にあるものをそのままゴミ箱に持って行って
削除している方も多いのではないだろうか。

しかし、Cisco Anyconnect Secure Mobility Client のように、アンインストール用のプログラムが用意されているにも関わらず、うっかりゴミ箱に放り込んで完全に削除してしまった際に起きるハマりが以下である


- 再インストールしようとすると**「既にインストール済みです」**と怒られる
- アンインストール用のプログラムも無い、そのまま消してしまった。
- あったとしても**「削除済みです」**
- **どこにゴミをおいているのかわからない**のでクリーンに出来ない
- 調べてもよくわからない上にまともな前例が無いので**結局クリーンインストール**


非常にどうしようもない。というより一番最後は**「こんな馬鹿な事するのは私だけ」**と思い知らされる瞬間だったりする。悔しい。


↓実際にAppleの公式コミュニティでもこのようにお説教されている
![スクリーンショット 2016-03-13 17.48.06.png](https://qiita-image-store.s3.amazonaws.com/0/98751/019edcc4-f993-2fd4-c497-ded13dd44082.png)
**「アンインストール出来てませんよ、それ。 サードパーティ製のソフトウェアはドラッグアンドドロップでアプリケーションフォルダ内のものをゴミ箱に移してはならない」**


・・・


とりあえず今回はどうしても業務で使わなければならず、クリーンインストールもしたくない為、Cisco Anyconnect Secure Mobility Clientの再インストールが出来るようにするまでを記す。



#行ったこと1
[Q. How do I uninstall Cisco VPN Client on Mac OS X?](http://www.cisco.com/c/en/us/support/docs/security/anyconnect-secure-mobility-client/116080-productqanda-vpnclients-00.html#anc3 "")

手動で片っ端からファイルを削除する

```bash:
sudo -s
rm -rf /System/Library/StartupItems/CiscoVPN
rm -rf /Library/StartupItems/CiscoVPN
rm -rf /System/Library/Extensions/CiscoVPN.kext
rm -rf /Library/Extensions/CiscoVPN.kext
rm -rf /Library/Receipts/vpnclient-kext.pkg
rm -rf /Library/Receipts/vpnclient-startup.pkg
reboot
```
一般的なバージョンの人は一旦これでOK。
どうやら入れたVPNクライアントのバージョンが 4.9.01.0180の場合はこれも必要らしい。

```bash:4.9.01.0180な人のみ↓
sudo -s
rm -rf /Cisco\ VPN\ Client.mpkg
rm -rf /com.nexUmoja.Shimo.plist
rm -rf /Profiles
rm -rf /Shimo.app
exit
```

以下は更に古いバージョンや、Shimoとかを使ってる人向けらしい

```bash:
sudo -s
rm -rf /Library/Application\ Support/Shimo
rm -rf /Library/Frameworks/cisco-vpnclient.framework
rm -rf /Library/Extensions/tun.kext
rm -rf /Library/Extensions/tap.kext
rm -rf /private/opt/cisco-vpnclient
rm -rf /Applications/VPNClient.app
rm -rf /Applications/Shimo.apprm -rf /private/etc/opt/cisco-vpnclient
rm -rf /Library/Receipts/vpnclient-api.pkg
rm -rf /Library/Receipts/vpnclient-bin.pkg
rm -rf /Library/Receipts/vpnclient-gui.pkg
rm -rf /Library/Receipts/vpnclient-profiles.pkg
rm -rf ~/Library/Preferences/com.nexUmoja.Shimo.plist
rm -rf ~/Library/Application\ Support/Shimo
rm -rf ~/Library/Preferences/com.cisco.VPNClient.plist
rm -rf ~/Library/Application\ Support/SyncServices/Local/TFSM/com.
   nexumoja.Shimo.Profiles
rm -rf ~/Library/Logs/Shimo*
rm -rf ~/Library/Application\ Support/Shimo
rm -rf ~/Library/Application\ Support/Growl/Tickets/Shimo.growlTicket
exit
```

ただし、これらを行っても再インストールは出来なかった。つまり、ゴミファイルがまだ残っているのである。
それならもう「インストールするやアンインストールする時に参照したりいじるフォルダ・ファイルを片っ端から見ていこう」と思って以下を行った。

#行ったこと2
###vpn.pkgの中身を開く

anyconnectをダウンロードしてきた際、以下のようにdmgではなくpkg形式で構築されている。
dmg形式と違ってpkg形式はフリーソフトを使わないと中身が開けなかった。

![スクリーンショット 2016-03-13 18.03.41.png](https://qiita-image-store.s3.amazonaws.com/0/98751/5c7cc78f-5193-52ba-e7e0-92e6688b3155.png)


1. [unpkg](https://www.timdoug.com/unpkg/)　をインストールする。※*Mac OS X 11.2でも動作を確認*

1. unpkgを起動したら、Dockに[vpn.pkg]をドラッグドロップする
1. ターミナル上からアンパッケージしたデータの中(デフォルトだとデスクトップ)にあるスクリプトを起動する

```bash:
$sudo ~/Desktop/vpn/opt/cisco/anyconnect/bin/vpn_uninstall.sh
 Uninstalling Cisco AnyConnect Secure Mobility Client...
 find: /Applications/Cisco: No such file or directory ←多分アプリケーションフォルダのやつ消したら出るやつ
 Successfully removed Cisco AnyConnect Secure Mobility Client from the system.
```
これでゴミデータが消える。

今回の場合は**vpn_uninstall.sh**を叩くだけで
Cisco Anyconnect Secure Mobility Clientの再インストールが可能になった。
場合によっては同フォルダにある **anyconnect_uninstall.sh**も叩くと良いかもしれない。


#参考
1. [How do I uninstall Cisco VPN Client on Mac OS X?](http://www.cisco.com/c/en/us/support/docs/security/anyconnect-secure-mobility-client/116080-productqanda-vpnclients-00.html#anc3)