Git の設定、ローカルから NAS にプッシュ/クローンするときにパス エラーが発生する

Git の設定、ローカルから NAS にプッシュ/クローンするときにパス エラーが発生する

初めて Git で NAS サーバーをセットアップしているので、初心者っぽい質問はご容赦ください (また、この件に関してはまったくの素人なので、詳しい説明をいただければ大変ありがたく思います)。

これまでに行ったことは次のとおりです。

  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.htmlgit clone) を使用して、git pushローカルのコミットを NAS に送信できるようになります。

私はその投稿の下のコメントを読み、次のことを試しました。

  • environmentローカルのホーム フォルダーに savedというファイルを作成し、.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」を使用していると思います。

NAS で動作するように git を設定する方法、NAS にプッシュする方法、svn checkout別のコンピューターにクローン (または同等のもの) する方法などが本当にわかりません。

答え1

Unix のパスは、さまざまなプログラムの場所を含む変数です。

のようなコマンドを入力するとwhoami、シェルは $PATH にリストされているすべてのフォルダーを調べます。

シェルに入力してみましょうwhich whoami。whoami はおそらく にあることがわかります/usr/bin/whoami

をパスに追加することで、の代わりに/usr/binと入力できるようになります。これは、ショートカットがあるようなものです。whoami/usr/bin/whoami

あなたが読んでいる記事では、git-upload-packシェルが実行ファイルを自動的に検索しない場所にインストールされると示されています。シェルが「見つける」ことができるように、パスに と/opt/binを追加する必要があります。/opt/sbingit-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

コメント(#)を削除し、noをyesに変更します

ssh サービスを再起動するか、デバイス全体を再起動します。

動作を確認したい場合は、次のコマンドを実行します。

echo $PATH |grep '/opt/bin'

何かが返された場合、すべてが機能するはずです。

答え2

RSAキーを設定するリモート上の信頼できるリストにソース IP を追加します。パスワードなしでキーを生成します。他のマシンでgitデーモンを実行する

sshクライアント マシンで認証をテストします。

関連情報