2016-11-08 8 views
4

は、私がアプリケーションに付属しているクラウドファウンドリーbuildpacksまたは.profileスクリプト内でapt-getまたは他のパッケージマネージャを使用することができます。私ができるなら、それをどうやってやるの?私はdockerfileのように、それを同じ方法で行うことを期待するが、それは私の場合にはsudoの有無にかかわらず動作しません。使用パッケージマネージャ

答えて

3

アプリとともに提供されるCloud Foundryビルドパックまたは.profileスクリプトでapt-getやその他のパッケージマネージャを使用できますか。私ができるなら、それをどうやってやるの?

apt-getまたはパッケージマネージャを実行している番号は、一般的にrootアクセスを必要とすると、ビルドパックが実行されるとき、またはアプリケーションの実行時に、あなたは(これはドッカー/ wの差です)rootアクセスを得ることはありません。あなたがrootアクセスを必要としないので、あなたは、VCAPユーザのホームディレクトリにインストールパッケージマネージャを発見し、ルートを必要としなかった場合、あなたはそれを使用することができます何でもできる、と述べた

それはあなたがインストールしようとしているかに依存しますが、いくつかのケースでは、あなたはの.debまたは.rpmのファイルをダウンロードし、手動でバイナリを抽出することによってこの問題を回避することができます。これは通常、共有ライブラリのようなものでは正常に機能します。ちょうどあなたのスタック(cflinuxfs2 == Ubuntuのトラスティ)に一致するコンパイル済みのバイナリをダウンロードしてください。他のものについては、ソースから独自のバイナリをビルドすることができます。これはビルドパックの機能です。binary-builderを参照してください。

希望に役立ちます!

+0

私が代わりにapt-getをからそれをインストールするので、(PHP-APCまたはpwgenのように)PHPのbuildpackに拡張子を追加したいのであれば、例えば、それだけでその正しいへの.soファイルをコピーするには罰金になりますディレクトリ? –

+0

ダニエルの答えを拡張するために、おそらくビルドパック内で起こっている非決定論的な操作を望まないでしょう。たとえば、 'apt-get'を実行すると、アプリケーションのステージングに応じて異なるバージョンの依存関係が発生する可能性があります。 –

+0

@QuanTranGia - 上記のバイナリビルダーを見てください。それがPHPと拡張機能のすべてを構築する方法です。箱からすぐには提供されない拡張機能が必要な場合は、問題を提出してください(またはより良いPRを提出してください)。 –

関連する問題