Эта страница была обновлена 2020-09 и содержит сведения для версии маршрутизатора 0.9.47.

Использование git bundle для получения исходного кода I2P

Клонирование больших репозиториев программного обеспечения через I2P может быть сложным, а использование git иногда может усложнить эту задачу. К счастью, иногда оно может и облегчить задачу. В Git есть команда git bundle, которую можно использовать для превращения git-репозитория в файл, который git может затем клонировать, получить или импортировать с локального диска. Объединив эту возможность с bittorrent-загрузками, мы можем решить наши оставшиеся проблемы с помощью git clone.

Прежде чем начать

Если вы собираетесь создать git-бандл, вы должны уже иметь полную копию репозитория git, а не репозитория mtn. Вы можете получить ее с github или с git.idk.i2p, но неглубокое клонирование (клонирование с -depth=1) не работает. Будет выглядеть как бандл, но когда вы попытаетесь клонировать, это не удастся. Если вы просто извлекаете предварительно сгенерированный git-пакет, то этот раздел к вам не относится.

Получение исходного кода I2P через Bittorrent

Кто-то должен будет предоставить вам торрент-файл или magnet-ссылку, соответствующую существующей git-сборке , которую он уже сгенерировал для вас. Последний, правильно сгенерированный бандл основного исходного кода i2p.i2p по состоянию на среду, 18 марта 2020 года, можно найти внутри I2P на моем pastebin paste.idk.i2p/f/4hq37i.

После того, как у вас есть бандл, вам нужно использовать git для создания из него рабочего репозитория. Если вы используете GNU/Linux и i2psnark, git-пакет должен быть расположен в $HOME/.i2p/i2psnark или, как сервис в Debian, /var/lib/i2p/i2p-config/i2psnark. Если вы используете BiglyBT в GNU/Linux, он, вероятно, находится по адресу "$HOME/BiglyBT Downloads/". Приведенные здесь примеры предполагают использование I2PSnark на GNU/Linux, если вы используете что-то другое, замените путь к пакету на каталог загрузки, предпочтительный для вашего клиента и платформы.

Использование git clone

Клонирование из git-пакета очень просто:

git clone $HOME/.i2p/i2psnark/i2p.i2p.bundle

Если вы получите следующую ошибку, попробуйте использовать git init и git fetch вручную.

fatal: multiple updates for ref 'refs/remotes/origin/master' not allowed

Использование git init и git fetch

Сначала создайте каталог i2p.i2p, чтобы превратить его в git-репозиторий.

mkdir i2p.i2p && cd i2p.i2p

Затем запустите пустой git-репозиторий для получения изменений.

git init

И извлеките репозиторий из бандл.

git fetch $HOME/.i2p/i2psnark/i2p.i2p.bundle

Replace the bundle remote with the upstream remote

Теперь, когда у вас есть бандл, вы можете следить за изменениями, установив remote на источник репозитория upstream.

git remote set-url origin git@127.0.0.1:i2p-hackers/i2p.i2p

Generating a Bundle

Сначала следуйте руководству Git для Users, пока вы успешно --unshallow клон клона репозитория i2p.i2p. Если у вас уже есть клон, убедитесь, что вы запустили git fetch --unshallow перед генерацией торрент-пакета.

После этого просто запустите соответствующую цель:

ant git-bundle

и скопируйте полученный пакет в каталог загрузок I2PSnark. Например:

cp i2p.i2p.bundle* $HOME/.i2p/i2psnark/

Через минуту или две I2PSnark подхватит торрент. Нажмите на кнопку "Старт", чтобы начать раздачу торрента.