![Flash 无法与 ubuntu 12.10 64 位兼容](https://linux22.com/image/830435/Flash%20%E6%97%A0%E6%B3%95%E4%B8%8E%20ubuntu%2012.10%2064%20%E4%BD%8D%E5%85%BC%E5%AE%B9.png)
我花了几乎一整天的时间尝试让 Flash 正常工作。我首先尝试安装adobe-flashplugin
。Firefox 检测到了插件about:plugins
,但没有显示版本号 [它留空]。
我尝试删除adobe-flashplugin
并安装ubuntu-restricted-extras
。但结果相同。
这是我的输出dpkg -l \*flash\*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===============================-====================-====================- ====================================================================
un flashplayer-mozilla <none> (no description available)
un flashplugin <none> (no description available)
un flashplugin-downloader <none> (no description available)
ii flashplugin-installer 11.2.202.261ubuntu0. amd64 Adobe Flash Player plugin installer
un flashplugin-nonfree <none> (no description available)
un libflashsupport <none> (no description available)
有任何想法吗?
答案1
Shockwave 播放器仅适用于 Windows。
解决方案是在 wine 中的 Firefox 中安装 Shockwave,然后使用 mozplugger 从 Linux Firefox 调用它。
这是一个指导。它有几个步骤。对我有用。
答案2
这是调试此问题的一种方式。
您安装的不一定是您实际运行的。~/.mozilla/plugins
例如,在以下各个位置安装旧版本的 Flash 是很常见的。
为了弄清楚浏览器中实际加载了什么,我建议采用以下 3 步方法:
- 找出加载 flash 插件的进程的进程 ID,这取决于浏览器,例如在 Firefox 中,你需要查找一个名为
plugin-container
- 运行
lsof -p <pid> | grep libflashplayer
(替换为您在步骤 1 中发现的进程 ID),以查看实际加载的<pid>
完整路径。libflashplayer.so
- 最后,一旦您获得了 DSO 的完整路径名,您就可以通过运行它并提取类似版本号的内容(用点分隔的 4 个数字)来
libflashplayer
找出它的版本strings
which-flash
这是在正在运行的 Firefox 上实现的小型概念验证 shell 脚本。
#!/bin/sh
#
# which flashplayer are we using?
#
# look for firefox-bin and/or plugin-container
#
pat="/([f]irefox-b|[p]lugin-co)"
for arg in "$@"; do
case "$arg" in
moz*) pat="/[m]ozilla" ;;
-x) set -x ;;
esac
done
# filter out parent procs (run-mozilla.sh) and grab the pids
pids=`ps xawww | egrep "$pat" | grep -v run-mozilla.sh | sed 's,^ *,,' | cut -d' ' -f 1`
for pid in $pids; do
echo ======= pid: $pid =======
output=`lsof -p $pid | grep libflashplayer`
case "$output" in
'') echo "You need to load flash in the browser first" 1>&2;
exit 1 ;;
esac
echo "$output"
# extract the dso from the matching line:
dso=`echo $output| awk '{print $NF}'`
echo "flashplayer is in: $dso"
# Also print version of libflashplayer:
# Unfortunately there are many numbers in this dso, so we have
# to restrict the major version number...
echo version: `strings $dso | grep -P '^(1[1-9])\.\d+\.\d+\.\d+\$'`
done
Chrome 类似,只是在第一步中您需要查找具有运行时参数的进程,例如:--plugin-path=/usr/lib/flashplugin-installer/libflashplayer.so
在 ps 输出中。YMMV。
完成所有这些过程的原因是为了确保您实际运行的版本是您认为的版本(官方安装的版本/usr/lib/flashplugin-installer/libflashplayer.so
)。如果不是,您可以删除旧版本并尝试重新启动浏览器,看看它是否加载了正确的版本。顺便说一句,我也在运行 Ubuntu 64 位,libflashplayer 加载和运行没有问题。截至 2013-03-17 的版本为 11.2.202.275
答案3
对于 FireFoxes 来说,安装 Flash 并不难,但你必须接受一个事实:即使是 OpenSource-Gnash 开发人员也不允许根据法律使用 Adobe Flash。
1]获取压缩文件从 Adobe(R) Flash(R) 官方网站按“下载”按钮下载https://www.adobe.com/products/flashplayer.html
2] 提取 tar.gz库文件,其他文件可以忽略并删除
3] 打开文件管理器(如 nautilus 或其他),然后粘贴库文件进入(如果你的隐藏 .mozilla 文件夹中没有名为“plugins”的目录,则只需使用 *right-klick-New 创建它并将其命名为“插件“)在你的主目录中
CLI 替代方案(不作为 root 用户):
mkdir ~/.mozilla/plugins
mv /path/where/you/extracted/libflashplayer.so ~/.mozilla/plugins
4](关闭并)打开 Firefox 并检查地址栏中是否存在 Shockwave Player
about:plugins
(如果您按照说明操作,它就在那里!只需在“附加组件 → 附加组件”中禁用其他闪存即可确保使用专有闪存)
只要 HTML5 不会将它赶出地球,您就可以尽情享受它;)