eilern
狐狸大王
狐狸大王
  • UID22371
  • 注册日期2007-12-20
  • 最后登录2017-10-13
  • 发帖数468
  • 经验10枚
  • 威望1点
  • 贡献值20点
  • 好评度13点
  • 社区居民
阅读:13290回复:16

firefox顽固扩展卸载教程

楼主#
更多 发布于:2010-01-03 02:22
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平台下进行的操作。其它平台可以类推。

*_* 连示范带写贴外加标注搞了一个多小时,诸君晚安~~

最新喜欢:

文科文科 god01agod01a softwormsoftwo...
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
1楼#
发布于:2010-01-03 02:22
长见识了,多谢
msky
千年狐狸
千年狐狸
  • UID14649
  • 注册日期2006-09-21
  • 最后登录2023-04-03
  • 发帖数2959
  • 经验166枚
  • 威望0点
  • 贡献值12点
  • 好评度9点
  • 社区居民
2楼#
发布于:2010-01-03 02:22
这个必须得记号一下!
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-04-22
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1115点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
3楼#
发布于:2010-01-03 02:22
呵呵,我没这么仔细,一般删除IDM的扩展我都是先搜索其xpi所安装的文件夹全部删除,然后到注册表这个位置删除,最后傻瓜式直接删除extesnion打头的三个文件让FF自建。
Firefox More than meets your experience
pho
pho
千年狐狸
千年狐狸
  • UID4300
  • 注册日期2005-03-22
  • 最后登录2016-12-14
  • 发帖数2597
  • 经验40枚
  • 威望0点
  • 贡献值16点
  • 好评度2点
  • 社区居民
  • 忠实会员
4楼#
发布于:2010-01-03 02:22
不错的文章,顶一下
zhx22601
小狐狸
小狐狸
  • UID30810
  • 注册日期2009-10-24
  • 最后登录2012-03-28
  • 发帖数89
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2010-01-03 02:22
哇好及时啊
这几天正愁呢
just4fun
千年狐狸
千年狐狸
  • UID30408
  • 注册日期2009-09-17
  • 最后登录2016-04-28
  • 发帖数1497
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度2点
6楼#
发布于:2010-01-03 02:22
谢谢分享,收藏了
gchao
非常火狐
非常火狐
  • UID15074
  • 注册日期2006-10-20
  • 最后登录2022-08-22
  • 发帖数660
  • 经验11枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
7楼#
发布于:2010-01-03 02:22
看着挺麻烦的,不知道能不能整个程序删。
fghxy
火狐狸
火狐狸
  • UID27446
  • 注册日期2008-12-14
  • 最后登录2011-04-15
  • 发帖数156
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2010-01-03 02:22
mmark
sglznc
小狐狸
小狐狸
  • UID28050
  • 注册日期2009-02-20
  • 最后登录2010-02-20
  • 发帖数16
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2010-01-03 02:22
好帖留名
JiaYao
小狐狸
小狐狸
  • UID31721
  • 注册日期2010-01-23
  • 最后登录2013-02-10
  • 发帖数15
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2010-01-03 02:22
先看看,遇到这情况时再动手术。
GOODGOGOGO
火狐狸
火狐狸
  • UID26563
  • 注册日期2008-10-06
  • 最后登录2010-12-11
  • 发帖数111
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
11楼#
发布于:2010-01-03 02:22
进来学习学习
angelfish
火狐狸
火狐狸
  • UID11795
  • 注册日期2006-03-05
  • 最后登录2016-08-16
  • 发帖数164
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
12楼#
发布于:2010-01-03 02:22
好文章呀。。。支持
lx97
小狐狸
小狐狸
  • UID31922
  • 注册日期2010-02-02
  • 最后登录2010-09-17
  • 发帖数17
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
13楼#
发布于:2010-01-03 02:22
好贴子。留名碰到问题再说
傲霜斗雪
火狐狸
火狐狸
  • UID30646
  • 注册日期2009-10-10
  • 最后登录2019-07-27
  • 发帖数122
  • 经验27枚
  • 威望0点
  • 贡献值12点
  • 好评度0点
  • 社区居民
14楼#
发布于:2010-01-03 02:22
仔细研究
谢谢分享了
上一页
游客

返回顶部