遇到这种问题,一个正常的具有自主学习能力的人的行为是这样的:
比如google "linux get path of symlink",(下面是我当前的搜索结果):
如果你说我没有科学上网的方法,访问不到google,那用微软的http://bing.com等搜索引擎也行,这个不墙(下面是我当前的搜索结果):
(别问我为什么不用某度搜索技术类问题,我是不是不爱国,不支持国产?我拒绝回答)
即使我无脑打开我上面这两个搜索结果的第一个链接,它们都指向同一个页面,打开看是这样的:
我们几乎一眼可以看到"readlink"命令这个关键字,同时还提到了realpath。但是我们不能对于网上不名来源的“知识”无脑的照搬,我们需要通过自己一定量的调研确认信息的真实可靠性。
# man readlink NAME readlink - print resolved symbolic links or canonical file names ... DESCRIPTION Note realpath(1) is the preferred command to use for canonicalization functionality. Print value of a symbolic link or canonical file name -f, --canonicalize canonicalize by following every symlink in every component of the given name recursively; all but the last component must exist -e, --canonicalize-existing canonicalize by following every symlink in every component of the given name recursively, all components must exist -m, --canonicalize-missing canonicalize by following every symlink in every component of the given name recursively, without requirements on components existence ...
Linux系统过通过man readlink直接查看readlink的文档,我们从中了解到"-f"选项的意思,以及和其相似的-e, -m选项的意思,以及下面更多选项可供我们根据我们遇到的具体问题进行选择。
同时我们还看到一句关于realpath的提示:"Note realpath(1) is the preferred command to use for canonicalization functionality." 结合你在搜索页中看到的信息,综合起来可以大概知道realpath可能是新开发的,比readlink更适合"canonicalization functionality",但是如果你使用特别古老的系统,那么你最好注意一下自己的系统里是否有realpath,如果有就推荐使用,如果没有就用readlink。当然你也可以觉得readlink的兼容性更好些,总之这是你获得一定量的信息后的自我判断。
比如使用"readlink -f $filename",或者使用realpath。或者适合你所面对的问题的其它合适的方法来follow symlink。
如果通过很多研究学习你仍然对一些深入的地方产生问题,而找不到答案。这时候将你的问题以及你发现问题的过程详细的描述出来,到靠谱的地方提问。比如你读了上面的文档,你发现文档中一直提到“canonical”(或"canonicalization", "canonicalize")这个词。
那这个时候你就应该问自己,"canonical file name"是指什么?单从英语单词的字面意思“标准的文件名”很难知道它具体指什么,那到底什么样的文件名是“canonical”的,什么样的不是?如果你产生这样的提问,那至少说明你迈开了主动学习和思考的第一步了。这时候你就需要对这个问题进行求知。哪怕你把这样的问题拉上来问,我觉得都比这个问题的含金量高一些。当然,你可以直接通过搜索引擎搜索关键字"canonical file names",去看看能不能找到问题的一些合理解释。比如你通过阅读一些搜索结果,了解到这个"canonical file names"针对的是像:
/foo/bar/aaa/bbb/../../aaa/ccc/../../xxx/file
这样的路经名来说的,这种就可以理解为非"canonical"的情况,为了"canonicalize(标准化)"这样的路径,就需要用到readlink的"-f, -e, -m"选项了。那应该用哪个呢?就需要你对这三个选项的说明仔细的阅读。很明显我上面那个路径从头到尾都是胡乱写的,我的系统里根本没有这个路径里的任何一个,所以为了"canonicalize"这样一个路径,"-m"选项才是合适的(如果你使用别的选项大概率你什么也得不到):
$ readlink -m /foo/bar/aaa/bbb/../../aaa/ccc/../../xxx/file /foo/bar/xxx/file
到此你不光了解了你的问题的一些解决方式,还对解决方式有了一些深入的了解。
不管你从网上得到什么回答,都要保持怀疑和求索的态度(这里的怀疑不是让你抬杠,是让你对自己的知识储备负责,不用你对其它不相干的成年人负责),不能无脑的照单全收。任何人说出来的话都是有局限性和片面性的。
用 ls -la 就好了。
[root@dad5600 ~]# ls -la /usr/lib64/chromium-browser/libffmpeg.so lrwxrwxrwx 1 root root 28 Jan 8 10:35 /usr/lib64/chromium-browser/libffmpeg.so -> /usr/share/code/libffmpeg.so [root@dad5600 ~]#
解决办法很简单。
就是建立一个符号链接,也被称为符号链接或软链接。
这是一种特殊类型的文件,指向另一个文件或目录。
下面将用一条 ln 命令来创建符号链接指向 CODEC 视频解码器 libffmpeg.so:
# ln -s /usr/share/code/libffmpeg.so /usr/lib64/chromium-browser/libffmpeg.so
就这么简单的操作, 就可以让不能正常播放直播视频Chromium 浏览器正常了。
其他测试链接
https://www.bbc.com/news/av/newsbeat-53818567
当然, FFMPEG 都没有安装的话, 可以提前用以下命令行
dnf -y install x265 dnf -y install x264 dnf -y install ffmpeg dnf groupinstall multimedia -y [root@dad5600 ~]# dnf -y install x265 Last metadata expiration check: 1:47:48 ago on Mon 29 Nov 2021 06:57:42 AM PST. Package x265-3.5-2.fc35.x86_64 is already installed. [root@dad5600 ~]# dnf -y install x264 Last metadata expiration check: 1:47:52 ago on Mon 29 Nov 2021 06:57:42 AM PST. Package x264-0.163-2.20210613git5db6aa6.fc35.x86_64 is already installed. [root@dad5600 ~]# dnf -y install ffmpeg Last metadata expiration check: 1:48:07 ago on Mon 29 Nov 2021 06:57:42 AM PST. Package ffmpeg-4.4.1-1.fc35.x86_64 is already installed.
SEE ALSO
https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Win_x64/949412/ https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html
..