如何运行/使用Popcorn Time?

我使用这个链接安装了Popcorn Time: 从源文件安装Popcorn Time 但是我不知道如何使用或运行Popcorn Time。我需要打开我的种子客户端并下载电影,然后它就开始工作了吗?还是我需要打开它?如果我需要打开它,我该怎么做呢?我打开了Dash并尝试点击它,但什么都没有发生。 请帮帮我! :D

还是修不好。有没有关于解决方案的进展? - Kostanos
2个回答

这个问题已经通过升级Popcorn Time到Beta 0.3.0或更高版本来解决。这不是一个被修复的bug,而是一些Popcorn Time版本与一些Ubuntu版本之间的不兼容性。
如果你知道如何使用bittorrent客户端,并且有一个.torrent元文件或磁力链接要下载(无论是电影还是其他),你不需要使用Popcorn Time。
Popcorn Time可以自动化处理某些种子(尽管可能不像你自己选择的种子那样好,并且你可能已经配置了适合你需求的bittorrent客户端)。
学习如何使用BitTorrent客户端其实相当容易,而搜索种子也并不那么困难。(一些种子程序,比如qBittorrent,甚至整合了搜索功能。)所以,很多人认为他们需要Popcorn Time的实际上可能并不需要。我这样说并不是要侮辱这个软件,而是希望鼓励人们熟悉BitTorrent,这是一项广泛应用的技术,对于许多目的都非常有用,包括可靠且快速地分发像Ubuntu这样的免费操作系统。
但是如果你确实想要使用Popcorn Time,听起来你遇到了André Marinho's answer中提到的问题:在Popcorn Time的二进制分发中,它的可执行文件链接到了共享库libudev0,但是比12.04版本更新的Ubuntu使用的是libudev1尽管我相信这个问题在最新版本的Popcorn Time中已经修复了;请参考下面的内容。

假设不兼容性完全是表面上的问题——也就是说,可执行文件链接到了错误的(对于Ubuntu来说)库,但并不依赖于libudev0libudev1之间的任何差异——通过使用十六进制编辑器编辑可执行文件,使其声明与libudev1的链接,而不是应该可以解决问题。

这里还有另外几个解决方案。

确保你正在运行最新版本。

虽然Popcorn Time原版的开发已经停止, 但是其他人正在开发。现在提供32位和64位Linux版本,很可能可以直接在Ubuntu上使用。

所以请确保您正在运行最新版本,除非您有早期版本的特定需求。这本身可能会解决这个问题。

(我尝试了这个方法,在64位Utopic系统上。 Popcorn Time Beta 3.2的64位和32位版本都能够运行;两者都没有这个问题。我只尝试启动程序;我没有测试下载。)

只需创建所需库的符号链接即可。

我使用旧版本的Popcorn Time(Beta 0.29)在新版本的Ubuntu上复制了这个问题。然后我测试了这个问题并找到了以下解决方案,它有效。

如果您是Ubuntu系统上的管理员,那么您可以使用sudo命令以root身份运行命令。因此,您可以创建一个指向libudev1的符号链接,并将该链接命名为libudev0。然后,当Popcorn Time尝试使用libudev0时,它将自动无缝地使用libudev。
sudo ln -s /lib/$(arch)-linux-gnu/libudev.so.1 /lib/$(arch)-linux-gnu/libudev.so.0

你可能已经注意到在MrVaykadji's answerInstall Popcorn Time from source files的脚本中有非常相似的东西。实际上,这是完全相反的情况——在那里,脚本将一个名为libudev.so.0的链接称为libudev.so.1,因为旧版本的Ubuntu(具体来说是12.04)有libudev.so.0,而新版本的Popcorn Time需要libudev.so.1。相比之下,我在这里提供的解决方案是针对在新版本的Ubuntu上运行需要libudev.so.0旧版本的Popcorn Time

如果您不是管理员,可以使用符号链接解决方案。

如果你在使用的Ubuntu系统上无法以sudo身份运行命令(因为你不是管理员),或者你不想去操作系统的那些部分,你可以将符号链接放在其他地方,并以特殊方式运行Popcorn Time,使其使用该符号链接,即使它不在libs目录中。
假设你的家目录中有Popcorn Time程序文件夹,即~/Popcorn-Time。运行以下命令:
cd ~/Popcorn-Time
ln -s /lib/$(arch)-linux-gnu/libudev.so.1 libudev.so.0
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ./Popcorn-Time

ln -s命令将一个名为libudev.so.0的符号链接(指向系统的libudev.so.1)放置在Popcorn-Time文件夹中。第二个命令会将当前目录添加到LD_LIBRARY_PATH变量中,并运行Popcorn-Time

由于LD_LIBRARY_PATH不常用且可能不包含任何Popcorn Time运行所需的内容(实际上可能什么都没有),这个命令也可能起作用:

LD_LIBRARY_PATH=. ./Popcorn-Time

你也应该尝试一下,因为如果它不起作用的话,下一步就会变得更加复杂一些。
制作一个启动器
像那样从终端运行Popcorn Time(输入LD_LIBRARY_PATH=...)主要是为了测试以确保其设置正确。总是这样做可能会相当不方便。
所以你应该制作一个启动器来运行Popcorn Time。(根据你使用的桌面环境,你可能可以通过在桌面上右键单击并点击“创建启动器...”来完成这个操作。)
启动器应该被制作成运行以下命令:
env LD_LIBRARY_PATH=/home/username/Popcorn-Time /home/ek/Popcorn-Time/Popcorn-Time

我使用env,因为应用程序启动器图标通常不支持VARIABLE=value command语法。通常也不支持~和环境变量扩展,这就是为什么你必须给出Popcorn Time和你的库符号链接的完整显式名称的原因。

username替换为您的实际用户名。(如果Popcorn Time程序文件夹不在您的主文件夹中,请进一步编辑/home/username/Popcorn-Time的两个实例。)

另一种选择:创建一个指向Shell脚本的启动器

如果较短的命令LD_LIBRARY_PATH=. ./Popcorn-Time没有起作用,您可能需要编写一个Shell脚本来为LD_LIBRARY_PATH分配正确的值,并合并其先前的内容,同时启动Popcorn Time。

我建议将Shell脚本创建在Popcorn Time程序文件夹中,与Popcorn-Time可执行文件和libudev.so.0符号链接放在一起。

cd ~/Popcorn-Time      # if you're not already there
gedit popcorn-time.sh  # if you want you can use a different text editor than gedit

把这个放在文本文件中(这是你的shell脚本):
#!/bin/sh
DIR=~/Popcorn-Time
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DIR $DIR/Popcorn-Time

如果Popcorn Time程序文件夹不是~/Popcorn-Time,你可以方便地在脚本的一个地方进行更改:在DIR=行上。
完成后,保存文件,退出文本编辑器,并使shell脚本可执行。
chmod +x popcorn-time.sh

然后,当你制作启动器时,它应该运行的命令只是:

/home/username/Popcorn-Time/popcorn-time.sh

/home/username/Popcorn-Time替换为实际的Popcorn Time程序文件夹路径。所以如果是~/Popcorn-Time,只需将username替换为您的实际用户名。

我也遇到了一些安装Popcorn-Time的问题。最后,我成功地在Ubuntu 14.04 LTS上按照这个视频中的指南安装并正常运行它。
简而言之:
安装一个十六进制编辑器,比如ghex Install ghex。 在十六进制编辑器中打开文件Popcorn-Time(这是Popcorn Time的可执行文件)。 搜索libudev.(在GHex中,可以通过编辑 > 查找来进行搜索)。 应该能够找到libudev.so.0。将其替换为libudev.so.1(这是库文件Ubuntu的新版本中有udev)。 在十六进制编辑器中保存文件。(现在可以关闭十六进制编辑器了。) 现在应该能够运行Popcorn Time了。一种方法是在Nautilus(文件浏览器)中右键单击Popcorn-Time,然后点击运行。