【问题标题】:How to install mpg123 on Heroku Server如何在 Heroku 服务器上安装 mpg123
【发布时间】:2014-08-14 03:55:41
【问题描述】:

我在屏幕上使用 tts gemfor 语音音频,在本地开发站上一切正常,但在 heroku 的服务器上抛出 500。 tts gem 依赖于mpg123

heroku 日志在运行时发回以下错误:

2014-06-23T09:37:47.024478+00:00 app[web.1]: mpg123 executable NOT found. This function only work with POSIX systems.    
2014-06-23T09:37:47.024485+00:00 app[web.1]: Install mpg123 with `brew install mpg123` or `apt-get install mpg123`
2014-06-23T09:37:47.025829+00:00 app[web.1]: Completed 500 Internal Server Error in 196ms

第一次尝试: heroku 运行 brew install mpg123

Running `brew install mpg123` attached to terminal... up, run.1741
bash: brew: command not found

第二次尝试: heroku 运行 apt-get install mpg123

Running `apt-get install mpg123` attached to terminal... up, run.5879
W: Not using locking for read only lock file /var/lib/dpkg/lock
E: Unable to write to /var/cache/apt/
E: The package lists or status file could not be parsed or opened.

经过进一步研究,我现在了解到“custom buildpack”需要实施?如果是这样,如何确定要使用哪个 buildpack 以及如何使用它安装 mpg123?除非有更简单或更合适的方法,否则我当然也愿意接受。

this post 收集到一些线索,我通过添加以下 buildbacks 在黑暗中进行了一些尝试,然后重新运行上述尝试,但无济于事:

heroku plugins:install https://github.com/heroku/heroku-buildpacks
Installing heroku-buildpacks... done

heroku config:add BUILDPACK_URL=https://github.com/benjie/heroku-buildpack-apt
heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-ruby
heroku config:add BUILDPACK_URL=https://github.com/atris/heroku-buildpack-C

不管怎样,这是一个在 heroku 的 cedar 堆栈下运行的 rails 4 项目。

谢谢!

【问题讨论】:

    标签: heroku ruby-on-rails-4 heroku-toolbelt


    【解决方案1】:

    晚了 7 年,但是……

    我遇到了同样的问题,并与@Heroku 的技术支持进行了讨论。如错误所示,mpg123 可通过apt-based package 获得。因此,您可以这样做:

    1. 您需要使用 Heroku CLI 来执行此操作;如果您还没有安装它,请在此处安装:https://devcenter.heroku.com/articles/heroku-cli#download-and-install。另外,请确保使用heroku login 登录
    2. 将最新的apt buildpack 添加到您的应用程序buildpacksheroku buildpacks:add --index 1 heroku-community/apt
    3. 现在,您只需将此 Aptfile 添加到您的 rails 应用程序的根目录:
      # myapp/Aptfile
      mpg123
      
    4. 运行git push heroku main
    5. 部署您的应用。

    在 5 分钟内非常简单的方法。无需创建自定义 buildpack 或切换到 Amazon Web Services。

    【讨论】:

      【解决方案2】:

      按照 Heroku 的工作方式,所有系统依赖项(如 mpg123)都必须通过 buildpacks 安装。这是因为 Heroku 不允许应用在部署后写入文件系统(这就是您的 brew 和 apt 命令不起作用的原因)。

      因此,如果您想这样做,您可能必须 create a custom buildpack 获取 mpg123,因为似乎还没有其他人构建过。

      有关自定义构建包的示例,请查看 LAME 包: https://github.com/lepinsk/heroku-buildpack-lame

      然后,您需要使用 multi-buildpack buildpack,它可以让您安装 mpg123 buildpack 和应用 buildpack(例如 Ruby)。

      【讨论】:

      • 换句话说,直接切换到亚马逊网络服务,花费十分之一,同时拥有掌控自己命运的能力
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      相关资源
      最近更新 更多