Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to fix "https://repo.packagist.org/packages.json does not contain valid Json"?

I've an issue with composer running on a vagrantbox (Centos 7), which started to just suddenly happen.

I've already tried manually running the command/solution mentioned on the link below but to no avail.

(To clarify, i'm using vagrant not docker, but it was the closest question i found to my situation. Most of the information i found are related to composer.json not being valid, but here is packagist.org/packages.json which, is currently valid)

Composer not working in docker container: "https://packagist.org/packages.json" does not contain valid JSON

Here are the details of the issue.

While running composer update on terminal i get:

 composer update


  [Seld\JsonLint\ParsingException]
  "https://repo.packagist.org/packages.json" does not contain valid JSON
  Parse error on line 1:

  ^
  Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

And when running composer install also on terminal every package returns this:

Failed to download psr/cache from dist: "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8" 
appears broken, and returned an empty 200 response
    Now trying to download from source

When running composer config --global repo.packagist composer packagist.org the results are now

composer update
Loading composer repositories with package information


  [Composer\Downloader\TransportException]
  Your configuration does not allow connections to http://repo.packagist.org/packages.json. See https://getcomposer.o
  rg/doc/06-config.md#secure-http for details.

Any ideas why this started to happen, how can i fix it?

like image 565
StacOlem Avatar asked Apr 09 '19 16:04

StacOlem


3 Answers

Could also be IPv6 related, if your provider/system is configured for IPv6 but has no valid IPv6 route out to the internet.

This happened to me, and doing sysctl -w net.ipv6.conf.all.disable_ipv6=1 (as root), then trying composer again fixed the issue.

To permanently apply it, add the rule to /etc/sysctl.conf (or wherever your OS preferred is)

like image 56
Austin Avatar answered Nov 10 '22 22:11

Austin


same problem here, since php updated to 7.2.17. On a centos 7 with php 7.2.16 composer run just fine... Rollback to 7.2.16 is for now the only solution found...

Edit : Seems to be a symfony flex issue : https://github.com/symfony/flex/issues/484

like image 41
Bastien Baudry Avatar answered Nov 10 '22 22:11

Bastien Baudry


I had the same problem. After days of searching, I found a solution. It seems a PHP problem. Try to comment a line of curl extension on php.ini. I am using php version 5.6.

extension=php_curl.dll 

Type ; before the extension name, at least it will be like this:

;extension=php_curl.dll
like image 22
Renan Roseno Avatar answered Nov 10 '22 22:11

Renan Roseno