更新到mac os x sierra后,我的cvs(是的,我仍在使用cvs)无法再从远程计算机访问存储库。我仍然可以使用终端窗口在本地计算机上访问cvs命令,使用:
<?php
foreach($games as $game)
{
if(is_array($check) && in_array($game->id,$check))
{
echo "Won by";
}
...
虽然如果我用
定义cvs变量CVSROOT=/usr/local/cvsrep
它也不起作用,给出错误信息:
export CVS_RSH=ssh
export CVSROOT=:ext:twarren@tw-imac.local/usr/local/cvsrep
cvs程序安装在/ usr / local / bin(位于PATH上)。它是旧版本的cvs,曾经与mac os x一起使用,并且在较新版本的mac os x中运行良好,直到sierra。
答案 0 :(得分:2)
所以我找到了让cvs在山脉上工作的方法。问题似乎是/ usr / local / bin目录不再位于由ssh启动的shell的路径上。所以解决方案包括将cvs可执行文件复制到/ usr / bin
但是,为了在Sierra完成此操作,我不得不暂时禁用SIP。这是通过以下方式完成的:
然后我可以复制cvs程序。在验证它是否正常工作后,我重复了步骤1-4,除了在步骤3中使用:csrutil enable。
注意:可能会出现更新Sierra可能会替换/ usr / bin内容的情况,因此更新后可能需要重复此过程。为了解决这个问题,我复制了cvs模块而不是移动它,因此它仍然可以在旧位置使用。
注2:我同意那些建议使用git而不是cvs的人,并且会对所有新项目都这样做。此外,我最终还会在可行的情况下将现有项目转换为git,但很高兴我仍然可以像之前那样使用cvs。
答案 1 :(得分:1)
我刚刚面临同样的问题。
即,远程cvs签出不起作用。
即,cvs -z3 -d:ext:<user>@<cvs-server-ip>:<CVSROOT> co -P -r <REVISION> <MODULE>
会产生cvs: bad command
有三个问题,
您可以通过安装带有自制软件的
来解决第一个问题brew install cvs
下一个问题是,当你尝试运行cvs:ext时,你发现PATH不正确,可以这样测试:
ssh <user>@cvs-sever-ip env | grep PATH
您将看到PATH=/usr/bin:/bin:/usr/sbin:/sbin
,这是sshd非交互式硬编码路径。对于非交互式ssh,正如CVS用来访问自制软件cvs install(安装到`/ usr / local / bin / cvs),你需要将/ usr / local / bin添加到sshd路径。 AFAICT这是不能做到的......非平凡......因此,最好的解决方案是在/ usr / bin目录中创建一个sybolic链接。
sudo ln -s /usr/local/bin/cvs /usr/bin/cvs
导致第三个问题。它不起作用,因为/ usr / bin是无根的......因此是只读的。
您可以在恢复模式下禁用无根模式...然后执行此操作,然后重新启用它。
但最简单的解决方案是重启进入恢复模式,进入终端,然后进入cd / Volumes,然后导航到启动卷上的/ usr / bin目录,即{{1} }
然后运行命令:
cd /Volumes/<bootvolume>/usr/bin
这将创建/ usr / bin / cvs的符号链接 - &gt;的/ usr / local / bin中/ CVS
重新启动回操作系统,这应该可以修复它。
您可以使用
进行验证 ln -s /usr/local/bin/cvs cvs
应返回:
ssh <user>@<cvs-server-ip> which cvs
现在您的远程cvs结帐应该有效......