我租用了具有 SSH 访问权限的网络空间,并希望在上面托管 GIT 存储库。问题是服务器上没有安装 GIT,该服务器运行的是 Solaris,因此我很难在那里运行 GIT。我尝试了各种方法在服务器上安装 GIT,但都没有成功。服务器上的系统是这样的:
> uname -a
SunOS gaffer 5.10 Generic_142901-13 i86pc i386 i86pc
解决方法 1(为 Solaris 编译 GIT)
服务器上没有 gcc,或者我找不到它。所以我尝试在 Ubuntu 下为 solaris 构建一个交叉编译器,因为我没有带 gcc 的 solarix 盒子。我的想法是随后将交叉编译的 GIT 从 Ubuntu 上传到 solaris 服务器。
我已遵循此食谱:构建交叉编译器. 在步骤“ make all-target-libgcc
”中我收到错误
stdio.h: No such file or directory
我无法解决此错误。Google 没有帮助,而且我真的不知道在构建交叉编译器时我在做什么。这个解决方案应该是可行的,因为其他人已经能够构建这样的交叉编译器。
解决方法 2(下载适用于 solaris 的 GIT 并在服务器上解压)
在 GIT 网站上,我看到 GIT 适用于 solaris。我无法从 MAC 和 Ubuntu 下载 solaris 版本,因为该网站只提供适用于我的浏览器所运行的操作系统的安装程序。我也无法欺骗该网站,让它认为我正在使用 solaris 来运行我的浏览器。
然后我找到了一个适用于 solaris 的 GIT 下载地址 http://ftp.riken.jp/Sun/sunfreeware/i386/5.10/git-1.7.6-sol10-x86-local.gz。然后我无法在 solaris 下将其安装到我的网络空间中。在 solaris 下,我无法访问 pkgadd(因为我没有 root 权限),而且我找不到其他方法来提取 solaris 包。如果我知道正确的解压命令,我认为这应该相当容易;在哪个操作系统下解压它并不重要,因为我可以随后将解压的文件上传到网络空间。
解决方法 3(向网络空间提供商寻求帮助)
我打电话给网络空间提供商,询问他们是否愿意安装 GIT。他们拒绝了。然后我询问了如何自己将它安装到我自己的空间中。我一直在等待他们的二级支持回电或发送电子邮件。
您能帮助我使用上述任何一种方法吗,或者是否有其他方法可以在这个 solaris 机器上获取 GIT?
更新:网络空间提供商打电话给我,告诉我共享主机无法实现这一点。我向他们解释了如何实现这一点,甚至无需他们方面的管理工作,最终说服他们这确实是可能的。由于各种客户反复提出问题,他们同意向他们的产品经理提出这个问题。我要求他们打电话给他们的管理员 10 分钟,并告诉我如何将 GIT 放入我自己的网络空间,但他们再次拒绝了,没有给出适当的解释。
经过这次通话,我发现那些人无法处理自己的技术,甚至不愿意以几乎毫不费力的方式帮助客户,我非常失望,决定取消与他们的合同,转而使用一些标准 Linux 作为操作系统的托管商。我相信有很多,使用 GIT 会很简单。
答案1
由于您没有软件包安装权限(即您不是 root 或类似的权限),出于明显的安全原因,您无法安装新的软件包或更新现有的软件包。
第一个选项,从源代码进行编译,通常是在 Solaris 上最好的方法。gcc
通常与 Solaris 10 捆绑在一起并安装,/usr/sfw/bin
但您的提供商可能尚未安装。
构建和使用交叉编译器是过度的。它很复杂,并且有很多陷阱,正如您所经历的。最简单的替代方案是在VirtualBox
您拥有的 x86 主机上运行的虚拟机上安装 Solaris 版本,然后从这里构建。
第二种选择,即破解常规软件包以将其安装在不同的目录中,很可能注定会失败。虽然存在将软件包转换为目录树的命令,但您将面临至少两个问题:sunfreeware 软件包安装在,/usr/local
但您没有写入权限,因此需要将它们安装在其他地方。由于某些路径内部可能被硬编码为/usr/local
,程序可能会失败。第二个问题是下载的软件包可能需要额外的软件包作为依赖项,从而导致额外的负担。