haiju's 開発メモ

開発に必要な情報を自分用にメモ

How to upgrade composer1.x -> 2.x

タイトルは英語だが内容は日本語だw(Φω|

Laravel6.xの初心者向けチュートリアルをまとめていて、プロジェクト作成

を実行したら、「バージョンが古いからアップグレードしろや」と警告

されたので、2.xにアップグレードする手順についてまとめる。

[手順]

1. swapファイルを1GBほど作成。

$ sudo su -
# dd if=/dev/zero of=/swapfile bs=1M count=1024
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile

※作成結果を確認

$ free -m

2. 管理者権限に変更して以下コマンドをターミナルで実行。

$ sudo su -

# composer self-update --2

※ダウングレードする場合は以下コマンドをターミナルで実行。

# composer self-update --rollback target_version

(ex)1.10.15にダウングレード

# composer self-update --rollback 1.10.15

※ただし、アップグレードはできたのだが、Laravel6のプロジェクト以下に

 ./vendor/ がない上に、composer.jsonがないとか言われるんだが、これって

 どう解決してたっけな?顔文字が変なリンクに変換されてる...

 composer 1.xの時に特にcomposer.jsonは弄ってないので自動生成されていた

 と思うのだが、2.xにアップグレードしてもcomposer.jsonは自動生成されない

 ということなのか?(Φω|

 composer.jsonがないことには、composer updateもcomposer installも実行

 できない。それとも、上記コマンドでアップグレードしたバージョンでは

 composer.jsonを自動生成しないのが正しいのか?

 個人的には「ただの入れ忘れ(作成し忘れで入れ忘れ)にはらたいらに全部

 だけどなー」

 ただ実行速度を早めるためだけに他を無視しちゃいかんだろ?って思う。

3. composer.jsonを作成 or 過去のLaravelプロジェクトからコピーして改変。

※こちらがないと、updateもinstallもrequireも実行できないので注意が必要。

composerはインストール時もアップグレード時もいろんなところに

自身のディレクトリを作成して、どこがどこだか分からないのも問題だよなー。

[参考サイト]

Upgrade guides for Composer 1.x to 2.0

uiuifree.com

qiita.com

zenn.dev

qiita.com

nextat.co.jp

laboradian.com

devdocs.magento.com

mikemadison.net

mikemadison.net

mikemadison.net

drupal.stackexchange.com

discourse.roots.io

qiita.com

kohkimakimoto.github.io

github.com

www.digitalocean.com

www.garybell.co.uk

blog.fortrabbit.com

qiita.com

github.com

kin29.info

takayuki.hagihara.tokyo