如何在Fedora 21中安装acestream播放器

时间:2016-06-21 21:05:32

标签: openssl streaming fedora rpm fedora-21

我从here获取acestream_3.0.3_centos_7_amd64的方言,参考此thread,然后我尝试了:

[xiaobai@xiaobai acestream_3.0.3_centos_7_amd64]$ sh start.sh --client-console --bind-all 
2016-06-22 04:01:14,760|MainThread|acestream|platform=linux                                                                                                                                                                                   
2016-06-22 04:01:14,760|MainThread|acestream|app=acestream                                                                                                                                                                                    
2016-06-22 04:01:14,760|MainThread|acestream|version=3.0.3 code=3000300 revision=1355M date=2014-10-30                                                                                                                                        
2016-06-22 04:01:14,760|MainThread|acestream|use_local_db=False
2016-06-22 04:01:14,760|MainThread|acestream|use_m2crypto=True
2016-06-22 04:01:14,760|MainThread|acestream|enable debug: 0
2016-06-22 04:01:14,761|MainThread|acestream|get_default_api_version: 2
2016-06-22 04:01:14,761|MainThread|acestream.coreapp|use fixed i2i_port: 62062
2016-06-22 04:01:14,781|MainThread|acestream.coreapp|cannot load session config, use default
2016-06-22 04:01:14,786|MainThread|acestream|error during startup
Traceback (most recent call last):
  File "core.c", line 1108, in 
  File "core.c", line 211, in 
  File "core.c", line 193, in 
  File "core.c", line 687, in 
  File "ACEStream/Core/Session.py", line 159, in __init__
  File "ACEStream/Core/Overlay/permid.py", line 42, in generate_keypair
  File "/home/xiaobai/note/src/acestream/acestream_centos7/acestream_3.0.3_centos_7_amd64/lib/M2Crypto-0.21.1-py2.7-linux-x86_64.egg/M2Crypto/EC.py", line 269, in gen_params
    return EC(m2.ec_key_new_by_curve_name(curve), 1)
  File "/home/xiaobai/note/src/acestream/acestream_centos7/acestream_3.0.3_centos_7_amd64/lib/M2Crypto-0.21.1-py2.7-linux-x86_64.egg/M2Crypto/EC.py", line 106, in __init__
    assert m2.ec_key_type_check(ec), "'ec' type error"
ValueError: Received a NULL pointer.
[xiaobai@xiaobai acestream_3.0.3_centos_7_amd64]$ 

我也从here获得了acestream-launcher的目标,然后我尝试了:

[xiaobai@xiaobai acestream-launcher]$ python acestream_launcher.py acestream://example_for_stackoverflow 
Acestream engine running.
2016-06-22 04:05:49,506|MainThread|acestream|platform=linux
2016-06-22 04:05:49,507|MainThread|acestream|app=acestream
2016-06-22 04:05:49,507|MainThread|acestream|version=3.0.5.1 code=3000501 revision=1415 date=2014-12-10
2016-06-22 04:05:49,507|MainThread|acestream|use_local_db=True
2016-06-22 04:05:49,507|MainThread|acestream|use_m2crypto=True
2016-06-22 04:05:49,507|MainThread|acestream|enable debug: 0
2016-06-22 04:05:49,508|MainThread|acestream|get_default_api_version: 2
2016-06-22 04:05:49,508|MainThread|acestream.coreapp|use fixed i2i_port: 62062
2016-06-22 04:05:49,523|MainThread|acestream.coreapp|cannot load session config, use default
2016-06-22 04:05:49,524|MainThread|acestream|error during startup
Traceback (most recent call last):
  File "core.c", line 1147, in 
  File "core.c", line 241, in 
  File "core.c", line 187, in 
  File "core.c", line 691, in 
  File "ACEStream/Core/Session.py", line 160, in __init__
  File "ACEStream/Core/Overlay/permid.py", line 43, in generate_keypair
  File "/usr/lib64/python2.7/site-packages/M2Crypto/EC.py", line 126, in gen_key
    m2.ec_key_gen_key(self.ec)
ValueError: Received a NULL pointer.
Exception ValueError: 'Received a NULL pointer.' in <bound method EC.__del__ of <M2Crypto.EC.EC instance at 0x7f444f379d40>> ignored
Error authenticating to Acestream!
Media Player not running...
[xiaobai@xiaobai acestream-launcher]$

我还从here获取了acestream-engine的目录,然后我追加了#34; post_install&#34;以及此文件acestream-engine.install

post_install() {
  if ! getent passwd acestream &> /dev/null; then
    useradd -u 4035 -g video -m -s /usr/bin/nologin acestream
  fi
}

post_upgrade() {
  post_install
}

post_remove() {
  if getent passwd acestream &>/dev/null; then
    userdel acestream
  fi
}

post_install

,为了运行acestream-engine服务(请参阅此thread):

[xiaobai@xiaobai acestream-engine]$ systemctl start acestream-engine.service
Failed to start acestream-engine.service: Unit acestream-engine.service failed to load: No such file or directory.
[xiaobai@xiaobai acestream-engine]$ sh acestream-engine.install
acestream-engine.install: line 3: /usr/sbin/useradd: Permission denied
[xiaobai@xiaobai acestream-engine]$ sudo sh acestream-engine.install
[xiaobai@xiaobai acestream-engine]$ grep -i ace /etc/passwd
59:acestream:x:4035:39::/home/acestream:/usr/bin/nologin  
[xiaobai@xiaobai acestream-engine]$ sudo cp acestream-engine.service /lib/systemd/system/
[xiaobai@xiaobai acestream-engine]$ sudo systemctl start acestream-engine.service 

我也引用文件PKGBUILD(此文件仅存在于acestream_3.0.5.1_ubuntu_14.04_x86_64中,但实际上acestream_3.0.3_centos_7_amd64可以正常工作)并手动运行命令:

[xiaobai@xiaobai acestream_3.0.3_centos_7_amd64]$ sudo install -Dm755 acestreamengine "/usr/bin/acestreamengine"
[xiaobai@xiaobai acestream_3.0.3_centos_7_amd64]$ sudo mkdir "/usr/share/acestream/"
[xiaobai@xiaobai acestream_3.0.3_centos_7_amd64]$ install -d "/usr/share/acestream/"
[xiaobai@xiaobai acestream_3.0.3_centos_7_amd64]$ sudo cp -a data lib "/usr/share/acestream/"

之后,在acestream-engine目录中,执行:

[xiaobai@xiaobai acestream-engine]$ sudo install -Dm644 "acestream-engine.service" "/lib/systemd/system/acestream-engine.service"
[xiaobai@xiaobai acestream-engine]$ sudo systemctl start acestream-engine.service
Warning: Unit file of acestream-engine.service changed on disk, 'systemctl daemon-reload' recommended.
[xiaobai@xiaobai acestream-engine]$ sudo systemctl daemon-reload
[xiaobai@xiaobai acestream-engine]$ sudo systemctl start acestream-engine.service
[xiaobai@xiaobai acestream-engine]$ sudo systemctl restart acestream-engine.service

但它没有帮助。

之后,直接投放/usr/bin/acestreamengine --client-console --bind-all也会收到与上面sh start.sh --client-console --bind-all类似的错误。

--client-gtk,请参阅此thread

$ /usr/bin/acestreamengine --client-gtk
/usr/share/acestream/lib/pycompat27.so/ACEStream/Main/AppWrapperGtk.py:40: Warning: gsignal.c:2461: signal 'child-added' is invalid for instance '0x2aee250' of type 'GtkMenu'
Exception ValueError: 'Received a NULL pointer.' in <bound method EC.__del__ of <M2Crypto.EC.EC instance at 0x7f4c84256290>> ignored
$

我也尝过aceget.exp,请参阅此thread

[xiaobai@xiaobai aceget]$ ./aceget.exp --help           
can't find package sha1
    while executing
"package require sha1"
    (file "./aceget.exp" line 15)
[xiaobai@xiaobai aceget]$ dnf install tcllib
...
Running transaction
  Installing  : tcllib-1.16-5.fc21.noarch                                                                                                                                                                                                 1/1 
  Verifying   : tcllib-1.16-5.fc21.noarch                                                                                                                                                                                                 1/1 

Installed:
  tcllib.noarch 1.16-5.fc21                                                                                                                                                                                                                   

Complete!
[xiaobai@xiaobai aceget]$ ./aceget.exp --help
params: hostname/ip port-number TORRENT/INFOHASH/PID/RAW/URL url/pid/whatever
[xiaobai@xiaobai aceget]$
[xiaobai@xiaobai aceget]$ ./aceget.exp 127.0.0.1 62062 PID acestream://example_fro_stackoverflow
send: spawn id exp6 not open
    while executing
"send [format "HELLOBG version=%d\r" $apiversion]"
    (file "./aceget.exp" line 52)
[xiaobai@xiaobai aceget]$ 

sudo systemctl status acestream-engine.service失败了:

[xiaobai@xiaobai acestream-engine]$ sudo systemctl stop acestream-engine.service
[sudo] password for xiaobai: 
[xiaobai@xiaobai acestream-engine]$ sudo systemctl start acestream-engine.service
[xiaobai@xiaobai acestream-engine]$ sudo systemctl status acestream-engine.service
● acestream-engine.service - AceStream Engine (console)
   Loaded: loaded (/usr/lib/systemd/system/acestream-engine.service; disabled)
   Active: failed (Result: exit-code) since Wed 2016-06-22 04:42:44 MYT; 3s ago
  Process: 16865 ExecStart=/usr/bin/acestreamengine --client-console --bind-all (code=exited, status=1/FAILURE)
 Main PID: 16865 (code=exited, status=1/FAILURE)

Jun 22 04:42:44 xiaobai systemd[1]: acestream-engine.service: main process exited, code=exited, status=1/FAILURE
Jun 22 04:42:44 xiaobai systemd[1]: Unit acestream-engine.service entered failed state.
Jun 22 04:42:44 xiaobai systemd[1]: acestream-engine.service failed.
[xiaobai@xiaobai acestream-engine]$

START [在NULL pointer错误之前]

我列出了这些步骤,因为它可能有关系。 我得到ImportError: libcrypto.so.1.0.0

[xiaobai@xiaobai acestream_3.0.5.1_ubuntu_14.04_x86_64]$ /usr/bin/acestreamengine --client-console --bind-all
Cannot load libraries: path /usr/share/acestream/lib
Traceback (most recent call last):
  File "<entry>", line 6, in <module>
  File "core.c", line 71, in 
ImportError: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
[xiaobai@xiaobai acestream_3.0.5.1_ubuntu_14.04_x86_64]$ dnf install openssl-libs
Failed to synchronize cache for repo 'fedora-source' from 'https://mirrors.fedoraproject.org/metalink?repo=fedora-source-21&arch=x86_64': Cannot prepare internal mirrorlist: file "repomd.xml" was not found in metalink, disabling.
Using metadata from Wed Jun 15 21:50:48 2016 (6 days, 5:06:37 hours old)
Package openssl-libs-1:1.0.1k-12.fc21.x86_64 is already installed, skipping.
Package openssl-libs-1:1.0.1k-12.fc21.i686 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!
[xiaobai@xiaobai acestream_3.0.5.1_ubuntu_14.04_x86_64]$ dnf provides \*/libcrypto.so
Using metadata from Wed Jun 15 21:50:48 2016 (6 days, 5:10:33 hours old)
openssl-devel-1:1.0.1k-12.fc21.x86_64 : Files for development of applications which will use OpenSSL
Repo        : @System

openssl-devel-1:1.0.1j-1.fc21.i686 : Files for development of applications which will use OpenSSL
Repo        : fedora

openssl-devel-1:1.0.1j-1.fc21.x86_64 : Files for development of applications which will use OpenSSL
Repo        : fedora

openssl-devel-1:1.0.1k-12.fc21.i686 : Files for development of applications which will use OpenSSL
Repo        : updates

openssl-devel-1:1.0.1k-12.fc21.x86_64 : Files for development of applications which will use OpenSSL
Repo        : updates

[xiaobai@xiaobai acestream_3.0.5.1_ubuntu_14.04_x86_64]$ dnf install openssl-devel-1:1.0.1j-1.fc21.x86_64
Failed to synchronize cache for repo 'fedora-source' from 'https://mirrors.fedoraproject.org/metalink?repo=fedora-source-21&arch=x86_64': Cannot prepare internal mirrorlist: file "repomd.xml" was not found in metalink, disabling.
Using metadata from Wed Jun 15 21:50:48 2016 (6 days, 5:11:36 hours old)
Error: package openssl-devel-1:1.0.1j-1.fc21.x86_64 requires openssl-libs(x86-64) = 1:1.0.1j-1.fc21, but none of the providers can be installed
[xiaobai@xiaobai acestream_3.0.5.1_ubuntu_14.04_x86_64]$ 

所以我放弃了,并从fedora 22安装openssl rpm(在fedora 21中不存在):

[xiaobai@xiaobai openssl-spotify]$ wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/p/po/postinstaller/fedora/releases/22/x86_64/openssl1-1.0.0-2.fc22.x86_64.rpm
--2016-06-22 03:25:24--  ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/p/po/postinstaller/fedora/releases/22/x86_64/openssl1-1.0.0-2.fc22.x86_64.rpm
           => ‘openssl1-1.0.0-2.fc22.x86_64.rpm’
Resolving ftp.pbone.net (ftp.pbone.net)... 85.14.85.4
Connecting to ftp.pbone.net (ftp.pbone.net)|85.14.85.4|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /mirror/ftp.sourceforge.net/pub/sourceforge/p/po/postinstaller/fedora/releases/22/x86_64 ... done.
==> SIZE openssl1-1.0.0-2.fc22.x86_64.rpm ... 766220
==> PASV ... done.    ==> RETR openssl1-1.0.0-2.fc22.x86_64.rpm ... done.
Length: 766220 (748K) (unauthoritative)

openssl1-1.0.0-2.fc22.x86_64.rpm                            100%[===========================================================================================================================================>] 748.26K   441KB/s   in 1.7s   

2016-06-22 03:25:29 (441 KB/s) - ‘openssl1-1.0.0-2.fc22.x86_64.rpm’ saved [766220]

[xiaobai@xiaobai openssl-spotify]$
[xiaobai@xiaobai openssl-spotify]$ sudo rpm -ivh openssl1-1.0.0-2.fc22.x86_64.rpm   
warning: openssl1-1.0.0-2.fc22.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID example_for_SO: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:openssl1-1.0.0-2.fc22            ################################# [100%]
[xiaobai@xiaobai openssl-spotify]$ l /usr/lib/libcr[Tab]
libcrack.so.2        libcrack.so.2.9.0    libcrypt-2.20.so     libcrypto.so.10      libcrypto.so.1.0.1k  libcrypt.so          libcrypt.so.1        
[xiaobai@xiaobai openssl-spotify]$

然后我也dnf install m2crypto安装m2crypto-0.22.5-2.fc21.x86_64,否则在上面ImportError: No module named M2Crypto运行时会python acestream_launcher.py acestream://example_for_stackoverflow

结束[在NULL pointer错误之前]

正如你所看到的,我试图安装acestream播放器以在Fedora 21中播放acestream是多么令人沮丧。

所以我的问题是,在Fedora 21中安装acestream播放器的正确步骤是什么?

1 个答案:

答案 0 :(得分:0)

m2.ec_key_gen_key(self.ec) ValueError: Received a NULL pointer.

当你使用来自Fedora的openssl时会发生这种情况,这种情况很糟糕你需要使用openssl unhobble https://github.com/UnitedRPMs/openssl/releases/tag/1.0.2j-2