6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

composerのアップデート

Posted at

環境

  • WSL 2
  • Ubuntu 22.04.2 LTS
  • Composer 2.5.7 を/usr/local/bin/composer にインストール済み

ふたつの方法

次の2つの方法があります。

  1. composer self-update
  2. composer-setup.php

それぞれ説明します。
両方説明しますが、composer self-updateを使えば良いと思います。

composer self-update

composerにはself-updateというサブコマンドがあります。

最新バージョンにアップデートしたいとき

composer self-updateします。

/usr/local/bin/composer にインストールしているときは

sudo -H composer self-update

すると良さそうです。
実行します。

ledsun@MSI:~►sudo -H composer self-update
[sudo] password for ledsun:
Upgrading to version 2.5.8 (stable channel).

Use composer self-update --rollback to return to version 2.5.7

バージョンを確認してみます。

ledsun@MSI:~►composer --version
Composer version 2.5.8 2023-06-09 17:13:21

2.5.8になりました!

バージョンをもどす

--rollbackオプションでバージョンが戻せるみたいです。
バージョンを戻してみましょう。

ledsun@MSI:~►sudo -H composer self-update --rollback
[sudo] password for ledsun:
Rolling back to version 2023-05-24_15-00-39-2.5.7.

バージョンの見た目が違いますが、末尾をみると2.5.7とあるので、2.5.7に戻ったようです。
ふたたび2.5.8に上げます。

ledsun@MSI:~►sudo -H composer self-update
[sudo] password for ledsun:
Upgrading to version 2.5.8 (stable channel).

Use composer self-update --rollback to return to version 2.5.7

特定のバージョンをインストールしたいとき

composer self-updateは引数でバージョンを指定出来ます。

ledsun@MSI:~►sudo -H composer self-update 2.5.6
[sudo] password for ledsun:
Upgrading to version 2.5.6 (stable channel).

Use composer self-update --rollback to return to version 2.5.8

バージョンアップのべき等性

余計にバージョンアップしてみます。

ledsun@MSI:~►sudo -H composer self-update
[sudo] password for ledsun:
You are already using the latest available Composer version 2.5.8 (stable channel).

ちゃんと現在のバージョンを認識してスキップしてくれるようです。
自動更新するスクリプトに組んでも大丈夫そうです。

composer-setup.php

composerをインストールするときにつかうcomposer-setup.phpスクリプトでもバージョンアップできます。

comporser-setup.phpのダウンロード

composer-setup.phphttps://getcomposer.org/download/ に載っている手順で取得出来ます。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

の最初の2行です。
やってみましょう。

ledsun@MSI:~►php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
ledsun@MSI:~►php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer verified

composer-setup.phpのダウンロードと検証が出来ます。
検証はダウンロードしたcomposer-setup.phpのsha384ハッシュを確認しているようです。
おそらく偽のcomposer-setup.phpをダウンロードしていないか確かめているのでしょう。

最新バージョンにアップデートしたいとき

ledsun@MSI:~►php composer-setup.php
All settings correct for using Composer
Downloading...

Composer (version 2.5.8) successfully installed to: /home/ledsun/composer.phar
Use it: php composer.phar

バージョンを確認します。

ledsun@MSI:~►composer --version
Composer version 2.5.7 2023-05-24 15:00:39

あれ?変わっていません。
パスが通っているところに移動する必要があるのでした。

ledsun@MSI:~►sudo mv composer.phar /usr/local/bin/composer
[sudo] password for ledsun:

ふたたびバージョンを確認します。

ledsun@MSI:~►composer --version
Composer version 2.5.8 2023-06-09 17:13:21

更新できました。

バージョンを指定したcomposerのインストール

composer-setup.php--versionオプションでバージョンを指定します。
やってみましょう。

ledsun@MSI:~►php composer-setup.php --version 2.5.6
All settings correct for using Composer
Downloading...

Composer (version 2.5.6) successfully installed to: /home/ledsun/composer.phar
Use it: php composer.phar

ダウンロードのべき等性

composer-setup.phpを実行すると、ダウンロード済みのファイルの有無にかかわらず、毎回composer.pharをダウンロードします。

ledsun@MSI:~►php composer-setup.php
All settings correct for using Composer
Downloading...

Composer (version 2.5.8) successfully installed to: /home/ledsun/composer.phar

ダウンロードなので、それはそうな気がします。

参考

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?