Tor 浏览器弹出更新提示已经很久了。今天,由于浏览器在播放视频时出现延迟和冻结/跳帧,我尝试了一下并更新了它,它警告我它将关闭我正在运行的实例并在后台重新安装。
- 我在 debian/ubuntu 20.04 KDE 上。现在任务栏快捷方式无法启动,只能打开一个显示“下载错误:404”的小窗口。
- 当我进入应用程序菜单的子菜单“Internet”时,我得到了剩余的应用程序“Tor 浏览器启动器设置”和“Tor 浏览器”。我还有第三个应用程序,也叫“Tor 浏览器”。所有应用程序都有相同的徽标。剩下的两个应用程序会打开那个小错误窗口,而第三个应用程序会启动 Tor 浏览器,我可以从中发布此帖子。
- 我现在有“两个” Tor,因为我能够启动的第三个应用程序是从 torproject 网站下载的,然后我将其文件夹解压到某个地方,在这里打开终端,然后执行
$ ./start-tor-browser.desktop --register-app
。所以我猜这两个前应用程序是从 apt 存储库中提取的(因为它们是通过“发现” KDE GUI 安装的)。 - 在从 torproject 网站下载新实例之前,我尝试使用 修复,
sudo apt remove tor torbrowser-launcher -y
但未使用--purge
以保存书签,然后使用 重新安装sudo apt install tor torbrowser-launcher -y
。就终端输出而言,一切顺利。但单击应用程序时仍然出现该错误... - 右键单击未运行的“Tor Browser”应用程序和运行的应用程序时,我注意到命令有所不同。运行的应用程序有
sh -c '"/home/user/softwares/tor-browser/Browser/start-tor-browser" --detach || ([ ! -x "/home/user/softwares/tor-browser/Browser/start-tor-browser" ] && "$(dirname "$*")"/Browser/start-tor-browser --detach)' dummy %k
,而旧的 apt-pull 应用程序有torbrowser-launcher %u
。出于好奇,我打开了一个终端并输入$ torbrowser-launcher
,然后我得到了以下输出:
Tor Browser Launcher By Micah Lee, licensed under MIT version 0.3.2 https://github.com/micahflee/torbrowser-launcher Downloading Tor Browser for the first time. Downloading https://aus1.torproject.org/torbrowser/update_3/release/Linux_x86_64-gcc3/x/en-US Latest version: 12.0 Downloading https://dist.torproject.org/torbrowser/12.0/tor-browser-linux64-12.0_en-US.tar.xz.asc Download Error: 404
那么,请问旧实例出了什么问题?它尝试从中拉取的 URL 是什么?我之所以问这个问题,是因为在新的 torproject 拉取的实例上,我在 apt 拉取的浏览器上保存的书签不见了……
此外,当从工作实例附加任务栏快捷方式时,它总是最终启动旧实例,因此弹出错误窗口。所以我总是必须深入应用程序菜单才能单击第三个应用程序。
如果你们知道如何恢复旧实例,或者从旧实例中提取我的配置文件以注入新实例,我将不胜感激
(找到这个https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804184但我不太明白,因为他们的体格似乎有些坚强……
另外,当我echo $PATH
这样做并猜测文件torbrowser-launcher
将在/usr/
,并搜索该文件以将 URL 结尾从“_en-US”修改为“_ALL”时,我真的找不到这样的文件来修改。只有一些 python 脚本什么也不做,只是导入一些 torbrowser-launcher 模块...)
答案1
torbrowser-launcher
我使用的是 Ubuntu 22.04,最新更新。从官方仓库安装。
进行这些更改应该会使torbrowser-launcher
程序按预期工作。但在执行此操作之前,您必须删除这些目录~/.cache/torbrowser
,~/.local/share/torbrowser
因为~/.config/torbrowser
它们保存了启动器的信息,修复将无法使用它们。
请注意,如果您有一个可以正常工作的 Tor 浏览器安装,您将丢失设置和正常工作的安装。使用此修复程序torbrowser-launcher
不会考虑现有安装,但可以了解启动器无法下载当前版本的原因。
首先在/usr/lib/python3/dist-packages/torbrowser_launcher/common.py
第 171 行更改此行,您需要 root 权限才能更改此文件:
if hasattr(self, 'settings') and self.settings['force_en-US']:
language = 'en-US'
else:
#language = self.language
language = "ALL"
注释掉该变量language
并再次设置其值"ALL"
,这样启动器就会在镜像中寻找正确的签名和 tarball 文件。
还对同一个文件的第 227 行进行了更改,这次在设置安装位置的变量时,启动器将引用语言设置并将其设置为目录安装的一部分,但启动器下载的实际包将引用目录,而不是tor-browser
像tor-browser_ALL
启动器期望的那样:
"tbb": {
"changelog": tbb_local
+ "/tbb/"
+ self.architecture
+ "/tor-browser"
#+ "/tor-browser_"
#+ language
+ "/Browser/TorBrowser/Docs/ChangeLog.txt",
"dir": tbb_local + "/tbb/" + self.architecture,
"dir_tbb": tbb_local
+ "/tbb/"
+ self.architecture
+ "/tor-browser",
#+ "/tor-browser_"
#+ language,
"start": tbb_local
+ "/tbb/"
+ self.architecture
+ "/tor-browser"
#+ "/tor-browser_"
#+ language
+ "/start-tor-browser.desktop",
},
这里有三个条目必须更改。它们都引用了/tor-browser_
+language
作为安装目录的一部分。必须将其更改为,/tor-browser
并注意第二个条目,因为它必须以 结尾,
。
这个修复很糟糕,它根本没有删除语言设置,只是修复了它以使其与镜像中可用的内容一起工作。我想我们需要等待开发人员对 repo 包进行修复,到那时这些更改将被重写并且希望仍然有效。
希望这可以帮助。
编辑:更新了第二条修复代码行并更新了代码块。同样,我们不应该这样做。如果您选择进行此修复,请密切注意。
答案2
sudo sed -i 's|self.language =.*|self.language = "ALL"|g' /usr/lib/python3/dist-packages/torbrowser_launcher/common.py
rm -rf ~/{cache,.local/share,.config}/torbrowser
ln -s ~/.local/share/torbrowser/tbb/x86_64/tor-browser ~/.local/share/torbrowser/tbb/x86_64/tor-browser_ALL
torbrowser-launcher
上面完整的代码应该足够了。
跑步/home/user/.local/share/torbrowser/tbb/x86_64/tor-browser_ALL/start-tor-browser.desktop
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/torbrowser_launcher/launcher.py", line 442, in success
self.run_task()
File "/usr/lib/python3/dist-packages/torbrowser_launcher/launcher.py", line 301, in run_task
self.run()
File "/usr/lib/python3/dist-packages/torbrowser_launcher/launcher.py", line 477, in run
if not self.check_min_version():
File "/usr/lib/python3/dist-packages/torbrowser_launcher/launcher.py", line 465, in check_min_version
for line in open(self.common.paths["tbb"]["changelog"], "rb").readlines():
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/.local/share/torbrowser/tbb/x86_64/tor-browser_ALL/Browser/TorBrowser/Docs/ChangeLog.txt'
ln -s ~/.local/share/torbrowser/tbb/x86_64{tor-browser,tor-browser_ALL}
然后运行torbrowser-launcher
答案3
sudo sed -i 's|self.language =.*|self.language = "ALL"|g' /usr/lib/python3/dist-packages/torbrowser_launcher/common.py
在终端中使用此命令从 common.py 设置自己的语言
希望它能起作用我已经在 Ubuntu 22.04 中测试过它。
ps:我从 snap comments 中找到了此命令,并且对我来说成功运行了。
答案4
Mint 21.5 上也是一样
删除了以下文件夹:
~/.cache/torbrowser
~/.local/share/torbrowser
~/.config/torbrowser
正如 Fellipe Weno 在他的帖子中所说,如果你安装了可正常运行的 Tor 浏览器,你可能会丢失这些设置。
使用 root 权限时,必须更改位于 /usr/lib/python3/dist-packages/torbrowser_launcher/common.py 的 common.py 文件
if hasattr(self, 'settings') and self.settings['force_en-US']:
language = 'en-US'
else:
#language = self.language
language = "ALL" #ADD THIS LINE
我还按照 Fellipe 的说明将 tor-browser_ 修改为 tor-browser
它适用于 Linux Mint
问候