下面由composer教程栏目给大家介绍composer如何离线安装本地包,希望对需要的朋友有所帮助!
本地的情况是这样的,composer已安装,因为项目(thinkphp的)需要安装一个ffmpeg的包,但是安装了很多次都安装不了,后来发现因为在git上,所以索性把包从git上下载下来了,想从本地来安装,实在忍受不了那个安装的速度。切换到国内源,阿里源也切换过了,但是就是下不下来,只好把包离线下载下来本地安装了。
开始很happy地百度这方面的文章,但是大多数方法都不行。于是找朋友骨骼了一下,果然国外才有干货。直接上干货吧:
首先删除项目目录下的composer.lock,然后把下载好的包传到一个能产生url的地方,直接http就能访问的那种,然后编辑composer.json
"repositories": [ { "type": "composer", "url": "https://mirrors.aliyun.com/composer/" }, { "type": "package", "package": { "name": "php-ffmpeg/php-ffmpeg", "version": "0.16", "dist": { "url": "http://192.168.100.52/upload/PHP-FFMpeg-0.16.zip", "type": "zip" } } } ]
然后,require加上php-ffmpeg/php-ffmpeg(当然你其他的require项保留,这里只是为了说这个离线包),如下:
"require": { "php-ffmpeg/php-ffmpeg": "^0.16.0" }
然后进行安装,这里因为我这composer升级到2.0了,所以加了一个–no-plugins的参数,要不会有黄色的警告,如果你是1.0的话可以不用加这个参数:
composer require php-ffmpeg/php-ffmpeg --no-plugins
或者运行下面的命令也可以:
composer update
上面说的都是实际安装的全过程,照着撸就是了。
最后,为了方便以后composer的安装,将新生成的composer.lock删除,再编辑composer.json,将package那段干掉,恢复回去:
"repositories": [ { "type": "composer", "url": "https://mirrors.aliyun.com/composer/" } ]
再 composer update一下就行了。
最后说一下参考的文章:
https://stackoverflow.com/questions/29994088/composer-require-local-package
https://getcomposer.org/doc/05-repositories.md#loading-a-package-from-a-vcs-repository