这是从其他论坛上的某个人的问题中复制来的,该问题从未得到令人满意的答复。
几天前我在 Ubuntu 13.04 Desktop 上遇到了同样的错误。似乎 Red5 已安装,但由于某种原因无法运行。有人能解释一下这是怎么回事吗?为什么 dpkg 会失败?我的意思是,这是经过检查的 repo,它应该可以正常工作。
apt-get install red5-server
Selecting previously deselected package red5-server.
(Reading database ... 53491 files and directories currently installed.) Unpacking red5-server (from .../red5-server_0.9.1-4squeeze1_all.deb) ...
Setting up red5-server (0.9.1-4squeeze1) ...
Starting Flash streaming server : red5-server failed!
invoke-rc.d: initscript red5-server, action "start" failed.
dpkg: error processing red5-server (--configure):
subprocess installed post-installation script returned error exit status 1
configured to not write apport reports
Errors were encountered while processing:
red5-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
/usr/share/red5/log 中的日志文件 error.log 完全是空的。其他日志不是空的,但根据它们,根本没有问题。
我解决了这个问题,但我怀疑遇到同样问题的人是否会对这个解决方案感到满意。我尝试了所有我知道的方法,然后我失去了勇气,重新安装了整个 Ubuntu。
安装 Ubuntu 服务器 12.10。
我发现 Ubuntu 13 不太稳定,必须承认我对开发人员有些生气。好吧,在 Ubuntu 12.10 上我做了:
# apt-get install red5-server
无需提前获取 Java,一切都很顺利。但之后我只成功运行了 Red5 HTTP 服务器,但我尝试运行的任何演示都无法连接到它,也从未播放过任何 VOD。
事实上,我尝试安装 adminpanel 插件,但这导致整个 Red5 崩溃,无法启动。
我删除了插件,Red5 再次正常启动。最后我疯了,放弃了 Red5。转而安装了 Flumotion,但我不能说我使用它取得了更大的成功。
尽管如此,如果有人最终能给我们这个问题的真正答案,那就太好了。
答案1
安装服务器与运气无关。要么成功,要么失败。软件不是魔法。因此,首先强制完成安装,因为如果软件包系统损坏,您将无法安装其他所需的软件包(如果需要)。
此后即可解决服务器启动问题。
在全新的 Ubuntu 15.10 Wily(VM)安装中只需
sudo apt-get install red5-server
所有需要的依赖项都将正确安装。如果您不相信我,那么我会再次安装 Ubuntu 并为您提供安装的完整输出。;)
但是,如果安装脚本出现问题,则
/var/lib/dpkg/info/red5-server.postinst
那么查看一下脚本总是一个好主意。如果有这行
set -e
用。。。来代替
# set -e
然后运行
sudo apt-get install -f
或者找到服务器将启动的位置,例如
invoke-rc.d red5-server start
并注释掉启动程序。然后运行
sudo apt-get install -f
然后您需要找出为什么服务器无法启动但安装可以完成。
答案2
快捷方式
以下是已关闭的上游错误报告:在 Ubuntu 14.04 上安装失败 #29似乎 deb 包没有更新,原作者建议使用上游 tarball。他还提到:
如果有人知道如何更新.deb 文件,请告诉我们,我们会处理。
按照接受的答案Ubuntu Trusty red5-server 安装启动失败其中包含安装上游包的说明。
问题是由于无法启动服务:
Starting Flash streaming server : red5-server failed!
invoke-rc.d: initscript red5-server, action "start" failed.
正如 AB 的回答中提到的那样,#set -e
最快的解决方案是让安装完成,因为可以仅注释postinst
脚本中与服务相关的命令:
#invoke-rc.d red5-server start || exit $?
由于 12.10/13.04 不是 LTS,因此不再受支持。我在全新的 Ubuntu 14.04 上进行了测试。所有源组件均处于活动状态(主组件、宇宙组件、多元组件、受限组件)。
更新包列表
sudo apt-get update
尝试安装
red5-server
sudo apt-get install red5-server
[sudo] password for user: Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: red5-server : Depends: libtomcat6-java (>= 6.0.20-7) but it is not going to be installed E: Unable to correct problems, you have held broken packages.
因此
libtomcat6-java
首先安装:sudo apt-get install libtomcat6-java
然后安装
red5-server
sudo apt-get install red5-server
这是完整日志。安装成功后libtomcat6-java
,
然而,red5-server 服务启动后仅一秒钟就停止/杀死了,并且大多数尝试都无法启动。
user@user-14-sudo:~$ sudo service red5-server status
[sudo] password for user:
* Checking status of Flash streaming server red5-server [fail]
user@user-14-sudo:~$ sudo service red5-server start
* Starting Flash streaming server red5-server [ OK ]
user@user-14-sudo:~$ sudo service red5-server status
* Checking status of Flash streaming server red5-server [fail]
即使服务启动正常,它也会在一秒钟内崩溃。所以我认为我成功安装它而没有错误只是运气好。如果服务在启动时失败,则可能会引发错误postinst
。
我四处寻找类似的案例,对此提出了许多未解决的错误报告: