【问题标题】:How to install audiowaveform program on AWS Elastic Beanstalk如何在 AWS Elastic Beanstalk 上安装 audiowaveform 程序
【发布时间】:2015-09-26 00:43:50
【问题描述】:

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

$ 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 AMI 启用的存储库默认没有 libmad-devellibsndfile-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可以使用它们?

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

问题 2

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

可能准备一个基于ami-6b50291c 的已构建AMI。想法?

核心目标

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

【问题讨论】:

  • /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 处的 CMake 错误(消息):找不到 LibSndFile(缺少:LIBSNDFILE_LIBRARIES

标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk


【解决方案1】:

Amazon Elastic Beanstalk 在您可以在其上安装的软件方面往往受到很大限制。我通过 dockerizing 我的应用程序环境解决了这个问题。现在甚至在 Elastic Beanstalk 上也可以做到这一点。

Learn more about Elastic Beanstalk's support for Docker ...

AWS Elastic Beanstalk 让您可以轻松部署和管理 AWS 云中的应用程序。上传申请后, Elastic Beanstalk 将预置、监控和扩展容量(亚马逊 EC2 实例),同时还对所有传入请求进行负载平衡 的健康实例。

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

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

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

【讨论】:

    【解决方案2】:

    我也很难在 Amazon Linux AMI (RedHat 7.4) 上找到 libsndfile。我添加到 yum 的存储库似乎从未包含它。 (如何添加新的 repos is described here

    最后我直接下载并安装了 rpms:

    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 工作了。

    【讨论】:

      猜你喜欢
      • 2021-01-07
      • 2015-04-03
      • 2017-03-26
      • 2013-07-08
      • 1970-01-01
      • 2018-07-01
      • 2015-03-21
      • 2018-05-25
      • 2020-10-13
      相关资源
      最近更新 更多