阅读:13703回复:16
firefox顽固扩展卸载教程
firefox有时候会出现扩展无法卸载或者卸载后重启firefox依然在扩展列表里的情况。就个人经历有如下几种:
1. windows强制安装的。比如.net framework。 2. 独立程序为firefox安装的。Httpwatch basic editon。 3. 已安装的扩展卸载出错。这种情况我很早前遇到过,不过现在没遇过了。情况是在用nightly版本firefox时通过修改扩展版本号安装扩展后扩展依然不兼容,于是卸载。但是卸载后重启firefox,扩展列表里仍然存在该扩展。并且提示不兼容于xx版或者提示将在重启后卸载。总之就是无法以常规办法卸载掉。 4. 其它。或许还有其它情况,不过我遇到的就前面三种了。 本文将要介绍一种手动卸载扩展的方法。基本上可以对付所有情况。就本人而言,我用这种方法很久了,搞定了所有我遇到过的不能卸载的情况。授人以鱼不如授人以渔,在此将心得分享给大家,有需要的朋友可以跟本文一起学习,希望有帮助。 建议:最好准备一个多标签并且支持unix换行符的文本编辑器,比如emeditor。因为我们所要修改的文件包含unix换行符。建议多标签是因为方便。 准备工作:第一,关闭firefox,并且保证进程中没有它。第二,为保安全,请将自己配置文件夹备份到别处。第三,准备一些耐心。毕竟是要手工对付顽固或者莫名其妙的问题,所以需要一点耐心跟着学。不要被文章的长度吓到了,其实自己动手的地方不多,说白了只是清除四五个地方的信息而已。如果想简单点,最后也有简单的方法。如果仍然没有耐心,那就当误入藕花深处了。。 因为难以卸载的扩展我这里都卸载了。所以现在选一个常规扩展来做示范。下文以 adblock plus 为例。相信装了这个的朋友还是挺多的。 打开firefox的配置文件夹,我们所需要修改的文件有三个:extensions.rdf,extensions.ini,extensions.cache。此外还要删除相关的一些文件夹。 第一步,打开extensions.rdf 搜索adblock,目的是寻找与之相关的信息。我们找到这样一段内容: <RDF:Description RDF:about="urn:mozilla:item:{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}" NS1:installLocation="app-profile" NS1:version="1.1.1" NS1:optionsURL="chrome://adblockplus/content/ui/settings.xul" NS1:aboutURL="chrome://adblockplus/content/ui/about.xul" NS1:iconURL="chrome://adblockplus/skin/adblockplus.png" NS1:name="Adblock Plus" NS1:description="Ads were yesterday!" NS1:creator="Wladimir Palant" NS1:homepageURL="http://adblockplus.org/"> <NS1:type NC:parseType="Integer">2</NS1:type> <NS1:targetApplication RDF:resource="rdf:#$nIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$oIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$pIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$qIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$rIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$sIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$tIpmb3"/> </RDF:Description> 这段内容的范围是从<RDF:Description>到</RDF:Description>。 新建一个空白文本文档,把上面这段内容剪切出来粘贴到新文本文档中,后面有用。 在上面那段内容中有如下几行: <NS1:targetApplication RDF:resource="rdf:#$nIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$oIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$pIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$qIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$rIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$sIpmb3"/> <NS1:targetApplication RDF:resource="rdf:#$tIpmb3"/> 注意每行里后面以#$开头的字符串:#$nIpmb3、#$oIpmb3、#$pIpmb3、#$qIpmb3、#$rIpmb3、#$sIpmb3、#$tIpmb3。在extensions.rdf中分别搜索上面几个字符串。七个字符串找到七段内容: <RDF:Description RDF:about="rdf:#$nIpmb3" NS1:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" NS1:minVersion="3.0.9" NS1:oldMaxVersion="3.6b1pre" NS1:maxVersion="3.6b5" /> <RDF:Description RDF:about="rdf:#$oIpmb3" NS1:id="{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}" NS1:minVersion="2.0b1pre" NS1:maxVersion="2.1a1pre" /> <RDF:Description RDF:about="rdf:#$pIpmb3" NS1:id="{3550f703-e582-4d05-9a08-453d09bdfdc6}" NS1:minVersion="3.0b3pre" NS1:maxVersion="3.1a1pre" /> <RDF:Description RDF:about="rdf:#$qIpmb3" NS1:id="songbird@songbirdnest.com" NS1:minVersion="1.2.0" NS1:maxVersion="1.3.0a" /> <RDF:Description RDF:about="rdf:#$rIpmb3" NS1:id="{aa5ca914-c309-495d-91cf-3141bbb04115}" NS1:minVersion="0.2" NS1:maxVersion="0.3" /> <RDF:Description RDF:about="rdf:#$sIpmb3" NS1:id="{a79fe89b-6662-4ff4-8e88-09950ad4dfde}" NS1:minVersion="0.1" NS1:maxVersion="100.0" /> <RDF:Description RDF:about="rdf:#$tIpmb3" NS1:id="prism@developer.mozilla.org" NS1:minVersion="1.0b1" NS1:maxVersion="1.0.*" /> 每段内容的范围是从包括该字符串的那一行的<RDF:到/>删除这七段内容。其实,这七段内容中只有包含{ec8030f7-c20a-464f-9b0e-13a3a9e97384}(这个是firefox的uid)的第一段是跟firefox相关的。其它几段是与其它程序如prism、songbird相关的。懒人可以只删一个,一般是第一个。有洁癖的人可以都删除。 好了,extensions.rdf这个文件修改完毕,保存它。 第二步,打开extensions.ini 在第一步中我们把最初找到的那段内容剪切到新文本文档中备用了。该文档中第一行内容是: <RDF:Description RDF:about="urn:mozilla:item:{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}" 注意大括号包含的内容:{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d},这个就是该扩展的uid。 现在在extensions.ini中查找这串内容,内容很少,其实目视就能找到: Extension18=D:\Mozilla Firefox\XXX\extensions\{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d} 删除这一行。删除后,下面几行内容中Extension后面的序号就不连续了,自己要手动纠正。纠正完毕后保存extensions.ini。 第三步,打开extensions.cache 在第一步中我们把最初找到的那段内容剪切到新文本文档中备用了。该文档中前两行内容是: <RDF:Description RDF:about="urn:mozilla:item:{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}" NS1:installLocation="app-profile" 第一行包含了该扩展的uid,第二行中引号里的app-profile表示这个扩展的安装类型。除了app-profile之外还可能有app-global、winreg-app-user、winreg-app-global。 打开extensions.cache,可以看到每一行内容都有四列。第一列是安装类型,第二列是扩展的uid,第三列是扩展的路径,最后一列是最后修改时间。在extensions.cache中查找该扩展的uid,也就是上一步中的{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}。找到的内容如下: app-profile {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d} rel%{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d} 1255143384 当然要删除这一行,不过首先要依据这一行开头所表示的安装类型做不同的处理: app-profile:这类扩展是安装在你的配置文件夹中的,最老实。到配置文件夹里面的extensions文件夹中删除以该扩展的uid命名的文件夹,本例中adblock plus的是{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d} 。然后删除本行内容,保存extensions.cache文件。 app-global:这是全局安装。与前者不同,这类扩展安装到了firefox主程序目录下的extensions目录中。进入这个目录,删除以该扩展的uid命名的文件夹。然后删除本行内容,保存extensions.cache文件。 winreg-app-user:这是通过注册表为当前windows用户安装的。比如,我的idm扩展在本文件中是这样一行: winreg-app-user <!-- e --><a href="mailto:mozilla_cc@internetdownloadmanager.com">mozilla_cc@internetdownloadmanager.com</a><!-- e --> abs%C:\Documents and Settings\XXX\Application Data\IDM\idmmzcc3 1259503920 。 它的uid是mozilla_cc@internetdownloadmanager.com,它的路径是C:\Documents and Settings\XXX\Application Data\IDM\idmmzcc3。这种情况,首先依据第三列确定扩展安装目录,然后删除该文件夹。然后打开注册表定位到HKEY_CURRENT_USER\Software\Mozilla\Firefox\Extensions,删除包含该扩展uid的键值。最后删除本行内容,保存extensions.cache文件。 winreg-app-global:这是通过注册表为本机所有windows用户安装的。比如.net framework。与上面那种情况处理方法基本相同。首先依据第三列确定扩展安装目录,然后删除该文件夹。所不同的是,打开注册表定位到HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Firefox\Extensions,删除包含该扩展uid的键值。最后删除本行内容,保存extensions.cache文件。 好了,至此我们清除了firefox配置文件中包含该扩展信息三个文件extensions.rdf,extensions.ini,extensions.cache,并且删除了扩展的文件夹以及注册表信息。现在启动firefox,就会发现顽固扩展都卸载啦。 附,无论是传统的卸载方式还是手动卸载方式,有些扩展都会有一些残留信息。 1:有些扩展在配置文件夹里的pref.js文件也会残留一些信息。可以在关闭firefox的情况下依据扩展名称(有的是略称)来手动删除,效果跟在卸载扩展后在about:config中重置相关条目一样。 2:有些扩展在配置文件夹中也会有一些文件。比如adblock plus在配置文件夹下有adblockplus文件夹,里面包含了adblock的规则列表以及过滤计数,backword有backword文件夹,ScrapBook有ScrapBook文件夹,tmp有sessionbackups文件夹和session.rdf,foxyproxy有foxyproxy.xml文件。可以依据扩展名称(有的是略称)来手动删除。 附2,更简单的方法。 前面所说的方法非常适合不折腾会死族的人。对于懒人还有更简单的方法: 1.与前面一样,在extensions.rdf查找该扩展的uid。 2.在extensions.cache中通过该扩展的uid确定它的安装类型和路径。然后删除相关文件夹以及注册表信息。 3.删除配置文件夹里的extensions.rdf、extensions.ini和extensions.cache三个文件。下次启动firefox时会自动重建的。 以上方法在windows xp平台下进行的操作。其它平台可以类推。 *_* 连示范带写贴外加标注搞了一个多小时,诸君晚安~~ |
|
1楼#
发布于:2010-01-03 02:22
长见识了,多谢
|
|
2楼#
发布于:2010-01-03 02:22
这个必须得记号一下!
|
|
3楼#
发布于:2010-01-03 02:22
呵呵,我没这么仔细,一般删除IDM的扩展我都是先搜索其xpi所安装的文件夹全部删除,然后到注册表这个位置删除,最后傻瓜式直接删除extesnion打头的三个文件让FF自建。
|
|
|
4楼#
发布于:2010-01-03 02:22
不错的文章,顶一下
|
|
5楼#
发布于:2010-01-03 02:22
哇好及时啊
这几天正愁呢 |
|
6楼#
发布于:2010-01-03 02:22
谢谢分享,收藏了
|
|
7楼#
发布于:2010-01-03 02:22
看着挺麻烦的,不知道能不能整个程序删。
|
|
8楼#
发布于:2010-01-03 02:22
mmark
|
|
9楼#
发布于:2010-01-03 02:22
好帖留名
|
|
10楼#
发布于:2010-01-03 02:22
先看看,遇到这情况时再动手术。
|
|
11楼#
发布于:2010-01-03 02:22
进来学习学习
|
|
12楼#
发布于:2010-01-03 02:22
好文章呀。。。支持
|
|
13楼#
发布于:2010-01-03 02:22
好贴子。留名碰到问题再说
|
|
14楼#
发布于:2010-01-03 02:22
仔细研究
谢谢分享了 |
|
上一页
下一页