Добавить ГРУШЕВЫЕ пакеты к репозиторию Подверсии?

В последней версии NPM вы можете просто сделать:

npm install gitAuthor/gitRepo#tag

Если репозиторий является действительным пакетом NPM, он будет автоматически иметь псевдоним в package.json как:

{ "NPMPackageName": "gitAuthor/gitRepo#tag" }

Если бы вы могли добавить это к ответу @justingordon, теперь нет необходимости в ручном совмещении имен!

7
задан Sean 28 June 2009 в 18:37
поделиться

3 ответа

Если у вас 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 .

2
ответ дан 7 December 2019 в 10:06
поделиться

Мне не удалось заставить моего хостинг-провайдера установить нужные мне библиотеки PEAR. Вот как я сделал PEAR частью своего дерева исходных текстов.

1. Создайте файл remote.conf

Создание вашего 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 

2. Обновите каналы

$ pear -c remote.conf channel-update pear.php.net

3. установить PEAR

$ pear -c remote.conf install --alldeps pear

4. установить любые другие библиотеки

$ pear -c remote.conf install --alldeps <libname>

Вуаля ... PEAR является частью дерева исходных текстов.

Уловки:

  • Несмотря на то, что пути в remote.conf являются абсолютными, сами библиотеки будут работать . Это просто обновление, которое ниоткуда не будет работать. Вам нужно будет обновить его по тому же пути, по которому он был создан - в приведенном выше случае из vendor / PEAR .
  • Некоторые библиотеки не поддерживают Мне нравится находиться за пределами пути, поэтому вам, возможно, придется добавить к пути vendor / PEAR (у меня есть код, просто спросите, нужен ли вам).
3
ответ дан 7 December 2019 в 10:06
поделиться

Я совершенно уверен, что это ответ на ваш вопрос, но вы можете указать местоположение репозитория 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, а лучше используйте сценарий развертывания для установки / обновления репозитория на сервере. Просто убедитесь, что устанавливаете определенную версию. (У вас есть автоматическое развертывание, верно?)

1
ответ дан 7 December 2019 в 10:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: