В последней версии NPM вы можете просто сделать:
npm install gitAuthor/gitRepo#tag
Если репозиторий является действительным пакетом NPM, он будет автоматически иметь псевдоним в package.json как:
{
"NPMPackageName": "gitAuthor/gitRepo#tag"
}
Если бы вы могли добавить это к ответу @justingordon, теперь нет необходимости в ручном совмещении имен!
Если у вас PHP 5.3.1, используйте Pyrus, установщик PEAR2. Управляемые установки pyrus могут быть перемещены куда угодно.
Загрузить pyrus -
$> wget http://pear2.php.net/pyrus.phar
Создать каталог для хранения установленных пакетов pyrus:
$> mkdir mylibs
Установить пакеты -
$> php pyrus.phar mylibs install pear/Net_URL
Ваш установленный пакет теперь находится по адресу mylibs / php / Net / URL.php
Обратите внимание, что мы передали каталог mylibs, чтобы указать, в какой каталог устанавливать, а также имя канала «груша» (по умолчанию в pyrus используется pear2.php.net). Для удобства файл pyrus.phar может быть запущен из cli, если вы chmod + x it.
Вы можете переместить каталог mylibs
в любое место. Даже зафиксируйте его в своем репозитории.
Множество документов на веб-сайте PEAR .
Мне не удалось заставить моего хостинг-провайдера установить нужные мне библиотеки PEAR. Вот как я сделал PEAR частью своего дерева исходных текстов.
Создание вашего remote.conf немного отличается от того, что описано в руководстве. Допустим, я хочу установить PEAR в vendor / PEAR
проекта. Сделайте это так:
#from the root of the project
$ cd vendor ; mkdir PEAR ; cd PEAR
$ pear config-create <absolute path to project>/vendor/PEAR/ remote.conf
$ pear -c remote.conf channel-update pear.php.net
$ pear -c remote.conf install --alldeps pear
$ pear -c remote.conf install --alldeps <libname>
Вуаля ... PEAR является частью дерева исходных текстов.
remote.conf
являются абсолютными, сами библиотеки будут работать . Это просто обновление, которое ниоткуда не будет работать. Вам нужно будет обновить его по тому же пути, по которому он был создан - в приведенном выше случае из vendor / PEAR
. vendor / PEAR
(у меня есть код, просто спросите, нужен ли вам). Я совершенно уверен, что это ответ на ваш вопрос, но вы можете указать местоположение репозитория PEAR в командной строке, чтобы вы могли создать локальный репозиторий, используя:
pear install --force --installroot=/path/to/my/pear/ PEAR
Then вы можете установить дополнительные пакеты, используя:
pear install --installroot=/path/to/my/pear/ SomePackage
Чтобы использовать локальное репо из вашего приложения, вы должны убедиться, что include_path
указывает на локальное репо, а не на репозиторий по умолчанию (глобально установленный). Итак, вы хотите, чтобы это выглядело так:
include_path = ".:/path/to/my/pear/usr/share/php"
Re:
На самом деле, он хочет избежать абсолютных путей, чтобы решение можно было получить на многих машинах, независимо от пути, по которому на каждой установлен репозиторий. .
- Карлос Лима
Кажется, вы правы. В этом случае я бы посоветовал вам не проверять репозиторий PEAR в репозиторий SVN, а лучше используйте сценарий развертывания для установки / обновления репозитория на сервере. Просто убедитесь, что устанавливаете определенную версию. (У вас есть автоматическое развертывание, верно?)