composerでのglobal requireに関して。
composerでライブラリを読み込むとき、一般的には下記のどちらかで読み込むことが多いです。
- composer.jsonに記述
- composer require "ライブラリ"
これらはともにローカル(今あるプロジェクト)内でライブラリを読み込ませる行為になります。
例えば今ログインしているユーザー全体であるライブラリを使いたいときは composer global require ライブラリ などとやって読み込ませることができます。
私の場合jenkinsでライブラリを使いたいときにサーバー全体にcomposerでインストールを行いました。
こうしますとライブラリの入ったディレクトリがホームディレクトリに配置されます。
あとはPATHも通しておきましょう。
1 2 3 |
$ echo 'export PATH=$HOME/.composer/vendor/bin:$PATH' >> .bash_profile $ source .bash_profile #あまりおすすめはしませんが直接これらのPATHを編集するのもアリです。 |
これで特定ユーザーでログインした時には特定のプロジェクトによらず、インストールしたライブラリを使うことができます。
composer global
注意点
composer globalですが、依存関係がうまく解消できずエラーが起きることがあるようです。
わたしもphpdocumentをcomposer globalで読み込もうとしたときに下記のようなエラーが起こりました。
1 2 3 4 5 6 7 8 9 10 11 12 |
Problem 1 - Installation request for phpdocumentor/phpdocumentor ^2.9 -> satisfiable by phpdocumentor/phpdocumentor[v2.9.0]. - Conclusion: remove phpdocumentor/reflection-docblock 3.1.1 - Conclusion: don't install phpdocumentor/reflection-docblock 3.1.1 - phpdocumentor/phpdocumentor v2.9.0 requires phpdocumentor/reflection-docblock ~2.0 -> satisfiable by phpdocumentor/reflection-docblock[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5]. - Can only install one of: phpdocumentor/reflection-docblock[2.0.0, 3.1.1]. - Can only install one of: phpdocumentor/reflection-docblock[2.0.1, 3.1.1]. - Can only install one of: phpdocumentor/reflection-docblock[2.0.2, 3.1.1]. - Can only install one of: phpdocumentor/reflection-docblock[2.0.3, 3.1.1]. - Can only install one of: phpdocumentor/reflection-docblock[2.0.4, 3.1.1]. - Can only install one of: phpdocumentor/reflection-docblock[2.0.5, 3.1.1]. - Installation request for phpdocumentor/reflection-docblock (locked at 3.1.1) -> satisfiable by phpdocumentor/reflection-docblock[3.1.1]. |
より安全な方法としてはcgrというコマンドを使用したほうが良いようです。情報がまだないため調査中ですが・・・
一応参考リンク(ただし英語っす)