如何在 AWS Elastic Beanstalk 上安装音频波形程序

Kin*_*ina 6 amazon-ec2 amazon-web-services amazon-elastic-beanstalk

仅供参考......这里的上下文是AWS Elastic Beanstalk。我正在尝试在 64 位 Amazon Linux 2015.03 v1.4.3(客户 AMI ID 为)上安装音频波形程序ami-6b50291c。运行这个...

$ sudo yum install git cmake libmad-devel libsndfile-devel gd-devel boost-devel
Run Code Online (Sandbox Code Playgroud)

... 成功安装除libmad-develand之外的所有软件包libsndfile-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
Run Code Online (Sandbox Code Playgroud)

也就是说,这不是 audiowaveform 的问题......所有这一切都意味着为 Amazon Linux AMI 启用的存储库没有libmad-devel并且libsndfile-devel默认情况下。我想我可能不得不简单地添加我自己的来源。

还要注意的是,不yum存在任何包,audio waveform因此我必须手动构建它。

获取源码...

$ git clone https://github.com/bbcrd/audiowaveform.git
$ cd audio waveform
Run Code Online (Sandbox Code Playgroud)

然后构建并安装...

$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
Run Code Online (Sandbox Code Playgroud)

问题 1

在 AWS EB 上……EC2 实例被配置为使用没有上述包的 Amazon 源,即libmad-devellibsndfile-devel。添加这些包以便它们可供使用的推荐方法是yum什么?

我强调推荐,因为我觉得改变亚马逊的来源可能不是最好的方法。也没有添加可能与亚马逊的包裹冲突的另一个来源……等等等等……

问题2

假设我能够安装libmad-devellibsndfile-devel. 我仍然需要手动构建它,因为没有audiowaveform. 在 AWS EB 上,我可以编写一个脚本来执行此操作,因为每个实例正在被实例化……但我觉得这并不理想、速度慢且有点容易出错。有人对我如何做得更好有建议吗?

可能准备一个基于ami-6b50291c. 想法?

核心目标

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

Kin*_*ina 2

Amazon Elastic Beanstalk 上可以安装的软件往往受到很大限制。我通过对我的应用程序环境进行docker化来解决这个问题。现在即使在 Elastic Beanstalk 上也可以实现这一点。

\n\n

详细了解 Elastic Beanstalk 对 Docker 的支持...

\n\n
\n

AWS Elastic Beanstalk 让您可以轻松地在 AWS 云中部署和管理应用程序。上传应用程序后,Elastic Beanstalk 将预置、监控和扩展容量(Amazon EC2 实例),同时在所有运行状况良好的实例之间对传入请求进行负载平衡。

\n\n

Docker 以轻量级、可移植、自给自足的容器的形式自动部署应用程序,这些容器可以在各种环境中运行。可以从预构建的 Docker 映像或称为 Dockerfile 的简单配方来填充容器。

\n\n

Docker\xe2\x80\x99s基于容器的模型非常灵活。例如,您可以在本地构建和测试容器,然后将其上传到 AWS 云以进行部署和可扩展性。Docker\xe2\x80\x99s 自动化部署模型可确保应用程序的运行时环境始终正确安装和配置,无论您决定在何处托管应用程序。

\n
\n\n

这样......您可以在容器中执行任何您想要的操作,并且该容器将在 Amazon Linux AMI 实例提供的内核上运行(显然是完全隔离的)。

\n