2016-01-21 113 views
2

尽管我的职业生涯大部分时间都是作为一个完整的堆栈Web开发人员在Microsoft堆栈上进行的,但我偶尔也会陷入困境* NIX方面的东西..在这里构建了一个FreeBSD Web服务器,在那里一次使用Caldera Linux,目前正在使用运行Ubuntu的Google云VM进行一些Web部署......将Git仓库克隆到LINUX机器上时使用的“标准”目录位置是什么

TL, DR 因此,如果我将repo分叉到我的GitHub帐户上 - 所有这些都是为了将​​其克隆到我的Ubuntu服务器,然后我将编译并运行该Web应用程序..

什么是专业期望的位置,我应该把这个'克隆'的源代码?我搜索了一下,以更好地了解各种linux目录是什么..但是..我需要一个很好的回答...所以...你会把它放在哪里?

/usr/src/MyGitRepos ..听起来不错..但是..你会怎么做?

+0

我用的是'$ HOME /回购/所有者/ repo-name',这让事情变得非常有条理。 – 2016-01-21 04:08:52

回答

2

什么是专业的预期位置

如果像你说的,你要部署这是一个从源代码编译的应用程序,那么就没有这样的位置。在专业环境中,您的资源不会放在服务器上。

从最专业的为“它的工作原理”的解决方案:

  1. 生产环境之外编译系统软件包。这意味着您拥有以前部署的两个版本的存储库,并且拥有包含清单和运行时依赖项的包清单。这意味着您可以每次都以相同的方式重建应用程序。要进行安装,请安装构建的软件包。 (这适用于deb,rpm等)

  2. 在可预测的环境中构建包含二进制文件的tarball(开发人员包装盒)。这意味着您运行(例如,如果您使用自动工具)./configure --prefix=/opt/your_app && make install DESTDIR=/tmp/somedirectory - 现在您可以打包/tmp/somedirectory/opt/your_app内容,将其复制到服务器并将其解压到/opt/your_app

  3. 将它克隆到任何地方(您的主目录),然后构建,然后安装到目标中。热门目的地是/opt/app_name/usr/local

的解决方案取决于如何专业调配真的是,你有多少服务器了,你有测试/生产环境等

+0

哈哈..现在我从开发ASP.NET知道这一点..只有“bin”文件夹得到发布..我只是没有正确的思维框架..当我做linux的东西,并得到所有“哈克”,忘记明显或者......也许......不是那么明显)我非常感谢列表中的命令行代码片断。这是我正在寻找的答案 - 让我走上一条理智的道路。 – bkwdesign

+0

如果你把它放在'$ HOME'以外的地方,那就存在一个潜在的问题。如果有不同的用户出现并尝试在该目录上运行'git'命令,那么您将遇到困难(该用户可能没有权限修改具有用户标识的'.git'子目录中的文件,例如)。我的建议是,如果你打算进行协作开发,那么每个用户都将自己的副本复制到他们的'$ HOME';但如果您打算以只读方式使用结果,请将其克隆到某处并使用“rm -rf .git”。 –

+0

对,我在执行'make'之前做了一个递归'chown'命令,它允许所有的包管理工作成功..但是..我明白你在说什么.. *它成功了我* – bkwdesign

1

我不会说有一个标准的假设地点,特别是如果服务器是专门为这个应用程序。在/ home/user目录把一个文件夹应该是罚款甚至,或者组织它,你认为合适从这一点任何方式:

/home/user/app-goes-here/app.js 

只要保持它的简单:)

+1

是的,把它放在'家庭/用户/'位置..有道理..这基本上是我正在寻找的方向 - 以及你的提示,没有一个标准的地方。只需要一些独立的验证,我的直觉是正确的方向..我不认为我自己*尼克斯足够相信我的直觉;-) – bkwdesign

+0

很高兴我可以帮助:)只要它不是一个大企业级的部署(我假设你会得到有关这方面的指示,如果是的话),那么我看不出为什么这不合适。 – Nodal

1

当它是由一个unix用户使用,在$HOME的某处对我来说是相当合理的。如果回购是为了从其他用户使用,/opt是相当可观的。

+0

有用的知识 - 是的,这是一个自由的演出 - 我基本上把一些服务器放在一起,为一个客户谁将接管一切 - 我在这个设置上的外观将是简短的 – bkwdesign