如果我用一个Web服务器来进行类比,我会说git的数据应该在/var/git
,所以我的git仓库将在/var/git/myrepo
问 :这是正确的猜测吗?
这里没有对错的答案,除了你自己的个人信仰和你系统上的hier(7)
的内容。
典型的Linux hier
页 ; 典型的BSD hier
manpage )
/var/git/*
对我个人来说似乎是合理的。 那是我保存的地方。
将其放置在/srv
下的目录(或共享文件系统)中。 这是它的目的。
/srv
目录用于系统提供的站点特定数据 。 从标准:
指定这个的主要目的是使用户可以find特定服务的数据文件的位置,并且可以合理地放置需要用于只读数据,可写数据和脚本(例如cgi脚本)的单一树的服务。 只有特定用户感兴趣的数据应该放在用户的主目录中。
用于命名
/srv
子目录的方法没有指定,因为目前还没有就如何完成这个问题达成共识。 在/srv
下构造数据的一种方法是通过协议,例如。ftp
,rsync
,www
和cvs
。 在大型系统上,通过pipe理上下文来构造/srv
可能是有用的,比如/srv/physics/www
,/srv/compsci/cvs
等等。这个设置会因主机而异。 因此,程序不应该依赖/srv
存在的特定的子目录结构或者必须存储在/srv
。 但是/srv
应该始终存在于符合FHS的系统上,并且应该用作此类数据的默认位置。发行版必须注意不要在没有pipe理员权限的情况下删除这些目录中的本地文件。
在启用了SELinux的系统上,默认目录是/var/www/git
,而且repos应该在其子目录中。 或者,您可以使用例如/srv/git
并将文件上下文设置为等效:
semanage fcontext -a -e /var/www/git /srv/git
/home/git/
这起初看起来可能有些不合常规,但是当你使用sudo useradd git
时候,这个目录是非常合理的(正确的权限)。 你可以切换到git用户, cd
然后立即运行:
$ mkdir .ssh; chmod 700 .ssh $ touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys
并把你的同伴的公钥放到刚创build的authorized_keys文件中。
当你git init --bare
你的项目,“url”然后只是…等待它…
git@<server>:<project>
这完全取决于你。 但是,最好将git数据目录放在一个单独的分区或磁盘上,以使系统升级等更容易,当然,您必须确保有足够的磁盘空间可用。
在我的Arch Linux上,我的/srv/http
用于apache(这是系统默认的),我也用它来pipe理我的node.js http服务器。 同样,我决定把所有的git仓库放在/srv/git
。
我使用GitLab,在这种情况下, /srv/git
也是/srv/git
的主文件夹。
最终,这取决于你。 我发现坚持使用类似于发行版中其他服务的格式很容易记住。
正如voretaq7所说的那样,这样的话题没有对错的答案。 但是,如果你想遵循软件,似乎数据库软件存储他们的数据
/var/lib/soft
例如,对于Debian上的Postgresql 9.1,该文件夹是
/var/lib/postgresql/9.1/
所以我会selectpersonnaly
/var/lib/git
如果您使用某个前端进行混帐,那么只要您的发行版打包的任何地方想要放置它们即可。 别的什么都只是造成不必要的不兼容。
首先,关于使用/ srv的build议,你假设所有的git仓库都被用于网站。 对你来说可能是真的,但你可以有一个不是网站的软件。
其次,通过将代码存储库存储在/ var / www / html或/ srv / html之外,可以获得两个好处。 您可以在任何级别在您的仓库中创build符号链接,从而更容易隐藏您的库。 另外,如果您的存储库的位置根本不变,则不必修改虚拟主机configuration。 相反,你只需调整你的符号链接。
我使用/ var / repo,但是我认为/ var / git更好,并且将从现在开始使用。