0

Synology DS212J NAS サーバーで git origin をセットアップしようとしています。このコマンドをサーバーにプッシュしようとすると:

git remote add nas ssh://username@nasip/volume1/path/to/repo/repo.git
git push nas master

最初に、入力するパスワードの入力を求められます。次に、次のエラーが表示されます。

sh: git-receive-pack: not found
fatal: The remote end hung up unexpectedly

これが何を意味するのか、またはどうすれば修正できるのか誰か知っていますか?

編集:これは私がフォローしているものですが、リモートにプッシュしようとするとエラーが発生します。 http://rubypane.blogspot.com/2012/03/creating-new-git-repository-on-synology.html

4

2 に答える 2

4

上で che と他の人が説明したように、これは Synology NAS のパス設定の問題です。通常、ssh 経由でログインすると .profile と /etc/profile が解析されますが、この場合はそうではありません。これは、 http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html (ステップ 6) でwinko によって説明されているように調整できますが、ユーザーに変更を許可しないことを好みます。彼らの環境。私が提案する代替案は、単純にシンボリック リンクを作成することです。以下をせよ:

cd /opt/bin
for gitfile in git* ; do ln -s /opt/bin/$gitfile /bin/$gitfile ; done

これらのコマンドを発行する前に、必ず root としてログインしてください。

于 2012-06-16T22:04:43.607 に答える
3

これは、リモート ボックスに git がインストールされていないようです。Git は ssh 上で独自のプロトコルを使用するため、反対側でも git オブジェクトを理解するバイナリが必要です。

クライアントが実行しようとしているプログラムはgit-receive-packであるため、ボックスのシェルから実行してみてください。それが機能する場合、次のようなものが表示されます

che@nok ~ $ git receive-pack
usage: git receive-pack <git-dir>

そうでない場合:

-bash-4.0# git-receive-pack
-bash: git-receive-pack: command not found

そこにgitがインストールされている場合は、git receive-packそこで動作するかどうかを試してください。その場合は、パスのどこかで git を git-receive-pack にシンボリック リンクするだけでよいでしょう。

ランニング

cd `which git`
ln -si git git-receive-pack

ルートの下でそれを行うかもしれません。

于 2012-05-28T14:15:14.777 に答える