昨天有个客户的机器要装FFMPEG,系统是CentOS7,刚登上他的机器我的内心是憔悴的。。。
7的系统硬是装了6的第三方yum源,然后不知道他是怎么搞的,系统内硬生生被他装了一个FFMPEG,但是TM的这个FFMPEG基本上没有装任何编码器。。。
然后我以为他是用yum装的,但是后来发现不是yum装的,然后我就想办法清理掉不兼容的yum源,然后我又用yum源给他装了个,但是这个yum装上去的版本不知道是不是因为版本太低了,和他要跑的程序不兼容,然后我又卸载掉。然后这里我正好记录一下CentOS清理不兼容软件包/源以及彻底删除软件和安装软件时附带安装的依赖方法。
查找el6的软件包:
rpm -qa | grep el6
如果有,就可以卸载:
rpm -e 软件包名
全部卸载好了后,删除不兼容的第三方yum源:
cd /etc/yum.repos.d/ rm -rf 源的文件名
然后执行yum清理:
yum clean all rm -rf /var/cache/yum
然后是卸载软件的同时还卸载掉安装软件时一并安装的依赖。
yum history list ffmpeg
找到安装ffmpeg的那一行记录对应的数字,然后执行
yum history undo 9
再然后脑袋一热,我就硬生生的给他编译了个最新版的上去,但是编译之后我试了下好像也和程序不兼容?我尴尬的一匹。(事后发现其实不是不兼容,而是我2B了)
这时候我默默的打开了FFMPEG的官方看了下,点进了下载页面,心想RINIMA,要是Linux也能像Win那样,下个exe直接用就好了,等等,等等,这是啥?sometimes naive?
我怼NM象拔蚌?什么时候FFMPEG官网提供Linux的静态版本了?我彷佛看到了一个清纯妹子向我招手,对我说:小哥哥来玩呀!这也太真实了吧!
然后赶紧回到终端内,下载一波静态文件,解压一下下:
cd wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz tar -xJf ffmpeg-release-64bit-static.tar.xz
直接执行看看能用不,OJBK可以运行,还是这么新的版本,真是辛苦编译和打包的人了:
然后把这个版本的FFMPEG和程序配置一下,发现还是不兼容?不应该啊?冷静思考了一下,然后我TM恍然大悟,我之前编译的和我现在用的这个静态版本可执行文件都在root目录下,程序是用别的用户跑的,可能没有权限执行ffmpeg命令,然后我直接把FFMPEG复制一份到/usr/bin:
cd ffmpeg-4.0.2-64bit-static cp ffmpeg /usr/bin/ffmpeg
最后程序终于运行正常了,我真的累的一匹,倒在床上秒睡。。。
最后附上静态版本的FFMPEG详细食用方法,为什么我不早点发现这个神器,为什么为什么为什么:
https://www.johnvansickle.com/ffmpeg/faq/
大佬牛批。
商业互吹