Updating Composer
Posted: June 25, 2021 in Linux, System Administration, Composer
I decided to upgrade my Composer because I was tired of seeing the following notice every time I used it:
Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/
Since I was upgrading Composer for use with a Drupal site, I used the directions at https://www.drupal.org/docs/develop/using-composer/preparing-your-site-for-composer-2 to guide me along the way. Here is what I encountered.
The instructions warned me that I would receive errors if my current composer version was too old. However, the suggestions there did not resolve this error:
[Composer\Downloader\FilesystemException] Filesystem exception: Composer update failed: "/usr/local/bin/composer" could not be written. rename(/home/sjhuskey/.cache/composer/composer-temp.phar,/usr/local/bin/composer): Permission denied
I remembered encountering this before, however. Following the suggestion of Boss COTIGA resolved the issue. Here's what I did:
sudo rm /usr/local/bin/composer
cd ~/.cache/composer
chmod 755 composer-temp.phar
sudo mv composer-temp.phar /usr/local/bin/composer
I also ran into this error:
[UnexpectedValueException] Your github oauth token for github.com contains invalid characters:
I've seen that before, too. My github oauth token is fine, but Composer has a bug that makes it think otherwise. Fortunately, rafaelbitten has a solution. His first step, however, is a doozy: "Find the composer/auth.json
file." For me, that's in ~/.config/composer
, not in ~/.composer
, as it might be for some. After I found my auth.json
file, I copied the oauth part (actually, it was the only thing in the file), pasted it somewhere for the moment, and replaced it with {}
so that Composer wouldn't throw another error: Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
. Of course, after I did that, I ran into the Filesystem exception
error from above when I did composer selfupdate
, so I repeated the Boss COTIGA's process.
After that, composer selfupdate
showed that I was using the most current stable version.
Photo by Marius Masalar on Unsplash