我正在尝试构建一个 android 项目,通过 gradle 和 git 进行持续集成/持续交付。
主要代码将从构建服务器上的 git 中提取,而不包含包含密钥的各种文件。
Gradle 需要这些文件才能成功构建项目。
我将分别将这些文件拉到构建服务器上,但我正在寻找一个公共位置来将这些文件存储在本地环境和构建服务器上。这样我就可以在 ENV 中引用此位置,然后指向 gradle 构建文件中的该位置。
构建服务器以 root 模式运行,显然我的本地正在以用户身份运行。
除了 /home/$USER 之外,Linux 文件系统中还有哪些非 root 可以访问的公共位置?
我使用的 dist 是 ubuntu 和 debian。
答案1
此类文件最正式的位置是/srv
,用于“该系统提供的特定于站点的数据”。
或者,您可以用作系统用户/home/autobuilder
的主目录autobuilder
并在其中存储文件。
另一种常见约定是拥有一个顶级目录,例如/net
每个计算机名称包含一个子目录,并将特定于站点的数据放在那里 - 如果文件存储在一台计算机中并通过 NFS 或其他网络安装在其他位置,这可能是最清晰的约定文件系统。
或者您可以选择以下目录/var/local
- /var
是变量非用户拥有的数据的一种默认位置。或者您可以使用单独的顶级目录:作为系统管理员,您可以决定如何组织存储,只要它不与您的发行版工具所做的假设相冲突(即保留为发行版保留的目录) )。
答案2
/var/spool
通常包含具有可变所有权和权限的应用程序特定目录。你可以在那里创造一些东西。
同样,/var/opt
和/opt
.有一点描述在这里关于这些地方的预期目的,但这实际上取决于您。
唯一的问题是您通常需要超级用户权限来创建目录并在这些位置设置所有权和权限,但是,这也是如此/home
。唯一标准的全局可写位置是/tmp
,但这是一个坏主意,因为它不能保证是永久存储。