如何在Heroku服务器上安装mpg123

时间:2014-06-24 02:03:12

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

我在屏幕上使用tts gem语音,并且在本地开发站上工作正常,但在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收集一些线索,我在黑暗中通过添加以下版本进行了一些尝试,然后重新运行上述尝试,但无济于事:

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的雪松堆下运行的rails 4项目。

谢谢!

2 个答案:

答案 0 :(得分:0)

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

所以如果你想这样做,你可能需要create a custom buildpack来获得mpg123,因为似乎没有其他人已经建立了一个。

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

然后,您将要使用multi-buildpack buildpack,它将允许您安装mpg123 buildpack和app buildpack(例如,Ruby)。

答案 1 :(得分:0)

晚了 7 年,但...

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

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

在不到 5 分钟的时间内完成了非常简单的方法。无需创建自定义构建包或切换到 Amazon Web Services。