1

これで、Ruby-on-railsアプリがherokuに正常にリリースされました。ただし、データベースにデータを入力するために、基本的にローカルデータベースのテーブルをリモートデータベースと同期するいくつかのperlスクリプトがあります。

私の開発マシン(ec2)では正常に動作しますが、時間の経過とともにインストールしたものもたくさんあります。

スクリプトを実行しようとすると、次のエラーが発生します(ちなみに最新のperlがインストールされています)

Can't locate DBI.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at copyStaff.pl line 4.
BEGIN failed--compilation aborted at copyStaff.pl line 4.

Perl用のDBIモジュールをherokuにインストールするにはどうすればよいですか?私はbashを試しました

apt-get install libdbi-perl

これは私に次の出力を与えました

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.

[これは関係ないかもしれません]私はこのコマンドを実行しようとしました

dpkg --configure -a

しかし、それはスーパーユーザー権限が必要だと私に言いました

su -l root -c "dpkg --configure -a"
  • ルートパスワードを要求されましたが、どうやらパスワードがわかりません(herokuログインではありません)。パスワードが何であるかわかりません。

ファイルを直接ダウンロードしましたが、スーパーユーザーアクセスが必要です。私も試しました

$perl -MCPAN -e shell
cpan> install DBI

(これには、ファイルを保存できないという同じ問題がありました)

私はそれを完全に間違った方法で行っているのではないかと感じていますが、それらのスクリプトを実行するために何をする必要があるのか​​理解できません。

4

2 に答える 2

3

Perlokuの存在を知っているHeroku用のPerlBuildpackと、perl-herokuに沿って自分たちを呼んでいる他の2人を調査する必要があります。

ビルドパックは、Perlのように、Herokuがネイティブにサポートしていない環境をインストールしようとします。Mojoliciousをインストールするものもあれば、apache2 /mod_perlenvをインストールするものもあります。

DBI / DBD :: mysqlがインストールされているかどうかを確認するには、ビルドパックのメンテナに相談する必要がありますが、これらのモジュールの人気に基づいて、インストールされている可能性があります。

あなたがそこまで到達した場合、あなたがしなければならないのはデータベースを同期することだけです:-)

于 2012-11-02T23:25:22.253 に答える
2

さて、ここに貼り付けるだけで、カスタマーサポートから回答を得ました


残念ながら、スタックへの追加のライブラリまたはバイナリのインストールはサポートされていません。最善の回避策は、これらをプロジェクトにベンダー化することです。Herokuで動作させるには、64ビットのLinuxバージョンを使用する必要があります。静的にコンパイルすると、必要な依存関係が含まれていることを確認するのにも役立ちます。同様に、外部ライブラリに依存するgemの場合、gemを静的にコンパイルし、プロジェクトにベンダー化することをお勧めします。

バイナリ、ライブラリ、またはgemのベンダーを希望する場合は、ビルド環境としてHerokuを使用できます。エンジニアの1人が、ソースコードをアップロードし、コンパイルステップを実行して、結果のバイナリをダウンロードできるビルドサーバーを作成しました。このプロジェクトはここで見つけることができます: https ://github.com/heroku/vulcan

于 2012-11-06T16:10:23.720 に答える