如何在AWS Elastic Beanstalk上安装audiowaveform程序

6

只是提供信息......这里的背景是AWS Elastic Beanstalk。我正在尝试在64位Amazon Linux 2015.03 v1.4.3(客户AMI ID为ami-6b50291c)上安装audiowaveform程序。运行以下命令...

$ sudo yum install git cmake libmad-devel libsndfile-devel gd-devel boost-devel

... 成功安装了所有软件包,除了libmad-devellibsndfile-devel。以下是相关输出...

Failed to set locale, defaulting to C
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/2015.03                                                        | 2.1 kB     00:00     
amzn-updates/2015.03                                                     | 2.3 kB     00:00     
Package git-2.1.0-1.38.amzn1.x86_64 already installed and latest version
Package cmake-2.8.12-2.20.amzn1.x86_64 already installed and latest version
No package libmad-devel available.
No package libsndfile-devel available.
Package gd-devel-2.0.35-11.10.amzn1.x86_64 already installed and latest version
Package boost-devel-1.53.0-14.21.amzn1.x86_64 already installed and latest version
Nothing to do

话虽如此,这并不是audiowaveform的问题......这只是意味着Amazon Linux AMIs启用的仓库默认情况下没有libmad-devel和libsndfile-devel。我想我可能需要自己添加源。

还要注意的是,audio waveform没有任何yum包,所以我必须手动构建它。

获取源代码......

$ git clone https://github.com/bbcrd/audiowaveform.git
$ cd audio waveform

然后构建并安装...
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install

问题1

在AWS EB上,EC2实例配置为使用Amazon源,这些源没有上述软件包,即libmad-devellibsndfile-devel。添加这些软件包以便它们可用于yum,应该采取何种推荐方法?

我强调“推荐”,因为我觉得改变Amazon的源可能不是最好的方法。添加另一个源也可能与Amazon的软件包发生冲突...等等等等...

问题2

假设我能够安装libmad-devellibsndfile-devel。由于没有audiowaveform的软件包,我仍然必须手动构建。在AWS EB上,我可以编写脚本来在每个实例被实例化时执行此操作...但我觉得这不是理想的方法,速度缓慢且容易出错。有人有关于如何更好地处理这个问题的建议吗?

可能需要准备一个已经构建了这个软件的AMI,基于ami-6b50291c。您有什么想法吗?

核心目标

我不一定要使用audiowaveform...我的目标实际上是提取一些音频(MP3)的峰值点。我将把这个设置为一个单独的问题。


CMake错误,位于/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message): 无法找到LibSndFile(缺少:LIBSNDFILE_LIBRARIES)。 - baldr009
2个回答

2
亚马逊弹性 Beanstalk 在安装软件方面非常受限。我将应用程序环境 docker 化来解决这个问题,现在即使在弹性 Beanstalk 上也可以实现。请查看 有关 Elastic Beanstalk 支持 Docker 的详细信息 ...
AWS 弹性 Beanstalk 可以帮助您轻松部署和管理 AWS 云中的应用程序。上传应用程序后,Elastic Beanstalk 将提供、监控和扩展容量 (Amazon EC2 实例),同时还会负载均衡所有健康的实例接收的请求。
Docker 自动化应用程序部署形式为轻量级、可移植、自给自足的容器,可在各种环境中运行。容器可以从预构建的 Docker 映像或一个简单的配方(称为 Dockerfile)中填充。
Docker 的基于容器的模型非常灵活。例如,您可以在本地构建和测试容器,然后将其上传到 AWS Cloud 中进行部署和扩展。Docker 的自动化部署模型确保您的应用程序的运行时环境始终得到正确安装和配置,而不管您决定在哪里托管该应用程序。
通过这种方式...您可以在容器中执行任何操作,并且该容器将在 Amazon Linux AMI 实例提供的内核上运行(显然是完全隔离的)。

2

我在Amazon Linux AMI(RedHat 7.4)上使用yum时,有点难以找到libsndfile。 我添加的存储库似乎从未包含它。(如何添加新存储库请参考此处

最后,我直接下载并安装了这些rpm软件包:

wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic//libsndfile-1.0.28-alt1.x86_64.rpm
wget http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic//libsndfile-devel-1.0.28-alt1.x86_64.rpm

sudo yum localinstall libsndfile-devel-1.0.28-alt1.x86_64.rpm

这样我终于让PySoundfile正常工作了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接