Настройка git, ошибки пути при отправке/клонировании с локального сервера на NAS

Настройка git, ошибки пути при отправке/клонировании с локального сервера на NAS

Я впервые настраиваю сервер NAS с Git, поэтому, пожалуйста, простите за нубские вопросы (это также значит, что я буду очень благодарен за любые подробные объяснения, которые вы мне дадите, потому что я в этом деле как рыба, выброшенная на берег).

Вот что я уже сделал:

  1. Пункт списка
  2. Настройка NAS-сервера
  3. Установил git, следуя этим инструкциям:http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html(Я дошел до конца шага 5)
  4. Заставил git работать на моем локальном компьютере (сделал git initи сделал первоначальный коммит)

Прямо сейчас я пытаюсь понять, как выполнить шаг 6 этого руководства (http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html), чтобы я мог использовать git cloneи git pushотправлять коммиты моей локальной системы на мой NAS.

Я прочитал комментарии под этим постом и попробовал следующее:

  • Создал файл под названием environmentsaved в моей локальной домашней папке: .ssh/environment и ввел туда следующее: PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin

  • Зашел в свой NAS с помощью ssh://root@ipaddresstonasи набрал: cd /usr/bin ln -s /opt/bin/git*

Однако я продолжаю получать следующие результаты:

Терминал на моей локальной машине:

$ git remote -v
nas ssh://[email protected]/volume1/path/to/test (fetch)
nas ssh://[email protected]/volume1/path/to/test (push)
$ git push nas master
[email protected]'s password: 
sh: git-receive-pack: not found
fatal: The remote end hung up unexpectedly

А когда я пытаюсь набрать $PATHна локальной машине:

$ $PATH
-bash: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin: No such file or directory

На моем NAS:

nas> cd /volume1/path/to/test
nas> ls
test.git

nas> $PATH
-sh: /opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin: not found

Еще одно замечание: я использую Synology DS212J, который, по-моему, использует «BusyBox», если это как-то поможет.

Я совсем запутался в том, как настроить git для работы с моим NAS... как мне отправить данные на мой NAS, как клонировать (или сделать svn checkoutчто-то подобное) на другой компьютер и т. д.

решение1

Путь в Unix — это переменная, которая содержит расположение различных программ.

Если вы введете команду вроде whoami, оболочка проверит все папки, перечисленные в вашем $PATH.

Продолжайте и введите which whoamiсвой shell. Вы увидите, что whoami, скорее всего, находится в /usr/bin/whoami.

Имея /usr/binв своем пути, вы можете просто набрать whoamiвместо /usr/bin/whoami. Это своего рода ярлык.

Статья, которую вы читаете, показывает, что git-upload-packустанавливает в место, в котором оболочка автоматически не ищет исполняемые файлы. Вам нужно добавить /opt/binи /opt/sbinк вашему пути, чтобы оболочка могла «найти»git-upload-pack

Есть несколько способов добавить каталог в путь. Я предпочитаю поместить его в /etc/profile.d, однако, похоже, busy box не «смотрит» в этом каталоге. Вместо этого его нужно будет добавить в файл ~/.ssh/environment. Файл окружения анализируется, когда пользователь подключается к серверу по ssh.


Шаг 6

Используйте текстовый редактор для редактирования следующего файла (вероятно, он еще не существует)

/home/<yourUser>/.ssh/environment

Добавьте следующую строку в /home//.ssh/environment

export PATH=$PATH:/opt/bin:/opt/bin

Затем отредактируйте следующий файл (для этого вам понадобятся права root):

/etc/ssh/sshd_config

В этом файле вы найдете фразу#PermitUserEnvironment no

Удалить комментарий (#) и изменить нет на да

Перезапустите службу SSH или просто перезагрузите все устройство.

Вы можете проверить, что это сработало, но выполните следующую команду

echo $PATH |grep '/opt/bin'

Если что-то возвращает, значит все должно работать.

решение2

настроить ключ rsa. Добавьте исходный IP в список доверенных на удаленном компьютере. Сгенерируйте ключ без пароля.Запустите git daemon на другой машине.

Проверьте свою аутентификацию sshна клиентском компьютере.

Связанный контент