我是第一次用 Git 設定 NAS 伺服器,所以請原諒這些菜鳥問題(這也意味著我非常感謝你能給我的任何詳細解釋,因為我在這方面有點如魚得水) )。
這是我到目前為止所做的:
- 項目清單
- 設定網路儲存
- 請按照以下說明安裝 git:http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html(我做到了第5步結束)
- 讓 git 在我的本機電腦上運行(完成
git init
並初始提交)
現在,我正在嘗試弄清楚如何執行該指南的第 6 步(http://www.wonko.de/2010/04/set-up-git-on-synology-nas.html)這樣我就可以使用本地的提交並將其發送到我的 NAS git clone
。git 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
在用戶端電腦上測試您的身份驗證。