navidrome是一个开源的,用于搭建个人音乐库的软件,洛雪的六音源经常不可用,正好我有一台低配的云服务器,就想着搭一个自己的音乐库。[navidrome下载地址](Releases · navidrome/navidrome)
网上大部分教程都是用docker拉镜像,启动容器即可使用,简单方便,但因为我的服务器配置较低,再装docker估计就跑不动了,还是老老实实的自己部署,因为navidrome依赖于ffmpeg,因此需要先安装ffmpeg,结果就趟了坑了。
1、ffmpeg安装趟坑
1) 安装rpmfusion仓库
[root@blog ~]# dnf install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
说明:默认安装的仓库中没有ffmpeg这个软件
这一步没问题,照着做就行。
2)安装sdl软件包
ffmpeg依赖于sdl软件包,SDL(Simple DirectMedia Layer)是一个自由的跨平台的多媒体开发包,适用于游戏、游戏SDK、演示软件、模拟器、MPEG播放器和其他应用软件。
[root@blog ~]# wget http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/SDL2-2.0.8-7.el8.x86_64.rpm
这一步出了问题,因为链接报404了,如果跳过这一步,直接安装ffmpeg,报nothing provides libSDL2-2.0.so.0()(64bit) needed by ffmpeg* 的错误,然后就是各种找SDL的rpm包,都是无功而返。
首先是在Index of /linux/epel/8/Everything/x86_64/Packages/s找了三个包,分别是SDL2_gfx、SDL2_image、SDL2_ttf*,但是缺少SDL2.x86_64包,网上有说分别装三个包,装的时候都出现依赖不满足问题,要满足依赖要找更多的包,这条路作罢。
下载SDL源码编译使用,SDL源码地址,找了2.0.10版本,下载编译(./configure、make、make install),安装地址默认在/usr/local/lib下,这时候直接安装ffmpeg还是报错,将so文件复制到/usr/lib64目录下,libSDL的报错没有了,又报libavdevice.so.58: cannot open shared object file: No such file or directory的错,依赖一环套一环,很多时间花在找包上。
2、正途
1)安装 RPMfusion Yum 存储库
RPM Fusion 存储库的创建是为了提供基于 Fedora 和 Red Hat 的发行版未提供的软件。此存储库中提供的所有软件应用程序都以预编译的 RPM 文件的形式提供。我们将从 RPMfusion 存储库在 CentOS 8 / RHEL 8 上安装 FFmpeg。
在为 EL 启用 RPM Fusion 之前,需要在 RHEL 或 CentOS 等兼容发行版上启用 EPEL。
### CentOS 8 Stream ###
sudo dnf install epel-release epel-next-release -y
sudo dnf config-manager --set-enabled powertools
我在执行第二条命令时失败了,去/etc/yum.repos.d目录下查看xxxxxx.repo的源内容,在里面找 “[powetools]” 配置项。以下是我的[powetools]里的内容,我使用了阿里源
[powertools]
name=CentOS-$releasever - PowerTools - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/PowerTools/$basearch/os/
http://mirrors.aliyuncs.com/centos/$releasever/PowerTools/$basearch/os/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/PowerTools/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
注意,配置项名字powertools大小写一定要与命令dnf config-manager --set-enabled powertools
使用的是 “powertools” 一致,不一致会执行失败。
然后添加 RPMfusion Yum Repository:
dnf install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
dnf install -y https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
2) 在 CentOS 8 / RHEL 8 上安装 FFmpeg
添加 EPEL 和 RPM Fusion 存储库后,在终端中运行以下命令以在 CentOS 8 / RHEL 8 Linux 系统上安装 FFmpeg。
dnf -y install ffmpeg
安装开发库:
dnf -y install ffmpeg-devel
3) 安装navidrome
navidrome直接使用rpm安装,我下载的是0.54.2版本
yum localinstall navidrome_0.54.2_linux_amd64.rpm
安装完成后,注意music、log、work、配置文件目录的设置,后续歌曲文件要放到music目录下。
启动navidrome
cd /usr/bin
./navidrome -c /etc/navidrome/navidrome.toml
如果是云服务器,打开端口即可访问。
当然,还可以将其加到系统服务里面,这样即使终端关了服务也还在,启动关闭都比较方便,具体参考官网Linux Install | Navidrome。
参考
how-to-install-ffmpeg-on-centos-rhel-8
标签:dnf,ffmpeg,rpmfusion,install,安装,navidrome,Centos8 From: https://www.cnblogs.com/weiweiting/p/18627070