Laravel Install Specific Version using Composer

Posted on

Laravel Install Specific Version using Composer

This is an article made and written to inform how to exactly create a Laravel-based project using a specific version. In other words, installing a Laravel with a version defined. Moreover, it can be done with the help of ‘composer’ utility. The most important thing to be looked is checking the version of the composer installed.

First of all, get used to check the composer’s status whenever it is going to be used for any kind of purposes such as installing a laravel-based project as shown below using the specific command ‘composer diag’ to diagnose the status of the currently existing composer utilities :

user@hostname:/var/www/html/testing/laravel$ composer diag
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E328C AD90147D AFE50952
Checking composer version: WARNING
You are not running the latest stable version, run `composer self-update` to update (1.3.2 => 1.4.1)
user@hostname:/var/www/html/testing/laravel$ composer self-update
Updating to version 1.4.1 (stable channel).
Downloading: 100%

rename(/home/user/.composer/cache/composer-temp.phar,/usr/local/bin/composer): Permission denied

self-update [-r|--rollback] [--clean-backups] [--no-progress] [--update-keys] [--stable] [--preview] [--snapshot] [--] [<version>]


So, in order to update the composer, the following command must executed as ‘root’ by switching to root first through executing the following command, ‘sudo su – ‘ :

user@hostname:/var/www/html/testing/laravel$ sudo su -

Successfully switched to ‘root’, just execute the following command ‘composer self-update’ in order to update the version of the composer :

root@hostname:/root/# composer self-update
Updating to version 1.4.1 (stable channel).
Downloading: 100%
Use composer self-update --rollback to return to version 1.3.2

The following is how to create a project which is selecting a specific version, Laravel 5.3 using the command specified as follows :

composer create-project laravel/laravel=version_number

Below is the sample of the above command execution which specifies version_number of Laravel is 5.3 :

user@hostname:/var/www/html/testing/laravel$ composer create-project laravel/laravel=5.3 .
Installing laravel/laravel (v5.3.0)
- Installing laravel/laravel (v5.3.0): Downloading (100%)
Created project in .
> php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 61 installs, 0 updates, 0 removals
- Installing vlucas/phpdotenv (v2.4.0): Loading from cache
- Installing symfony/polyfill-mbstring (v1.3.0): Loading from cache
- Installing symfony/var-dumper (v3.1.10): Loading from cache
- Installing symfony/translation (v3.1.10): Downloading (100%)
- Installing symfony/routing (v3.1.10): Downloading (100%)
- Installing symfony/process (v3.1.10): Downloading (100%)
- Installing psr/log (1.0.2): Loading from cache
- Installing symfony/debug (v3.1.10): Downloading (100%)
- Installing symfony/http-foundation (v3.1.10): Downloading (100%)
- Installing symfony/event-dispatcher (v3.2.7): Loading from cache
- Installing symfony/http-kernel (v3.1.10): Downloading (100%)
- Installing symfony/finder (v3.1.10): Downloading (100%)
- Installing symfony/console (v3.1.10): Downloading (100%)
- Installing swiftmailer/swiftmailer (v5.4.7): Loading from cache
- Installing paragonie/random_compat (v2.0.10): Loading from cache
- Installing ramsey/uuid (3.6.1): Loading from cache
- Installing jakub-onderka/php-console-color (0.1): Loading from cache
- Installing jakub-onderka/php-console-highlighter (v0.3.2): Loading from cache
- Installing dnoegel/php-xdg-base-dir (0.1): Loading from cache
- Installing nikic/php-parser (v3.0.5): Loading from cache
- Installing psy/psysh (v0.8.3): Loading from cache
- Installing nesbot/carbon (1.22.1): Loading from cache
- Installing mtdowling/cron-expression (v1.2.0): Loading from cache
- Installing monolog/monolog (1.22.1): Loading from cache
- Installing league/flysystem (1.0.38): Loading from cache
- Installing symfony/polyfill-util (v1.3.0): Loading from cache
- Installing symfony/polyfill-php56 (v1.3.0): Loading from cache
- Installing jeremeamia/superclosure (2.3.0): Downloading (100%)
- Installing doctrine/inflector (v1.1.0): Loading from cache
- Installing classpreloader/classpreloader (3.1.0): Downloading (100%)
- Installing laravel/framework (v5.3.31): Downloading (100%)
- Installing fzaninotto/faker (v1.6.0): Loading from cache
- Installing hamcrest/hamcrest-php (v1.2.2): Loading from cache
- Installing mockery/mockery (0.9.9): Loading from cache
- Installing symfony/yaml (v3.2.7): Loading from cache
- Installing sebastian/version (2.0.1): Loading from cache
- Installing sebastian/resource-operations (1.0.0): Loading from cache
- Installing sebastian/recursion-context (2.0.0): Loading from cache
- Installing sebastian/object-enumerator (2.0.1): Loading from cache
- Installing sebastian/global-state (1.1.1): Loading from cache
- Installing sebastian/exporter (2.0.0): Loading from cache
- Installing sebastian/environment (2.0.0): Loading from cache
- Installing sebastian/diff (1.4.1): Loading from cache
- Installing sebastian/comparator (1.2.4): Loading from cache
- Installing doctrine/instantiator (1.0.5): Loading from cache
- Installing phpunit/php-text-template (1.2.1): Loading from cache
- Installing phpunit/phpunit-mock-objects (3.4.3): Loading from cache
- Installing phpunit/php-timer (1.0.9): Loading from cache
- Installing phpunit/php-file-iterator (1.4.2): Loading from cache
- Installing sebastian/code-unit-reverse-lookup (1.0.1): Loading from cache
- Installing phpunit/php-token-stream (1.4.11): Loading from cache
- Installing phpunit/php-code-coverage (4.0.8): Loading from cache
- Installing webmozart/assert (1.2.0): Loading from cache
- Installing phpdocumentor/reflection-common (1.0): Loading from cache
- Installing phpdocumentor/type-resolver (0.2.1): Loading from cache
- Installing phpdocumentor/reflection-docblock (3.1.1): Loading from cache
- Installing phpspec/prophecy (v1.7.0): Loading from cache
- Installing myclabs/deep-copy (1.6.1): Loading from cache
- Installing phpunit/phpunit (5.7.19): Loading from cache
- Installing symfony/css-selector (v3.1.10): Loading from cache
- Installing symfony/dom-crawler (v3.1.10): Loading from cache
symfony/var-dumper suggests installing ext-symfony_debug ()
symfony/translation suggests installing symfony/config ()
symfony/routing suggests installing doctrine/annotations (For using the annotation loader)
symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
symfony/routing suggests installing symfony/dependency-injection (For loading routes from a service)
symfony/routing suggests installing symfony/expression-language (For using expression matching)
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/http-kernel suggests installing symfony/browser-kit ()
symfony/http-kernel suggests installing symfony/class-loader ()
symfony/http-kernel suggests installing symfony/config ()
symfony/http-kernel suggests installing symfony/dependency-injection ()
paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
ramsey/uuid suggests installing ircmaxell/random-lib (Provides RandomLib for use with the RandomLibAdapter)
ramsey/uuid suggests installing ext-libsodium (Provides the PECL libsodium extension for use with the SodiumRandomGenerator)
ramsey/uuid suggests installing ext-uuid (Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator)
ramsey/uuid suggests installing moontoast/math (Provides support for converting UUID to 128-bit integer (in string form).)
ramsey/uuid suggests installing ramsey/uuid-doctrine (Allows the use of Ramsey\Uuid\Uuid as Doctrine field type.)
ramsey/uuid suggests installing ramsey/uuid-console (A console application for generating UUIDs with ramsey/uuid)
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server)
league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2)
league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3)
league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage)
league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching)
league/flysystem suggests installing league/flysystem-copy (Allows you to use storage)
league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem)
league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files)
league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib)
league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage)
league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter)
league/flysystem suggests installing spatie/flysystem-dropbox (Allows you to use Dropbox storage)
laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS queue driver and SES mail driver (~3.0).)
laravel/framework suggests installing doctrine/dbal (Required to rename columns and drop SQLite columns (~2.4).)
laravel/framework suggests installing guzzlehttp/guzzle (Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).)
laravel/framework suggests installing league/flysystem-aws-s3-v3 (Required to use the Flysystem S3 driver (~1.0).)
laravel/framework suggests installing league/flysystem-rackspace (Required to use the Flysystem Rackspace driver (~1.0).)
laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (~3.0).)
laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (~1.0).)
laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (~2.0).)
laravel/framework suggests installing symfony/psr-http-message-bridge (Required to use psr7 bridging features (0.2.*).)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (^2.5.1)
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
phpunit/phpunit suggests installing ext-xdebug (*)
Writing lock file
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
The compiled class file has been removed.
> php artisan key:generate
Application key [base64:Tc2EiYme62mAZwe5rMHhdUUaym+GflRZTXJUQQYPNEo=] set successfully.

Based on the above output command, the version of the Laravel project installed is 5.3. To check it, just look at the file named composer.json as shown below :

It is shown that in the line of composer.json file above that this is a Laravel project based with the version of 5.3

    "require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.3.*"

One thought on “Laravel Install Specific Version using Composer

Leave a Reply