Loading

Centos8 安装 navidrome

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

posted @ 2024-12-24 11:41  redrose007  阅读(356)  评论(0)    收藏  举报