更新 TOR 搞砸了我的客户端:“下载错误:404”

更新 TOR 搞砸了我的客户端:“下载错误:404”

Tor 浏览器弹出更新提示已经很久了。今天,由于浏览器在播放视频时出现延迟和冻结/跳帧,我尝试了一下并更新了它,它警告我它将关闭我正在运行的实例并在后台重新安装。

  1. 我在 debian/ubuntu 20.04 KDE 上。现在任务栏快捷方式无法启动,只能打开一个显示“下载错误:404”的小窗口。
  2. 当我进入应用程序菜单的子菜单“Internet”时,我得到了剩余的应用程序“Tor 浏览器启动器设置”和“Tor 浏览器”。我还有第三个应用程序,也叫“Tor 浏览器”。所有应用程序都有相同的徽标。剩下的两个应用程序会打开那个小错误窗口,而第三个应用程序会启动 Tor 浏览器,我可以从中发布此帖子。
  3. 我现在有“两个” Tor,因为我能够启动的第三个应用程序是从 torproject 网站下载的,然后我将其文件夹解压到某个地方,在这里打开终端,然后执行$ ./start-tor-browser.desktop --register-app。所以我猜这两个前应用程序是从 apt 存储库中提取的(因为它们是通过“发现” KDE GUI 安装的)。
  4. 在从 torproject 网站下载新实例之前,我尝试使用 修复,sudo apt remove tor torbrowser-launcher -y但未使用--purge以保存书签,然后使用 重新安装sudo apt install tor torbrowser-launcher -y。就终端输出而言,一切顺利。但单击应用程序时仍然出现该错误...
  5. 右键单击未运行的“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-browsertor-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

问候

相关内容