設定git,從本地推送/克隆到NAS時出現路徑錯誤

設定git,從本地推送/克隆到NAS時出現路徑錯誤

我是第一次用 Git 設定 NAS 伺服器,所以請原諒這些菜鳥問題(這也意味著我非常感謝你能給我的任何詳細解釋,因為我在這方面有點如魚得水) )。

這是我到目前為止所做的:

  1. 項目清單
  2. 設定網路儲存
  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)這樣我就可以使用本地的提交並將其發送到我的 NAS git clonegit push

我閱讀了該帖子下面的評論,並嘗試了以下操作:

  • environment建立了一個名為「儲存在我的本機主資料夾中」的檔案:.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,shell 會查看 $PATH 中列出的所有資料夾。

繼續輸入which whoami您的 shell。您將看到 whoami 可能位於/usr/bin/whoami

透過/usr/bin在你的路徑中,它使得你可以只鍵入whoami而不是/usr/bin/whoami.這有點像有一條捷徑。

您正在閱讀的文章顯示git-upload-pack安裝到 shell 不會自動尋找執行檔的位置。您需要將/opt/bin和添加/opt/sbin到您的路徑中,以便 shell 可以“查找”git-upload-pack

將目錄新增至路徑有多種方法。我更喜歡將其放在 /etc/profile.d 中,但是繁忙的盒子似乎不會「查看」該目錄。相反,需要將其添加到 ~/.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 新增至遠端的可信任 IP 清單中。產生沒有密碼的密鑰。在另一台機器上執行 git 守護程式

ssh在用戶端電腦上測試您的身份驗證。

相關內容